Skip to content

leetcode-golang-classroom/2048-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • 壓縮(Compress):將所有非零數字往滑動方向移動。
  • 合併(Merge):相鄰且相同的數字合併成一個,數值翻倍。
  • 再次壓縮:把合併後出現的空格補齊。

終止條件

遊戲會在以下情況結束:

  • 勝利條件

    盤面上出現數字 2048(或玩家自訂目標,例如 4096)。

  • 失敗條件

    盤面已無空格,且 四個方向都無法再合併。

About

golang with 2048 game implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages