Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python 3中钓鱼_Python_Python 3.x - Fatal编程技术网

在Python 3中钓鱼

在Python 3中钓鱼,python,python-3.x,Python,Python 3.x,下一个问题 因此,我有一个学生,他正在用Python 3开发一个自娱自乐的围捕游戏,他在抽牌方面遇到了问题。问题是,程序按顺序给每个玩家发相同的牌,即:玩家1得到4张黑桃,2张钻石,8张红桃,等等,玩家2得到相同,玩家3得到相同,等等 我们不确定如何让它在每次抽签时,针对每个玩家,重新循环代码的随机部分 谢谢! 首先是甲板模块,其次是游戏代码 import random def MakeDeck(): deck = [] c = 0 values = ["Ace", "

下一个问题

因此,我有一个学生,他正在用Python 3开发一个自娱自乐的围捕游戏,他在抽牌方面遇到了问题。问题是,程序按顺序给每个玩家发相同的牌,即:玩家1得到4张黑桃,2张钻石,8张红桃,等等,玩家2得到相同,玩家3得到相同,等等

我们不确定如何让它在每次抽签时,针对每个玩家,重新循环代码的随机部分

谢谢! 首先是甲板模块,其次是游戏代码

import random

def MakeDeck():
    deck = []
    c = 0
    values = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]
    suits = ["Hearts", "Spades", "Diamonds", "Clubs"]

    for v in values:
        for s in suits:
            deck.append([v,s])

    random.shuffle(deck)

    return deck
现在,游戏代码

import deck, random, time

fish_deck = deck.MakeDeck()

#for i in fish_deck:
#    print(i[0]+" of "+i[1])

class fisherman():
    name = ""
    hand = []
    sets = []

def ask(player1, player2):
    pause = random.randint(2,5)
    has = []
    choose = randint(0,len(player1.hand)-1)
    value = player1.hand[choose][0]
    for card in player2.hand:
        if card[0] == value:
        has.append(card)
    for card in has:
        player2.hand.remove(card)
    for card in has:
        player1.hand.append(card)
    return_string = player1.name+" asked "+player2.name+" for "+value+"s. "
    print(return_string)
    return_string = player2.name+" had "+str(len(has))+". "
    print(return_string)
    if len(has) == 0:
        draw(player1)
        return_string = player1.name+" had to go fish."
    print(return_string)

def draw(player):
    card = fish_deck.pop()
    player.hand.append(card)

def set_check(player):
    amount = {}
    for card in player.hand:
        if card[0] not in amount.keys():
            amount[card[0]] = 1
        if card[0] in amount.keys():
            amount[card[0]] += 1
    for count in amount.keys():
        if amount[count] == 4:
            print(player.name+" got a set of "+count+"s.")
            player.sets.append(count)
            player.hand[:] = [card for card in player.hand if card[0] == count]

john = fisherman()
john.name = "John"
tim = fisherman()
tim.name = "Tim"
sara = fisherman()
sara.name = "Sara"
kris = fisherman()
kris.name = "Kris"

def play(player1, player2, player3, player4, deck):
    turn = 0
    size = 7
    dealt = 0
    order = [player1, player2, player3, player4]
    random.shuffle(order)
    while dealt < size:
        draw(order[0])
        draw(order[1])
        draw(order[2])
        draw(order[3])
        dealt += 1
    while len(deck) != 0:
        for player in order:
            count = 0
            hand = player.name+"'s hand: "
            for card in player.hand:
                if count < len(player.hand)-1:
                    hand += card[0]+" of "+card[1]+", "
                    count += 1
                elif count == len(player.hand)-1:
                    hand += card[0]+" of "+card[1]+"."
            print(hand)
            count = 0
            sets = player.name+"'s sets: "
            for set in player.sets:
                if count < len(player.sets)-1:
                    sets += set+"s, "
                elif count == len(player.sets)-1:
                    sets += set+"s."
            print(sets)
        other_player = turn
        while other_player == turn:
            other_player = random.randint(0,3)
        ask(order[turn], order[other_player])
        set_check(order[turn])
        if turn >= 3:
            turn = 0
        else:
            turn += 1
        time.sleep(10)
        print("=========================================")

play(john, tim, sara, kris, fish_deck)
导入组,随机,时间
fish_deck=deck.MakeDeck()
#对于在fish_甲板上的i:
#打印(“+i[1]”中的i[0]+“)
类fisherman():
name=“”
手=[]
集合=[]
def ask(播放器1、播放器2):
pause=random.randint(2,5)
has=[]
choose=randint(0,len(player1.hand)-1)
value=player1.手动[选择][0]
对于player2.hand中的卡:
如果卡[0]==值:
has.append(卡片)
对于卡输入,有:
玩家2。手。移除(卡片)
对于卡输入,有:
玩家1.手牌.附加(卡片)
return_string=player1.name+“ask”+player2.name+“for”+value+“s”
打印(返回字符串)
return_string=player2.name+“had”+str(len(has))+”
打印(返回字符串)
如果len(has)==0:
抽签(球员1)
return\u string=player1.name+“不得不去钓鱼。”
打印(返回字符串)
def抽签(球员):
card=fish_deck.pop()
玩家.手牌.附加(牌)
def设置检查(播放器):
金额={}
对于player.hand中的卡:
如果卡[0]的金额不正确。密钥()
金额[卡[0]]=1
如果卡[0]的金额为.keys():
金额[卡[0]]+=1
对于数量计数。键():
如果金额[计数]==4:
打印(player.name+“获得了一组”+count+“s.”)
player.set.append(计数)
牌手[:]=[牌手中的牌对应牌手。牌手如果牌[0]==计数]
约翰=渔夫
john.name=“john”
蒂姆=渔夫()
tim.name=“tim”
莎拉=渔夫()
sara.name=“sara”
克里斯=渔夫()
kris.name=“kris”
def播放(播放者1、播放者2、播放者3、播放者4、甲板):
转动=0
尺寸=7
处理=0
顺序=[player1,player2,player3,player4]
随机。洗牌(顺序)
虽然尺寸较小,但:
绘图(顺序[0])
抽签(订单[1])
抽签(订单[2])
抽签(订单[3])
处理+=1
而len(甲板)!=0:
对于玩家顺序:
计数=0
手牌=玩家。姓名+““的手牌:”
对于player.hand中的卡:
如果计数=3:
转动=0
其他:
转弯+=1
时间。睡眠(10)
打印(“=======================================================”)
游戏(约翰、蒂姆、萨拉、克里斯、鱼)
所有
fisherman
实例将共享相同的
hand
引用,因为这些变量是类变量。如果希望它们是单个实例变量,请在
\uuuu init\uuu
方法中创建它们

class fisherman():
    def __init__(self):
        self.name = ""
        self.hand = []
        self.sets = []
所有
fisherman
实例将共享相同的
hand
引用,因为这些变量是类变量。如果希望它们是单个实例变量,请在
\uuuu init\uuu
方法中创建它们

class fisherman():
    def __init__(self):
        self.name = ""
        self.hand = []
        self.sets = []
所有
fisherman
实例将共享相同的
hand
引用,因为这些变量是类变量。如果希望它们是单个实例变量,请在
\uuuu init\uuu
方法中创建它们

class fisherman():
    def __init__(self):
        self.name = ""
        self.hand = []
        self.sets = []
所有
fisherman
实例将共享相同的
hand
引用,因为这些变量是类变量。如果希望它们是单个实例变量,请在
\uuuu init\uuu
方法中创建它们

class fisherman():
    def __init__(self):
        self.name = ""
        self.hand = []
        self.sets = []

与其发布整个代码,不如只发布解决问题所需的最低金额。与其发布整个代码,不如只发布解决问题所需的最低金额。与其发布整个代码,你应该试着只发布解决问题所需的最小数量。而不是发布整个代码,你应该试着只发布解决问题所需的最小数量。dang我的答案几乎相同。。。快一分钟+1和我的答案几乎一样。。。快一分钟+1和我的答案几乎一样。。。快一分钟+1和我的答案几乎一样。。。再快一分钟+1