当前位置: 首页 > backend >正文

GO 小游戏在线试水

Playground
三子棋
package mainimport ("cogentcore.org/core/core""cogentcore.org/core/events""cogentcore.org/core/styles""cogentcore.org/core/styles/units"
)type user struct {Username stringPassword string
}type item struct {Done bool `display:"checkbox"`Task string
}func main() {b := core.NewBody()//tf := core.NewTextField(b).SetPlaceholder("Name")//tf.AddContextMenu(func(m *core.Scene) {//	core.NewButton(m).SetText("Build")//	core.NewButton(m).SetText("Run")//})//core.NewButton(b).SetText("Hello World!").OnClick(func(e events.Event) {//	core.MessageSnackbar(b, "Hello, "+tf.Text())//})u := &user{}pg := core.NewPages(b)pg.AddPage("Sign in", func(pg *core.Pages) {core.NewForm(pg).SetStruct(u)core.NewButton(pg).SetText("Sign in").OnClick(func(e events.Event) {pg.Open("Home")})})pg.AddPage("Home", func(pg *core.Pages) {core.NewText(pg).SetText("Welcom, " + u.Username).SetType(core.TextHeadlineSmall)current := "X"squares := [9]string{}status := core.NewText(pg)status.Updater(func() {sets := [][3]int{{0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {0, 3, 6}, {1, 4, 7}, {2, 5, 8}, {0, 4, 8}, {2, 4, 6},}for _, set := range sets {if squares[set[0]] != "" && squares[set[0]] == squares[set[1]] && squares[set[1]] == squares[set[2]] {status.SetText(squares[set[0]] + " wins!")current = ""return}}status.SetText("Next Player:" + current)})grid := core.NewFrame(pg)grid.Styler(func(s *styles.Style) {s.Display = styles.Grids.Columns = 3})for i := range 9 {bt := core.NewButton(grid).SetType(core.ButtonAction)bt.Styler(func(s *styles.Style) {s.Border.Width.Set(units.Dp(1))s.Border.Radius.Zero()s.Min.Set(units.Em(2))})bt.OnClick(func(e events.Event) {if squares[i] != "" {return}squares[i] = currentif current == "X" {current = "O"} else {current = "X"}bt.Update()status.Update()})bt.Updater(func() {bt.SetText(squares[i])})}core.NewButton(pg).SetText("Reset").OnClick(func(e events.Event) {squares = [9]string{}current = "X"grid.Update()})core.NewButton(pg).SetText("Sign out").OnClick(func(e events.Event) {*u = user{}pg.Open("Sign in")})})//items := []item{{Task: "Code"}, {Task: "Eat"}}//var table *core.Table//core.NewButton(b).SetText("Add").SetIcon(icons.Add).OnClick(func(e events.Event) {//	table.NewAt(0)//})//table = core.NewTable(b).SetSlice(&items)b.RunMainWindow()
}
 效果

 

参考

https://dl.google.com/go/go1.24.3.windows-amd64.zip

Playground

GitHub - cogentcore/core: A free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and web with a single Go codebase, allowing you to Code Once, Run Everywhere.

 cogentcore: Cogent Core 是一个免费的开源框架,用于构建功能强大、快速且优雅的 2D 和 3D 应用


创作不易,小小的支持一下吧!

http://www.xdnf.cn/news/6251.html

相关文章:

  • UE中:puerts使用指南(持续更新)
  • 服务器时间发生跳变导致hghac中对应主机状态频繁切换为crash或stop
  • 从Transformer到多模态智能,剖析人工智能时代的核心引擎​​
  • Linux服务之lvs集群与dr模式部署
  • Xsens发布专为生物力学打造的全新人体模型
  • centos6.10在Macbook m芯片上使用
  • Android 设置系统默认通话应用,打不开通话界面
  • VSCode python配置
  • 数据结构第七章(二)-树形查找:二叉排序树与平衡二叉树
  • Virtualized Table 虚拟化表格 el-table-v2 表头分组 多级表头的简单示例
  • 编程的本质, 就是创造工具
  • 【网工第6版】第10章 网络规划和设计②
  • Linux 中 open 函数的本质与细节全解析
  • 【爬虫】DrissionPage-2
  • 《低代码AI革命:技术平权的曙光还是数字封建的陷阱?》
  • 鸿蒙OSUniApp 制作动态加载的瀑布流布局#三方框架 #Uniapp
  • 2025 年主流 Java 框架解析与实践:构建高性能 Web 应用
  • Go语言八股之Mysql基础详解
  • 刷题记录(4)数组元素相关操作
  • 【网络实验】-BGP-EBGP的基本配置
  • 【CTFShow】Web入门-信息搜集
  • Python 接入DeepSeek
  • Redis持久化存储
  • 软件测试--入门
  • unity 鼠标更换指定图标
  • MongoDB 的核心概念(文档、集合、数据库、BSON)是什么?
  • 如何选择合适的企业级商城系统前端状态管理方案?
  • 【NLP 困惑度解析和python实现】
  • 并查集原理及实现:路径压缩,按秩合并
  • 【AAAI 2025】 Local Conditional Controlling for Text-to-Image Diffusion Models