fachlowing是python中的tic tak脚趾游戏代码,有人可以告诉我如何使用重置选项以GUI形式制作它并显示最终获胜者。喜欢X win还是O win?
board =“1 | 2 | 3 \ n ----------- \ n 4 | 5 | 6 \ n ----------- \ n 7 | 8 | 9"
。 棋盘格= [1,2,3,4,5,6,7,8,9,1,4,7,2,5,8,3,6,9,1,5,9,3,5,7 ]
空间=范围(1,10)
def moveHandler(棋盘,空格,棋盘,玩家,n):
if player==1:
check="X"
else:
check="O"
while spaces.count(n)==0:
print "\nInvalid Space"
n=playerinput(player)
spaces=spaces.remove(n)
board=board.replace(str(n),check)
for c in range(len(checkboard)):
if checkboard[c]==n:
checkboard[c]=check
status = checkwinner(checkboard,check)
return board,status
while a<=21:
combo = [checkboard[a],checkboard[b],checkboard[c]]
if combo.count(check) == 3:
status =1
break
else:
status =0
a+=3
b+=3
c+=3
return status
def playerinput(播放器): 尝试: key = int(raw_input('\ n \ nPlayer'+ str(player)+':请选择一个空格'))
except ValueError:
print "Invalid Space"
key = playerinput(player)
return key
而True:
player = len(spaces)%2 +1
if player == 1:
player = 2
else:
player =1
print "\n\n" + board
key = playerinput(player)
board,status =moveHandler(board,spaces,checkboard,player,key)
if status == 1:
print '\n\nPlayer ' + str(player) + ' is the winner!!!'
print board
break
elif len(spaces)==0:
print "No more spaces left. Game ends in a TIE!!!"
print board
break
else:
continue
答案 0 :(得分:5)
显然,您需要选择一个GUI工具包(Python支持其中许多工具包),使用它将板绘制为3 x 3正方形网格,并将playerinput
函数更改为接受输入(例如)当前玩家双击他或她想玩的空白广场。
然后,您需要更改print
语句以显示GUI表面上的信息。
然而,如果游戏没有尝试控制事件的流程而是对玩家发起的事件作出反应 - 那就是真正的GUI应用程序应该如何完成,而不是通过对某些界面进行最小程度的改造,那么游戏会好得多在内在设计为命令行交互过程的基础之上。
这些任务中的每一项都是实质性的,特别是我在上一段中推荐的整体重构,完全取决于你选择的GUI工具包的详细信息 - 所以你可能想要从那开始,然后通常打破问题进入各种子任务(“每个问题一个问题”,因为后者可能出现很多问题; - )。
关于Python的GUI选择主题有几个SO问题,所以我建议你研究它们而不是问一个新问题。我个人最喜欢的是PyQt(虽然我越来越经常使用一个简单的基于浏览器的界面,只有一个本地服务器供电),但其他流行的包括wxPython,Tkinter,PyGtk和其他列出的here - - 快乐狩猎!
答案 1 :(得分:1)
查看python wiki以获取有关不同GUI工具包的信息。我建议查看wxPython,并从那里开始