三子棋(Tic-Tac-Toe)是一種經典的兩人對戰游戲,通常在3x3的棋盤上進行。玩家輪流在空格中放置自己的標記(通常是“X”和“O”),先在同一行、列或對角線上連成一條線的玩家獲勝。本文將介紹如何使用Python實現一個簡單的三子棋游戲。
首先,我們需要創建一個3x3的棋盤??梢允褂靡粋€二維列表來表示棋盤,其中每個元素代表棋盤上的一個格子。
def create_board():
return [[" " for _ in range(3)] for _ in range(3)]
為了方便玩家查看棋盤狀態,我們需要一個函數來顯示當前的棋盤。
def display_board(board):
for row in board:
print(" | ".join(row))
print("-" * 5)
接下來,我們需要處理玩家的輸入。玩家需要輸入行和列的坐標來放置自己的標記。
def player_input(player):
while True:
try:
row = int(input(f"玩家 {player},請輸入行號(0-2):"))
col = int(input(f"玩家 {player},請輸入列號(0-2):"))
if 0 <= row <= 2 and 0 <= col <= 2:
return row, col
else:
print("輸入無效,請輸入0到2之間的數字。")
except ValueError:
print("輸入無效,請輸入數字。")
在每次玩家放置標記后,我們需要檢查是否有玩家獲勝。
def check_win(board, player):
# 檢查行
for row in board:
if all(cell == player for cell in row):
return True
# 檢查列
for col in range(3):
if all(board[row][col] == player for row in range(3)):
return True
# 檢查對角線
if all(board[i][i] == player for i in range(3)):
return True
if all(board[i][2 - i] == player for i in range(3)):
return True
return False
如果棋盤填滿且沒有玩家獲勝,則游戲為平局。
def check_draw(board):
return all(cell != " " for row in board for cell in row)
最后,我們將上述函數組合起來,實現游戲的主循環。
def tic_tac_toe():
board = create_board()
current_player = "X"
while True:
display_board(board)
row, col = player_input(current_player)
if board[row][col] == " ":
board[row][col] = current_player
else:
print("該位置已被占用,請重新輸入。")
continue
if check_win(board, current_player):
display_board(board)
print(f"玩家 {current_player} 獲勝!")
break
if check_draw(board):
display_board(board)
print("游戲平局!")
break
current_player = "O" if current_player == "X" else "X"
if __name__ == "__main__":
tic_tac_toe()
將上述代碼保存為一個Python文件(如tic_tac_toe.py
),然后在終端或命令行中運行該文件即可開始游戲。
python tic_tac_toe.py
通過本文的介紹,我們使用Python實現了一個簡單的三子棋游戲。這個游戲雖然簡單,但涵蓋了Python編程中的許多基本概念,如列表、循環、條件判斷和函數等。希望本文能幫助你更好地理解Python編程,并為你的編程學習之旅提供一些啟發。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。