尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
GO 小游戏在线试水
Playground三子棋package main import ( cogentcore.org/core/core cogentcore.org/core/events cogentcore.org/core/styles cogentcore.org/core/styles/units ) type user struct { Username string Password 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.Grid s.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] current if 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.zipPlaygroundGitHub - 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 应用创作不易小小的支持一下吧
RELATED

相关推荐

【10】自动驾驶行人车辆数据集(有v5/v8模型)/YOLO自动驾驶行人车辆检测

【10】自动驾驶行人车辆数据集(有v5/v8模型)/YOLO自动驾驶行人车辆检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/2 15:01:01
PRG解决哪种重复提交:POST之后为什么用303跳到GET

PRG解决哪种重复提交:POST之后为什么用303跳到GET

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/2 15:01:01
xv6的ecall怎么回来?从a0的第一次交换走到sret

xv6的ecall怎么回来?从a0的第一次交换走到sret

xv6的ecall怎么回来?从a0的第一次交换走到sret 读到系统调用时,很容易先记住这么一句话:用户程序执行 ecall,进入内核,内核处理完再回来。 但沿着代码看,第一步就有个问题。用户程序的 a0 里面可能装着参…

📅 2026/11/2 15:01:01
MORE NEWS

更多资讯

📰

Java H5微信支付APIv3实战:签名、回调幂等与查单补偿

简介:这份资源围绕 Java 后端接入微信 H5 支付展开,面向需要为电商网站、移动端网页补齐在线收款能力的 Java 开发者,也适合作为课程设计或小型项目中的支付模块参考。内容涵盖统一下单获取预支付标识、前端唤起支付、异步回调校验、订单查询…

📰

多智能体系统中Agent能力发现与动态注册机制详解

1. Agent能力发现与动态注册机制概述在多智能体系统(MAS)中,Agent间的能力发现与动态注册机制是构建灵活协作系统的关键技术。想象一下,这就像在一个大型科技公司里,每个员工(Agent)都有自己的专业技能(能力…

📰

从面条代码到文档工程:学术写作自动化实践

1. 从"面条代码"到文档工程的思维转变 "面条代码"(Spaghetti Code)这个术语在编程领域已经存在了几十年,它形象地描述了那些结构混乱、逻辑纠缠、难以维护的代码。就像一盘打结的意大利面,这种代码中的各个部…

📰

Flask+ECharts+爬虫+pandas:豆瓣电影数据分析系统全链路实战

简介:这份资源是面向计算机专业学生与Python初学者的一套完整毕业设计项目,主题为豆瓣电影数据爬取、分析与可视化,采用Flask搭建Web后端、ECharts完成图表呈现,并结合爬虫与pandas进行数据采集与清洗,数据库使用MySQL…

📰

OpenCV水果识别实战:苹果香蕉梨子三分类样本与SVM流水线

简介:面向计算机视觉初学者与OpenCV实践者的水果识别样本集,聚焦苹果、香蕉、梨子三类目标的图像分类任务,可用于图像预处理、特征提取、分类器训练与测试的完整流程演练。压缩包共1624个文件,以1618张jpg水果图像为主体&#xff…

📰

Eclipse项目关闭操作与性能优化指南

1. Eclipse 关闭项目的必要性解析 在 Eclipse 开发环境中,项目关闭是一个看似简单但实际影响深远的操作。当工作区积累过多项目时,IDE 性能会显著下降,特别是内存占用和索引速度方面。根据实测数据,一个包含 20 个未关闭 Java 项目…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬