我不知道怎么说出这个问题我已经有4个小时的搜索了,我就在这里问。所以我会解决我的问题并希望最好!
我已经完成了这个程序的每一步并且已经让它运行了,但是我的大脑无法解决如何解决这个问题。
以下是说明:
匹配硬币:与两名玩家一起创建一个抛硬币游戏。
每个玩家以20个硬币开头。规则:
每个玩家扔掉自己的硬币
如果硬币匹配,
Player1获得Player2的硬币。
如果没有,则Player2从Player1获取硬币。
拥有最多硬币的人获胜。
在main()中,创建一个while循环,要求用户继续播放。
在每个循环中,报告结果......硬币匹配?
每位玩家的总硬币?
循环应该至少掷硬币一次。
需要“硬币”课程。该课程要求:
方法__init__()
,toss()
,get_sideup()
,get_amount()
,set_amount()
该类需要属性'__amount',初始化为20,'__sideup' 初始化为两个值之一,“Heads”或“Tails”。
'toss()'方法:生成随机值'0'或'1',相应地指定'Heads'或'Tails'。
'get_sideup()'方法:返回__sideup的当前值。
'set_amount()'方法:传递+1或-1以更改__amount,具体取决于折腾的结果。
'get_amount()'方法:返回__amount的当前值。
我有大部分工作,但我无法弄清楚如何将硬币添加到一个实例并从下一个实例中减去。 (我把self.get_amount作为填充函数,因为我有问题)
这是我的代码:
import random
class Coin (object):
def __init__ (self, __amount = 20, __sideup = "Heads"):
self.__amount = __amount
self.__sideup = __sideup
def toss (self):
val = random.randint(0,1)
if val == 0:
self.__sideup = "Heads"
else:
self.__sideup = "Tails"
def get_sideup (self):
return self.__sideup
def get_amount(self,):
return self.__amount
def set_amount (self, __amount):
self.get_amount
c1 = Coin()
c2 = Coin()
play = input ("Do you want to play? (Y/N): ")
while play == "Y" or "y":
c1.toss()
c2.toss()
if c1.get_sideup() == c2.get_sideup():
c1.set_amount(+1)
c2.set_amount(-1)
print("player 1 wins")
else:
c1.set_amount(-1)
c2.set_amount(+1)
print("player 2 wins")
print(" player1: " + str(c1.get_amount()) + " and player2: " + str(c2.get_amount()))
play = input("Do you want to play? (y/n): ")
感谢任何伸出援手的人。如果我的问题的答案在这里,请链接它。我是初学者,不知道如何很好地说出我的问题。
答案 0 :(得分:0)
您只需要通过将其重新绑定到硬币的set_amount方法中的__amount和self .__金额之和来更新您的硬币对象的自我.__金额属性。
def set_amount (self, __amount):
self.__amount = self.__amount + __amount
或者更简洁一点,
def set_amount (self, __amount):
self.__amount += __amount