我知道有很多这样的东西,但我已经找了一个小时了,什么也没用。在
ship2X=eg.passwordbox("Player " + str(playerNumber) + " input the x co-ordinate for your SECOND ship ")
ship2Y=eg.passwordbox("Player " + str(playerNumber) + " input the y co-ordinate for your SECOND ship ")
return[ship2X, ship2Y]
上面的代码在函数中。在
^{pr2}$。。。。此处检查错误。。。。在
if int(shotX) == int(ship[0]) and int(shotY) == int(ship[1]):
board[5 - int(shotY)][int(shotX) - 1] = "X"
eg.msgbox("Nice shot! You hit ship 1")
hit = True
elif int(shotX) == int(ship2[0]) and int(shotY) == int(ship2[1]):
board[5 - int(shotY)][int(shotX) - 1] = "X"
eg.msgbox("Nice shot! You hit ship 2")
hit = True
elif board[5 - int(shotY)][int(shotX) - 1] == "o":
eg.msgbox("You already tried that shot! D'oh!")
else:
board[5 - int(shotY)][int(shotX) - 1] = "o"
eg.msgbox("Unlucky - you missed!")
是的,在那之前我有个假设。在
最后我要说的是:
hit = False
winner = "0"
p1 = 0
p2 = 0
while hit == False:
hit = haveShot("1", player2Ship, player2Ship, player1Board)
if hit:
p1 = p1+1
hit = haveShot("2", player1Ship, player1Ship, player2Board)
if hit:
p2 = p2+2
我是从第一次进入飞船的时候复制的所以我很困惑为什么会这样。。。在
有什么想法吗?在
如果你想看到完整的代码,你可以在:http://pastebin.com/TAyHtnTs
我的错误是,如果我输入了第二艘船的正确坐标,它会说我漏掉了,但是如果我为第一艘船输入了正确的坐标,它就会说我撞到它了。在
感谢您的帮助:)
我没有足够的声誉来评论,或者我会的,但是。。。在
你没有定义“lol”,你定义了“lolX”和“lolY”,它们是独立的变量。在
如果你想定义一个列表或字典里面有值,你不能只写lolX或lolY,你必须这样做(我在这里使用字典,因为它似乎是你想要的):
lol={}
哈哈[X]=例如密码箱(“Player”+str(playerNumber)+“输入第二艘船的x坐标”)
然后可以通过lol[X]访问lol中的值。在
您定义了单独的变量,而不是定义该变量的特定值。在
有几件事:
81号线
不能有两个后续的return语句。第一个将退出函数。如果要返回两组坐标,则返回嵌套列表:
161号线
然后使用解包来获得:
^{pr2}$171/176号线
确保你要经过的两艘船是不同的(目前它们是相同的):
到
170号线
while hit == False
条件意味着游戏将在玩家1的飞船被击中后立即退出。使用另一个变量检查游戏是否结束,例如:并跟踪每个玩家的可用飞船。在
相关问题 更多 >
编程相关推荐