go語言實現2048小游戲(完整代碼)

文章目錄

  • 2048邏輯分析
  • 完整代碼

2048邏輯分析

  • 2048小游戲的基本操作是上下左右,每個操作的邏輯都不太一樣!
  • 這個時候,通過數組旋轉的方式。將所有操作轉換為向上的操作
    在這里插入圖片描述
  • git地址
    https://gitee.com/hodgekou/golang.git
package mainimport ("fmt"
)type arr [4][4]intfunc (t *arr) Print() {for _, line := range t {for _, number := range line {fmt.Printf("%2d ", number)}fmt.Println()}fmt.Println()
}func (t *arr) Left90() {temp := new(arr)for i, line := range t {for j, number := range line {temp[len(line)-j-1][i] = number}}*t = *temp
}func (t *arr) Right90() {temp := new(arr)for i, line := range t {for j, number := range line {// fmt.Println(i,j,j,len(line)-1-i)temp[j][len(line)-i-1] = number}}*t = *temp
}func (t *arr) Up() {for m := 0; m < 3; m++ {for j := 0; j < 4; j++ {for i := 0; i < 3; i++ {if t[i][j] == 0 {t[i][j] = t[i+1][j]t[i+1][j] = 0} else if t[i][j] == t[i+1][j] {t[i][j] = t[i][j] + t[i+1][j]t[i+1][j] = 0}}}}
}func main() {// t := arr{{0,2,2,4},{0},{},{0,2,0,4}}t := arr{{2, 2, 2, 2}, {2, 2, 4, 2}, {}, {0, 2, 0, 4}}t.Print()//右fmt.Println("右")t.Left90()t.Up()t.Right90()t.Print()//左fmt.Println("左")t.Right90()t.Up()t.Left90()t.Print()//下fmt.Println("下")t.Right90()t.Right90()t.Up()t.Left90()t.Left90()t.Print()//上fmt.Println("上")t.Up()t.Print()
}

完整代碼

https://gitee.com/hodgekou/golang.git

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382436.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態二維碼免費制作

python3制作二維碼 很多網站都可以自定義制作很漂亮的二維碼&#xff0c;提供了各種素材&#xff0c;但是輸出文件又各種限制&#xff0c;非要買她的會員不可。好吧&#xff01;那我們就自己做一個。&#xff08;大牛的開源項目&#xff09; 最終效果 開源項目網站 git clon…

vs 2017 靜態庫 動態庫 的初步使用

靜態庫的初步使用 新建 靜態庫 項目 Lib1 會產生 sln文件與vcproj文件&#xff0c;vcproj是工程文件&#xff0c;sln是解決方案文件 一個解決方案可以有多個工程 在頭文件(Lib1.h)寫函數聲明&#xff0c;在cpp文件定義函數實現 這時候右鍵點擊項目 ->生成, 會產生 Lib1.lib…

C語言貪吃蛇

擴展功能實現 加速減速計分鏈表實現彩色界面暫停 開源代碼 貪吃蛇 動圖展示&#xff0c;&#xff08;加載比較慢&#xff09;

C++ 讀取windows服務列表 與操作注冊表

讀取服務列表 https://www.cnblogs.com/Leo-Forest/archive/2013/05/03/3056569.html 操作注冊表 https://blog.csdn.net/yanchenyu365/article/details/84840908

Python練手項目

python3學習筆記《目錄》 PyCharm和git安裝教程 git入門教程 python3學習筆記 Mooc學習Python3筆記 python3字符串處理&#xff0c;高效切片 三國演義人物出場統計 統計哈姆雷特文本中高頻詞的個數 python3制作動態二維碼 python的文件操作 簡單的爬蟲筆記 爬蟲實戰項…

windows C++ 通過WMI獲取底層信息

參考 可以通過修改參數來獲取相應的信息 https://www.cnblogs.com/hjbf/p/10775112.html https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-operatingsystem?redirectedfromMSDN

知網畢業論文爬取

知網論文 查找文獻的時候每次只顯示10頁二次檢索功能又還沒有&#xff08;不知道是不是我沒找到&#xff09;。干脆用爬蟲把所有和自己論文關鍵字相關的文獻題目都爬取下來&#xff0c;然后自己做一個小的檢索表。 開源項目 https://github.com/hodgekou/CNKICrawler.git 配…

go語言 函數相關1:實參到形參的傳遞永遠是值拷貝

相關知識點 a. 函數實參到形參的傳遞永遠是值拷貝 b. 函數參數 支持不定長參數,不定參數名在函數體 內相當于切片&#xff0c;對切片的操作同樣適合對不定參數的操作 c. 切片是引用類型&#xff0c;值包含指向數組的指針 func test1(s ...int) { // s為不定長參數s[0] 888 }…

git 初步使用01

git工作流程 git的安裝 1&#xff09;安裝git 2&#xff09;安裝烏龜 3&#xff09;漢化烏龜創建本地倉庫 在一個空目錄&#xff0c;打開git bash here&#xff0c; 輸入命令 git init 刪除并保留本地副本 選中目標文件&#xff0c;右鍵烏龜&#xff0c;刪除并保留本地副本 這…

net-tools和ifconfig

文章目錄歷史關系兩者使用對比一、顯示所有已連接的網絡接口二、激活或停用網絡接口三、為網絡接口分配IPv4地址四、移除網絡接口的IPv4地址五、顯示網絡接口的IPv4地址六、為網絡接口分配IPv6地址七、顯示網絡接口的IPv6地址八、移除網絡設備的IPv6地址九、改變網絡接口的MAC地…

go語言在windows編譯在linux上運行的可執行程序

package mainimport ("fmt""os""os/exec" )//filepath: 要編譯的文件的路徑 func build(filepath string){_ os.Setenv("CGO_ENABLED", "0")_ os.Setenv("GOARCH", "amd64")_ os.Setenv("GOOS&…

Django無法顯示圖片

首先注意的一點是&#xff0c;Django沒有根目錄的這個說法&#xff0c;所以下載下來的html文件沒有辦法直接使用&#xff0c;必須進行修改路徑&#xff0c;特別是圖片引用的路徑&#xff0c;需要進行修改。 路徑不對 源碼 {% load staticfiles %} <img src"{% stati…

go語言函數相關

函數類型 函數類型也叫作函數簽名&#xff0c; 就是函數定義首行去掉函數名、參數名和&#xff5b;&#xff0c;可以使用fmt.Printf 的”%T”格式化參數打印函數的類型。 可以使用 type 定義函數類型&#xff0c;函數類型變量可以作為函數的參數或返回值。 實際函數類型變量和…

go語言如何連接數據庫

文章目錄安裝驅動連接數據庫查詢表結果插入結果刪除結果安裝驅動 go get github.com/go-sql-driver/mysqlimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )連接數據庫 //用戶名&#xff1a;密碼^tcp(地址:3306)/數據庫db, err…

在windows下,編譯可訪問https的libcurl靜態庫過程

1. 首先編譯openssl靜態庫 整個過程用的是 vs2015命令提示工具 需要安裝perl 下載地址&#xff1a;添加鏈接描述 解壓后&#xff0c; 在 openssl-1.0.2e目錄下創建develop這個文件夾&#xff0c; cd到 openssl-1.0.2e目錄下&#xff0c; a.配置編譯文件和模式 執行 perl Co…

Go語言爬蟲項目將結果寫入MySql數據庫

來源于Google資深工程師深度講解Go語言 package mainimport ("fmt""io/ioutil""net/http" )const url "http://www.zhenai.com/zhenghun"func main() {//發送get請求resp, err : http.Get(url)if err ! nil {panic(err)}//關閉通道d…

go語言學習路徑

個人記錄 go語言如何連接數據庫&#xff1a;增刪改查 Go語言爬蟲項目將結果寫入MySql數據庫 go語言急速入門

在windows上使用go編譯dll文件,供C++調用

C項目是win32的&#xff0c;所以go的編譯環境也要改成win32的 cmd下&#xff0c;修改環境變量&#xff1a; set GOARCH386 set CGO_ENABLED1 使用go env 查看是否生效參考&#xff1a;https://bbs.csdn.net/topics/394513992. 2. 安裝編譯環境 MinGW下載安裝gcc,g編譯器 參考&…

go語言急速入門

Go 語言極速入門1 - 環境搭建與最簡姿勢 Go 語言極速入門2 - 基礎語法 Go 語言極速入門3 - 內建容器 Go 語言極速入門4 - 面向對象 Go 語言極速入門5 - 面向接口 Go 語言極速入門6 - 閉包 Go 語言極速入門7 - 資源管理與錯誤處理 Go 語言極速入門8 - Goroutine Go 語言極速入門…