1. 程式人生 > 其它 >井字棋遊戲

井字棋遊戲

技術標籤:pythonpython遊戲

井字棋

井字棋,英文名叫Tic-Tac-Toe,是一種在3*3格子上進行的連珠遊戲,和五子棋類似,由於棋盤一般不畫邊框,格線排成井字故得名。遊戲需要的工具僅為紙和筆,然後由分別代表O和X的兩個遊戲者輪流在格子裡留下標記(一般來說先手者為X),任意三個標記形成一條直線,則為獲勝。

py100天day7

"""
井字棋
這個案例來自[《Python程式設計快速上手:讓繁瑣工作自動化》]
(https://item.jd.com/11943853.html)一書
(這本書對有程式設計基礎想迅速使用Python將日常工作自動化的人來說還是不錯的選擇)
"""
import os


def print_board(board):
    """列印棋盤

    :param board:
    :return:
    """
    print(board['TL'] + '|' + board['TM'] + '|' + board['TR'])
    print('-+-+-')
    print(board['ML'] + '|' + board['MM'] + '|' + board['MR'])
    print('-+-+-')
    print(board['BL'] + '|' + board['BM'] + '|' + board['BR'])


def main():
    init_board = {
        'TL': ' ', 'TM': ' ', 'TR': ' ',
        'ML': ' ', 'MM': ' ', 'MR': ' ',
        'BL': ' ', 'BM': ' ', 'BR': ' '
    }
    print(init_board)
    begin = True
    while begin:
        curr_board = init_board.copy()
        begin = False
        turn = "x"
        counter = 0
        # 清屏
        os.system("cls")
        # 列印棋盤
        print_board(curr_board)
        while counter < 9:
            print(curr_board)
            move = input("輪到%s走棋,請輸入位置:" % turn)
            if curr_board[move] == " ":
                counter += 1
                curr_board[move] = turn
                if turn == "x":
                    turn = "o"
                else:
                    turn = "x"
            # 清屏 列印棋盤        
            os.system("cls")
            print_board(curr_board)

        choice = input("再玩一局?(yes|no)")
        begin = choice == "yes"


if __name__ == '__main__':
    main()

遊戲截圖