553 字
3 分钟
NumberBridgeWpf
“简单的”数桥游戏,用C#+wpf
制作。
使用 MIT LICENSE
Waiting for api.github.com...
项目组成
- NumberBridge : 核心游戏逻辑,包括地图生成,桥梁连接,相关判断
- NumberbridgeConsole : 地图生成测试,无游戏功能
- NumberBridgeWpf : 游戏程序,交互与地图转换
- NumberBridgeAvalonia : NumberBridgeWpf 的 Avalonia 版本
- NumberBridgeAvalonia.Desktop : 桌面版
- NumberBridgeAvalonia.Android : Android 移动版
注意PutGame.cs 在
NumberBridgeWpf
是将地图数据转换成控件交互的方法类,但NumberbridgeConsole
是地图转换成控制台文本的方法类
开发历程与心得
一切的开始
24年时,偶然得知数桥谜题,了解游戏规则后,有了开发的写法
25.1.27 开始制作
在制作过程期间,多次使用搜索,还是发现没人用除js以外的语言
做这类游戏。
网上有的基本上也是html+js
写的,没有开放任何有用的源代码
我仅凭兴趣去开发了这个程序,代码质量不能保证。
25.1.28 基础地图生成逻辑
参见 NumberBridgeGamePanel实例.CreateBaseMap()
25.1.29 基础地图生成逻辑完成
25.1.30 完成并打包Setup
包括正常的谜题地图随机生成,求解,游玩功能
25.2.22 完成 NumberBridgeAvalonia
真不是我说从wpf尝试移植到Avalonia上面真是麻烦,不仅部分属性声明改变了,控件样式自定义都有很大不同。
花了一个下午,写这个的时间是22:34左右。
android端开发挺费劲的,无法打断点,编译时间巨长(安卓端要编译两轮80个库)。
window端也是遇到了对话框问题,avalonia没有对话框,需要社区库,我使用了MessageBox.Avalonia
。
为了适配多端界面稍微改了布局,已知且不会解决的问题是SelectSizeDialogControl
背景透明,由于没找到获取主题背景色的方法所以只能这样了。
因为需要单页应用支持所以将这个对话框内置成控件了
avalonia这个库是真大,相比wpf版,大了几十倍。
本来想整个网页版的,在官方存储库也搜了这个默认模板出现avalonia.js丢失的问题,没有解决就算了。
NumberBridgeWpf
https://authorzixi.github.io/posts/products/numberbridgewpf/