首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >4游戏-在船上打印X

4游戏-在船上打印X
EN

Stack Overflow用户
提问于 2016-02-28 20:23:21
回答 1查看 1.1K关注 0票数 0

我试图创建一个连接四个游戏,但我不知道如何打印棋盘上的棋盘。我需要它在用户输入的列中的最低可用位置打印X。每次我运行程序,我得到相同的空白6乘7板。请帮帮忙。谢谢!

代码语言:javascript
复制
#ConnectFour

numRows=6
numCols=7
numPlayers=2
board=[]
checkers=['X','O']
turn=0
win = False

for row in range(numRows):
    tempList=[]
    for col in range(numCols):
            tempList.append('.')
    board.append(tempList)

while not win:
    turn = (turn+1)%numPlayers

    userCol = input ("Player"+str(turn+1)+"please enter your col: ")
    while not userCol.isdigit() or not int(userCol) in range(numCols):
        userCol = input ("Player"+str(turn+1)+"please enter your col: ")

    for row in range(numRows):
        for col in range(numCols):
            print(board[row][col], end='')
        print()

    for repeat in range(numRows-2):
        for row in range(numRows,-1,-1):
            for col in range(numCols):
                if board[row][int(userCol)]==".":
                    board[row+1][int(userCol)]="X"
                    print
            break


#print board
for row in range(numRows):
    for col in range(numCols):
            print(board[row+1][userCol],end=' ')
    print()

print ("Player", checkers[turn],"has won the game.")
EN

回答 1

Stack Overflow用户

发布于 2016-02-28 20:49:27

我注意到的是:

  • 第24-27行:这将在玩家放下跳棋后打印未经修改的棋盘;也许这应该是在第29-35行之后?
  • 第30行:看上去像是一个错误,您可能需要range(numRows - 1, -1, -1)reversed(range(numRows))来代替。
  • 第29行:为什么有必要重复空空间检查?
  • 第31行:这是做什么的?当然,它会对每一列进行迭代,但这为什么是必要的呢?您已经知道请求的是哪一列,那么为什么要再次检查每一列呢?
  • 第32-33行:似乎是这样写的:“如果空格是空的,在它下面的槽中放置一个检查器”。我想你可能想要board[row][int(userCol)] = 'X'代替
  • 第41行:看起来像另一个错误,row+1应该是row.另外,userCol应该只是col吗?否则,它将只打印一列,而不是整个最终板。

一般性评论:

通常,您可以通过避免for i in range(x): do_something(mylist[i])反模式,而使用python风格的迭代:for item in mylist: do_something(item)来实现更简洁和更易读的python代码。

我会重写第29-35行。但是在你这么做之前,问问自己这些台词应该做些什么。如果我正确理解了任务,那么您应该只需要一个for循环。

Ninja编辑:同样,一旦生效,不要忘记处理播放机输入了一个有效的列号的情况,但是该列已完全填充,在这种情况下,您可能想要求同一播放器选择一个新的列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35687806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档