Форум сайта python.su
Не бейте палками пжлст
Пишу техасский покер думал что управлюсь за пару дней, но столкнулся с проблемой.
В моей голове каждый “раунд” торгов представлялся как цикл и я запихнул все это в while.Стол расчитан на 6 игроков , и каждому дано значение true и когда балан игрока равен 0 , то соответственно игрок проигрывает.Но когда я начал прописывать я понял что поступаю максимально не рационально , потому что таким макаром каждый сценарий нужно прописывать индивидуально , список карт я сделал не ввиде словаря , а ввиде списк думал так будет проще.Но судя по всему я что-то упускаю.Поделитесь идеями пж(.С меня как обычно-ничего
#зададим колоду карт , всего в колоде 52карты.4 масти и 13 достоинств. #удобней всего исполбзовать список import random input('Вы хотите сесть за этот стол.Если да введите:сесть') player1=True player2=True player3=True player4=True player5=True player6=True players = [player1, player2, player3, player4, player5, player6] money_player1=1000 money_player2=1000 money_player3=1000 money_player4=1000 money_player5=1000 money_player6=1000 small_blaind=100 big_blaind=200 bank = 0 trade1=0 trade2=0 trade3=0 trade4=0 trade5=0 trade6=0 stavki = [ trade1,trade2,trade3,trade4,trade5,trade6] while True: trade1=input('Первый игрок:raise/call/fold') if trade1 == 'fold': player1 = False print('Баланс первого игрока',money_player1) print('Первый игрок скинул карты') elif trade1 == 'raise': trade1=int(input('Введите сумму:')) total=money_player1 - trade1 print('Первый игрок повышает.Баланс первого игрока',total) bank= + trade1 print(bank) elif trade1 == 'call': if trade6 >0: trade1 = trade6 elif trade6 = 0: trade1 = 100 total=money_player1 - trade1 bank= + trade1 print(bank) print('Первый игрок поддерживает.Баланс первого игрока',total) trade2=input('Второй игрoк:raise/call/fold') if trade2 == 'fold': player2 = False print('Баланс второго игрока',money_player2) print('Второй игрок скинул карты') elif trade2 == 'raise': trade2=int(input('Введите сумму:')) total=money_player2 - trade2 print('Второй игрок повышает.Баланс первого игрока',total) bank= + trade2 print(bank) elif trade2 == 'call': trade2 = 100 total=money_player2 - trade2 bank= + trade2 print(bank) print('Второй игрок поддерживает.Баланс первого игрока',total) trade3=input('Третий игрок:raise/call/fold') if trade3 == 'fold': player3 = False print('Баланс третьего игрока',money_player3) print('Третий игрок скинул карты') elif trade3 == 'raise': trade3=int(input('Введите сумму:')) total=money_player1 - trade3 print('Третий игрок повышает.Баланс третьего игрока',total) bank= + trade3 print(bank) elif trade3 == 'call': trade3 = 100 total=money_player3 - trade3 bank= + trade3 print(bank) print('Третий игрок поддерживает.Баланс третьего игрока',total) trade4=input('Четвертый игрок:raise/call/fold') if trade4 == 'fold': player4 = False print('Баланс четвертого игрока',money_player4) print('Четвертый игрок скинул карты') elif trade4 == 'raise': trade4=int(input('Введите сумму:')) total=money_player4 - trade4 print('Четвертый игрок повышает.Баланс первого игрока',total) bank= + trade4 print(bank) elif trade4 == 'call': trade4 = 100 total=money_player4 - trade4 bank= + trade4 print(bank) print('Четвертый игрок поддерживает.Баланс первого игрока',total) trade5=input('Пятый игрок:raise/call/fold') if trade5 == 'fold': player1 = False print('Баланс первого игрока',money_player5) print('Первый игрок скинул карты') elif trade5 == 'raise': trade5=int(input('Введите сумму:')) total=money_player5 - trade5 print('Первый игрок повышает.Баланс первого игрока',total) bank= + trade5 print(bank) elif trade5 == 'call': trade5 = 100 total=money_player1 - trade5 bank= + trade5 print(bank) print('Первый игрок поддерживает.Баланс первого игрока',total) trade6=input('Шестой игрок:raise/call/fold') if trade6 == 'fold': player6 = False print('Баланс первого игрока',money_player6) print('Первый игрок скинул карты') elif trade6 == 'raise': trade6=int(input('Введите сумму:')) total=money_player6 - trade6 print('Первый игрок повышает.Баланс первого игрока',total) bank= + trade6 print(bank) elif trade6 == 'call': trade6 = 100 total=money_player1 - trade6 bank= + trade6 print(bank) print('Первый игрок поддерживает.Баланс первого игрока',total) nominal = ['two tref','two piki','two chervi','two boobee' ,'three tref','three piki','three chervi','three boobee' ,'four tref','four piki','four chervi','four boobee' ,'five boobee','five boobee','five boobee','five boobee' ,'six tref','six piki','six chervi','six boobee' ,'seven tref','seven piki','seven chervi','seven boobee' ,'eight tref','eight piki','eight chervi','eight boobee' ,'nine tref','nine piki','nine chervi','nine boobee' ,'ten tref','ten piki','ten chervi','ten boobee' ,'solder tref','solder piki','solder chervi','solder boobee' ,'queen tref','queen piki','queen chervi','queen boobee' ,'king tref','king piki','king chervi','king boobee' ,'tuz tref','tuz piki','tuz chervi','tuz boobee'] print('Второй игрок ставит малый блайнд') #карты первого игрока random_card_1_first_player = nominal[random.randrange(0,52)] nominal.remove(random_card_1_first_player) random_card_2_first_player = nominal[random.randrange(0,51)] nominal.remove(random_card_2_first_player) print(random_card_1_first_player,random_card_2_first_player,'Карты игрока 1') #карты второго игрока random_card_1_second_player = nominal[random.randrange(0,49)] nominal.remove(random_card_1_second_player) random_card_2_second_player = nominal[random.randrange(0,48)] nominal.remove(random_card_2_second_player) print(random_card_1_second_player,random_card_2_second_player,'Карты игроки 2') #карты третьего игрока random_card_1_thrid_player = nominal[random.randrange(0,47)] nominal.remove(random_card_1_thrid_player) random_card_2_thrid_player = nominal[random.randrange(0,46)] nominal.remove(random_card_2_thrid_player) print(random_card_1_thrid_player,random_card_2_thrid_player,'Карты игроки 2') #карты четвертого игрока random_card_1_four_player = nominal[random.randrange(0,45)] nominal.remove(random_card_1_four_player) random_card_2_four_player = nominal[random.randrange(0,44)] nominal.remove(random_card_2_four_player) print(random_card_1_four_player,random_card_2_four_player,'Карты игроки 2') #карты пятого игрока random_card_1_five_player = nominal[random.randrange(0,43)] nominal.remove(random_card_1_five_player) random_card_2_five_player = nominal[random.randrange(0,42)] nominal.remove(random_card_2_five_player) print(random_card_1_five_player,random_card_2_five_player,'Карты игроки 2') #карты шестого игрока random_card_1_second_player = nominal[random.randrange(0,41)] nominal.remove(random_card_1_second_player) random_card_2_second_player = nominal[random.randrange(0,40)] nominal.remove(random_card_2_second_player) print(random_card_1_second_player,random_card_2_second_player,'Карты игроки 2') flop_card1=nominal[random.randrange(0,39)] nominal.remove(flop_card1) flop_card2=nominal[random.randrange(0,38)] nominal.remove(flop_card2) flop_card3=nominal[random.randrange(0,37)] nominal.remove(flop_card3) print(flop_card1,' ',flop_card2,' ',flop_card3,' Карты на флопе') chooice_player1=input('Игрок1 ваш ход.Введите raise/check/fold')
Офлайн
BobroSwinНу да, сначала тебе нужно научиться программировать. Ты не умеешь вообще и что-то полез такую сложную игру делать. Дело не в том, что она сложная какая-то, а в том, что она сложная для твоего уровня на данный момент. Ну, это как если бы ребёнок трёх лет взялся писать сочинение на тему “как я провёл лето”. Понимаешь, сочинение написать не сложно, но вот ребёнок трёх лет даже одну букву не напишет, не то что слова какие-то или связные мысли в виде предложений. Так что что надо сделать. Для начала пройди какие-нибудь базовые курсы, в которых задания типа “напишите программу, которая выводит на экран корень из ста” или там “напишите программу, которая берёт колоду карт и раздаёт карты игрокам, а потом выводит просто на экран то, какие карты получил каждый игрок”. Вот когда ты не сможешь эти пару программ написать, тогда ты и поймёшь свой реальный уровень.
Но судя по всему я что-то упускаю.
Офлайн
BobroSwinДля начала надо начать так чтобы потом было понятно что вообще делаешь. Как-то так, например:
Поделитесь идеями пж
import random class Card: def __init__(self, suit, value): self.suit = suit self.value = value class Deck: """Clubs-Diamonds-Hearts-Spades""" cards_names = {2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 10: '10', 11: 'Jack', 12: 'Queen', 13: 'King', 14: 'Ace', } def __init__(self): self.cards = [] for suit in ['Clubs', 'Diamonds', 'Hearts', 'Spades']: for value in range(2, 15): self.cards.append(Card(suit, value)) def shuffle(self): random.shuffle(self.cards) deck = Deck() deck.shuffle() for card in deck.cards: print(deck.cards_names[card.value], 'of', card.suit)
Офлайн
BobroSwinПотом добавлять какую-то логику. Примерно так:
Поделитесь идеями пж(
import random class Card: def __init__(self, suit, value): self.suit = suit self.value = value class Deck: """Clubs-Diamonds-Hearts-Spades""" cards_names = {2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 10: '10', 11: 'Jack', 12: 'Queen', 13: 'King', 14: 'Ace', } def __init__(self): self.cards = [] for suit in ['Clubs', 'Diamonds', 'Hearts', 'Spades']: for value in range(2, 15): self.cards.append(Card(suit, value)) def shuffle(self): random.shuffle(self.cards) def deal_card(self): return self.cards.pop() class Player: def __init__(self, name): self.name = name self.hand = [] def draw_card(self, deck): card = deck.deal_card() self.hand.append(card) def show_hand(self): print(self.name) for card in self.hand: print(deck.cards_names[card.value], 'of', card.suit) deck = Deck() deck.shuffle() player_1 = Player('Петя') player_2 = Player('Коля') for i in range(2): player_1.draw_card(deck) player_2.draw_card(deck) player_1.show_hand() player_2.show_hand()
Офлайн