iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
佛心分享-IT 人自學之術

Python學習馬拉松:30天挑戰系列 第 25

Day25. 實作練習:圈圈叉叉Tic-Tac-Toe

  • 分享至 

  • xImage
  •  
  • 教學來源:https://www.youtube.com/watch?v=8ext9G7xspg

  • 這段程式碼是要執行一個經典的井字遊戲(Tic-Tac-Toe)。遊戲中有兩個玩家,分別是人類玩家和隨機電腦玩家。玩家輪流在 3x3 棋盤上放置 "X" 或 "O"。當某一玩家成功將三個符號連成一條橫排、直排或對角線時,即為勝利者。若棋盤填滿但無人獲勝,則遊戲平局。

  • 程式碼:
    ◆ player.py:
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364almwt55SGs.png
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364wsOF9gHbds.png
    ◆ game.py:
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364FWYJUZ7Mwo.png
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364RLihSIWwFu.png
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364q0M74j3LEL.png
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364ezcJL81na2.png

  • 執行結果:
    https://ithelp.ithome.com.tw/upload/images/20241009/20168364gO8OT05MgG.png

  • 程式邏輯:

  1. 初始化遊戲:
    ◆ 遊戲開始時,系統會創建一個 TicTacToe 類的實例來表示遊戲的棋盤。
    ◆ 同時也會創建兩個玩家:一個人類玩家 (HumanPlayer) 和一個隨機電腦玩家 (RandomComputerPlayer)。
  2. 顯示棋盤:
    ◆ 遊戲會先顯示一個帶有數字的棋盤,這些數字標示了棋盤上每個可供選擇的空格(0 到 8),以方便人類玩家選擇他們的下一步。
  3. 交替移動:
    ◆ 遊戲會在兩個玩家之間交替進行,每回合輪到的玩家將會根據自己選擇的字母 ("X" 或 "O") 來做出移動。
    ◆ 當輪到人類玩家時,程式會要求輸入一個位置編號。輸入時,程式會檢查該位置是否有效(例如,是否超出範圍或是否已被佔用)。
    ◆ 當輪到電腦玩家時,它會隨機選擇一個有效的位置進行下一步。
  4. 判斷勝負:
    ◆ 每次玩家成功移動後,程式會檢查該移動是否形成了獲勝條件。獲勝條件包括三個棋子連成一條線(無論是橫排、直排或對角線)。
    ◆ 如果有一個玩家達成了這些條件,程式會宣告該玩家獲勝,遊戲結束。
  5. 遊戲結束條件:
    ◆ 如果棋盤上還有空位並且沒有玩家獲勝,遊戲會繼續進行。每輪的玩家交替,直到有一位玩家獲勝或棋盤上所有位置都被填滿為止。
    ◆ 如果所有空位都被填滿且沒有玩家達到獲勝條件,則遊戲以平局結束。
  6. 輸出結果:
    ◆ 當有玩家獲勝時,程式會打印出獲勝玩家的字母("X" 或 "O")以及更新後的棋盤。
    ◆ 如果遊戲平局,程式會輸出 "It's a tie!"。

上一篇
Day24. 實作練習:Hangman
下一篇
Day26. 實作練習:Binary Search
系列文
Python學習馬拉松:30天挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言