2048-game

這個 repository 主要用來 demo 使用 golang 來實做 2048 遊戲的功能

目標會採用 ebiten 來作畫面展現的遊戲引擎

預期會先從核心功能開始寫,最後再加上 ebiten 來作畫面渲染

2048 遊戲介紹

2048 是一款單人益智遊戲,玩家透過滑動方格中的數字進行合併, 最終目標是在盤面上生成一個 數字 2048 的方塊。 遊戲盤面為 4x4,每格可以放置一個數字(通常是 2 的冪次)。

遊戲規則說明

遊戲基本迴圈如下:

  1. 初始化:隨機在兩個位置生成 2 或 4。
  2. 玩家滑動(上下左右四個方向)。
  3. 壓縮數字:將所有數字往滑動方向靠攏。
  4. 合併數字:相鄰且數值相同的數字會合併,數值加倍。
  5. 再壓縮:合併後的空格再次填補。
  6. 新增數字:在隨機空格生成 2 或 4。
  7. 檢查終止條件(勝利 / 失敗)。
  8. 重複步驟 2~7。

滑動與合併規則

這是 2048 最重要的邏輯,先用向左滑為例:

操作前 壓縮非零數字 合併相同數字 再壓縮
2 0 2 4 2 2 4 0 4 0 4 0 4 4 0 0
4 4 4 4 4 4 4 4 8 0 8 0 8 8 0 0

終止條件

遊戲會在以下情況結束: