简体   繁体   English

如何清除木板

[英]How to clear the board

The issue I'm having is how can I make my game stop "re-printing" the board game and not show the board again and again every round/turn in the console? 我遇到的问题是如何使我的游戏停止“重新打印”棋盘游戏,而不在控制台中每回合/每转一次显示棋盘? I want it to change the "X" in the 1st board and not reprint the board with the "X". 我希望它更改第一块板上的“ X”,而不是用“ X”重新打印该板。

Here's the code: 这是代码:

from random import randint

board = []

for x in range(5):
    board.append(["O"] * 5)

def print_board(board):
    for row in board:
        print " ".join(row)

print "Let's play Battleship!"
print_board(board)

def random_row(board):
    return randint(0, len(board) - 1)

def random_col(board):
    return randint(0, len(board[0]) - 1)

ship_row = random_row(board)
ship_col = random_col(board)

print ship_row
print ship_col

for turn in range(4):
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))

    if guess_row == ship_row and guess_col == ship_col:
        print "Congratulations! You sunk my battleship!"
        break
    else:
        if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
            print "Oops, that's not even in the ocean."
        elif(board[guess_row][guess_col] == "X"):
            print "You guessed that one already."
        else:
            print "You missed my battleship!"
            board[guess_row][guess_col] = "X"
        print "Turn", turn + 1
        print_board(board)

print "Game Over"

If you want to go simple, you can clear the screen with this line: 如果要简化,可以使用以下行清除屏幕:

print(chr(27) + "[2J")

And then quickly repaint the board. 然后快速重新粉刷木板。

For more advanced console management, you can use the curses module. 要进行更高级的控制台管理,可以使用curses模块。 It is not very easy to use, but it will let you do a lot of fancy stuff. 它不是很容易使用,但是它会让您做很多花哨的事情。 It is actually thin binding of the C curses library, so you may find a lot more documenatation if you search for the C one. 它实际上是C curses库的瘦绑定,因此,如果您搜索C语言库,可能会发现更多文档资料。

If you want to go graphic, the standard library is pygame . 如果要进行图形处理,则标准库为pygame It is a not-so thin binding of the popular SDL library, but you will find a lot of pygame examples out there. 它与流行的SDL库的绑定不是那么薄,但是您会发现很多pygame示例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM