【发布时间】:2017-10-19 16:53:01
【问题描述】:
我已经制作了井字游戏的主要游戏机制;但是,我不知道如何对最终游戏获胜条件进行编码,即如何找到某人何时获胜/平局。
我尝试使用all() 函数,但要么这不起作用,要么我使用不正确(可能是后者)。
这是完整的代码,以及代码的变量列表(因为没有 cmets):
def get_grid():
r1 = ['-','-','-']
r2 = ['-','-','-']
r3 = ['-','-','-']
return r1, r2, r3
def get_coords():
x = 0
y = 0
while True:
try:
x = int(input("x coord : "))
y = int(input("y coord : "))
except ValueError:
print("Must be an integer")
if x < 0 or x > 3 or y < 0 or y > 3:
print('Both values must be in the grid!')
else:
break
return x, y
def pgrid(x, y, r1, r2, r3, player):
rdict = {1:r1, 2:r2, 3:r3}
if x != 0 and y != 0:
while True:
if rdict[y][x-1] == '-':
rdict[y][x-1] = player
break
else:
print("Invalid Space!")
x, y = get_coords()
print('\t1\t2\t3')
print(' 1 |', end = '\t')
for i in r1:
print(i, end = ' | ')
print()
print(' 2 |', end = '\t')
for i in r2:
print(i, end = ' | ')
print()
print(' 3 |', end = '\t')
for i in r3:
print(i, end = ' | ')
print()
def main():
r1, r2, r3 = get_grid()
players = ['X', 'O']
pgrid(0, 0, r1, r2, r3, None)
win = False
while win == False:
for i in players:
x, y = get_coords()
pgrid(x, y ,r1 ,r2 , r3, i)
变量r1, r2 and r3 是棋盘的第一行、第二行和第三行。 列表x and y 是放置“X”或“O”的坐标。 整数rdict 在输入的y 值和棋盘行之间导航。 字典player 是播放器。 字符串
players 是玩家的列表 ('X' and 'O')win 在玩家获胜/比赛平局时为真。 布尔值
win 变量是这个问题的答案需要改变的地方,我只需要代码,或者至少需要一个关于如何编码的想法(因为我没有!)。
提前致谢!
【问题讨论】:
标签: python-3.x list conditional-statements tic-tac-toe