我正在尝试创建一个类似python中的战舰的程序(业余爱好者)。我已经尝试了一些方法,即使在条件匹配的情况下,我也似乎无法弄清为什么该程序会返回miss。我在这里想念什么?谢谢
import random
import os
import time
XAXIS = [1,2,3,4,5,6,7,8,9,10]
YAXIS = [1,2,3,4,5,6,7,8,9,10]
########Generate Test Enemy Position
enemyPosX = random.randrange(1,len(XAXIS))
enemyPosY = random.randrange(1,len(YAXIS))
print(enemyPosX)
print(enemyPosY)
looping = True
while looping:
xAim = input("set X gun position (1-10):: ")
yAim = input("set Y gun position (1-10):: ")
xAim = int(xAim) #thought maybe I was comparing string to int
yaim = int(yAim)
print("{} {} :: {} {} ".format(enemyPosX, xAim, enemyPosY, yAim)) # Check Values for problem
if (xAim == enemyPosX) and (yAim == enemyPosY): #<---- Should both return true but nope
print("HIT!!!")
time.sleep(3)
looping = False
else:
print("MISS!!") #<--Getttin Miss regardless of Input
```
答案 0 :(得分:0)
这是您的问题。
yaim = int(yAim)
注意大小写差异。
因此,在if语句的条件下,您正在比较yAim(仍然是字符串)和敌人PosY(它是整数),这将导致它为False
。
if (xAim == enemyPosX) and (yAim == enemyPosY):