【发布时间】:2018-04-17 08:38:40
【问题描述】:
我不知道如何表达我遇到的这个问题,经过 4 小时的搜索,我只能在这里提问。所以我会列出我的问题并希望最好!
我已经完成了这个程序的每一步并让它运行起来,但是我的大脑无法思考如何解决这个问题。
这里是说明:
Match Coins:创建一个有两名玩家的抛硬币游戏。
每个玩家一开始有 20 个硬币。规则:
每个玩家扔自己的硬币
如果硬币匹配,
玩家 1 得到玩家 2 的硬币。
如果没有,Player2 从 Player1 获得硬币。
拥有最多硬币的人获胜。
在 main() 中,创建一个要求用户继续播放的 while 循环。
在每个循环中,报告结果……硬币匹配?
每位玩家的总硬币数?
循环应该至少掷硬币一次。
需要一个“硬币”类。该课程要求:
方法__init__()、toss()、get_sideup()、get_amount()、set_amount()
该类需要属性'__amount',初始化为20,和'__sideup' 初始化为两个值之一,“Heads”或“Tails”。
‘toss()’方法:生成随机值‘0’或‘1’,相应地分配‘头’或‘尾’。
‘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): ")
感谢任何伸出援手的人。如果我的问题的答案在这里,请链接它。我是初学者,不知道如何很好地表达我的问题。
【问题讨论】:
-
你认为
set_amount的实现有什么作用?