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.mzph.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 语言极速入门…