Найти - Пользователи
Полная версия: Карточная игра на 3.11.3
Начало » Python для новичков » Карточная игра на 3.11.3
1
BobroSwin
Не бейте палками пжлст
Пишу техасский покер думал что управлюсь за пару дней, но столкнулся с проблемой.
В моей голове каждый “раунд” торгов представлялся как цикл и я запихнул все это в 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')
    
py.user.next
BobroSwin
Но судя по всему я что-то упускаю.
Ну да, сначала тебе нужно научиться программировать. Ты не умеешь вообще и что-то полез такую сложную игру делать. Дело не в том, что она сложная какая-то, а в том, что она сложная для твоего уровня на данный момент. Ну, это как если бы ребёнок трёх лет взялся писать сочинение на тему “как я провёл лето”. Понимаешь, сочинение написать не сложно, но вот ребёнок трёх лет даже одну букву не напишет, не то что слова какие-то или связные мысли в виде предложений. Так что что надо сделать. Для начала пройди какие-нибудь базовые курсы, в которых задания типа “напишите программу, которая выводит на экран корень из ста” или там “напишите программу, которая берёт колоду карт и раздаёт карты игрокам, а потом выводит просто на экран то, какие карты получил каждый игрок”. Вот когда ты не сможешь эти пару программ написать, тогда ты и поймёшь свой реальный уровень.

По коду, который ты написал, можно сказать только то, что ты слишком завысил оценку себя как программиста и взялся за задачу, которая сложнее, чем ты можешь пока что выдать.
m1r42
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)
m1r42
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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB