首页/新闻资讯/正文详情

GO 小游戏在线试水

发布时间:2026/11/2 14:58:20 来源:云帆数科 栏目:资讯中心
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 应用创作不易小小的支持一下吧

相关推荐

【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 14:58:20

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 14:58:20

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

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

钢管切割问题:从组合优化建模到车间落地的完整求解流程
钢管切割问题:从组合优化建模到车间落地的完整求解流程

钢管切割这个问题,乍一看像是车间里的粗活,真上手算过一遍的人都知道,它骨子里是一道披着工业外衣的组合优化题。我最早接触它是在一个做金属结构件的小厂里,当时车间主任拿着一张三米长的原料清单和一堆长短不一的订单尺寸&#… · 2026/11/2 17:49:42

智慧医院物流供应链系统的精益设计与技术实现
智慧医院物流供应链系统的精益设计与技术实现

1. 智慧医院物流供应链系统概述智慧医院物流供应链系统是医疗信息化建设的重要组成部分,它通过物联网、大数据、人工智能等技术手段,对医院内部的药品、耗材、设备等物资流动进行全流程数字化管理。这套系统能够显著提升医院运营效率,降低医疗… · 2026/11/2 17:49:42

Qt飞机大战C++完整工程解析:从QGraphicsScene到碰撞检测
Qt飞机大战C++完整工程解析:从QGraphicsScene到碰撞检测

简介:这是一份面向Qt与C初学者及课程设计学习者的2D射击游戏完整项目源码,基于Qt框架与QGraphicsView图形视图模块实现飞机、子弹、敌机的动态渲染,涵盖键盘事件响应、QTimer定时动画、碰撞检测、音效播放与资源管理等核心知识点,… · 2026/11/2 17:49:42

VoiceStudio:开源语音工作流操作系统与Electron底层实践
VoiceStudio:开源语音工作流操作系统与Electron底层实践

1. VoiceStudio不是“又一个语音克隆工具”,而是开源语音工作流的底层操作系统你搜“VoiceStudio”时,大概率会看到一堆零散的GitHub star、Electron打包截图、AGPL-3.0许可证弹窗,还有人问“怎么在鸿蒙上跑”。但没人告诉你:它根… · 2026/11/2 17:49:42

ODM模式解析:从概念到商业实践
ODM模式解析:从概念到商业实践

1. ODM模式深度解析:从概念到商业实践在消费电子、家电、医疗器械等行业,我们经常听到"ODM"这个术语。作为从业15年的产品开发专家,我见证了大量品牌商通过ODM模式快速推出市场爆款。今天我们就来彻底拆解这种"交钥匙"式… · 2026/11/2 17:49:42

GPT-Image API 实战:图片编辑蒙版与 Alpha 通道避坑指南
GPT-Image API 实战:图片编辑蒙版与 Alpha 通道避坑指南

最近我把 GPT-Image API 接进一个图片批处理工具里,需求本身不复杂:给商品图换背景、去掉照片角落的水印、局部改个颜色。原以为一个编辑接口几分钟调通,结果在图片蒙版(mask)和 Alpha 通道上反反复折腾了两天&#xf… · 2026/11/2 17:48:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* 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 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* 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 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* 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 5:17:18

雷达信号调制技术解析:从LFM到伪线性调频原理与应用
雷达信号调制技术解析:从LFM到伪线性调频原理与应用

/* 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 1:01:15

基于MAX14431与TM4C123的工业SPI隔离电路设计全攻略
基于MAX14431与TM4C123的工业SPI隔离电路设计全攻略

/* 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 1:01:15

PLFM_RADAR:相位线性调频雷达信号处理框架
PLFM_RADAR:相位线性调频雷达信号处理框架

/* 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 1:01:15

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* 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 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* 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 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* 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 5:17:18

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码