V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
andyzhshg
V2EX  ›  奇思妙想

你想玩这样的 3D 数独吗? [建议有奖]

  •  
  •   andyzhshg · 353 天前 · 2228 次点击
    这是一个创建于 353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我又来了,20 多天前我在 v 站发了数独游戏 Hi Sudoku 的推广帖子 /t/992373,得到了大家的支持,这里再次感谢 V 友们的支持。

    如果你是数独爱好者,并且还没玩过 Hi Sudoku,真心希望你可以试一下,保证你能有全新的体验,你可以通过下面的链接来下载:

    Hi Sudoku on App Store Hi Sudoku on Google Play

    广告结束,言归正传,这个帖子的主要目的是来征求大家的建议,我正在开发一个3D 数独游戏,大概的玩法就是一个立方体,立方体的每个面都划分为 4x4 的网格。这样,立方体的每个面,以及按照任何方向环绕立方体一周的行,就都正好包含 16 个格子。这就组成了一个变体的 16 阶数独。示意图如下:

    Sudoku 3D Demo

    现在已经有了一个可以勉强试玩的Demo,想尝试一下的可以去下面的链接试玩。

    https://hisudoku.com/3d/

    因为还没有做任何优化,加载会慢一些,其耐心等一会。这是非常早期的一个版本,没有什么可玩性,正式版甚至开发平台都做了切换,所以这个版本主要用来示意游戏的玩法。正式版会与 Hi Sudoku 更加类似,包含 Hi Sudoku 中的提示和快捷操作之类的东西。

    大家在玩法和操作上有什么建议,可以在这里留言,我会选取有价值的建议给予奖励——因为 3D 数独还没有上线,现在暂时会奖励 Hi Sudoku 的兑换码,后续 3D 数独上线可以凭获奖记录再获得 3D 版本的兑换码。为了方便收取奖励。请大家留言时附加邮箱(可以 base64 )和 使用平台( App Store 或 Google Play )。

    可看可不看的后话

    如之前帖子所言,我是一个深度的数独爱好者,玩过不计其数的数独游戏。在玩的过程中,积累的不少的经验,梦想着做一款更好的数独 App ,所以就有了 Hi Sudoku;与此同时,也产生了一些异想天开的想法,比如现在这个 3D 数独

    事实上,这个 3D 数独的点子,甚至是这个 DEMO ,都是在 Hi Sudoku 之前产生的。

    事情的先后顺序是这样的:

    1. 产生了 3D 数独的点子

    2. 做个 DEMO 吧,挑来挑去,选择了 Cocos Studio ,用 Cocos 做了现在大家看到的这个 DEMO 。

    3. 做完 DEMO 发现,以我的水平,用 Cocos 做界面太难了,勉强做出来也丑的要命,而且集成内购和广告都比较麻烦。

    4. 目光转向了 flutter ,虽然一直做后端开发,我是稍微有一点 flutter 经验的,于是尝试用 flutter 和 cocos 混合开发,最初希望的方式是在原生的 cocos 项目中集成 flutter 做界面,但是苦于没有经验,一直不能成功;后来变了思路,用 flutter 做主项目,将 cocos 打包成 html 作为 webview 集成进去,这条路倒是走通了,但是 flutter 和 cocos 的 webview 通信有各种的延迟和不可靠,写了一堆跟游戏本身关系不大的布丁代码。

    5. 勉强调通了游戏,就还有最后一个大的问题了,那就是游戏关卡数据。我才发现,这才是最难的部分,用 Dancing Link 加上随机挖孔法随便生成一些关卡倒是不难,但是这样生成出来的关卡,难度没法控制,用这样的关卡做出的游戏,注定是没人会持续玩的

    6. 于是我开始做一个数独关卡生成器,生成符合逻辑,难度合理的关卡。因为现在主程序是 flutter 技术栈了,所以生成器自然而然的选择了 Dart 。我几乎手搓了大部分常见的数独逻辑解法,加上 Dart 本身就很臃肿,这个关卡生成器(也是逻辑解题器)洋洋洒洒整了近万行的 Dart 代码。

    7. 在开发的过程中,总得试试题目的效果,因为 3D 数独毕竟不如传统数独直观,所以关卡生成器开发过程中我用 flutter 做了一个简单的 2D 传统数独来验证题库。

    8. 当题库做的差不多的时候,我发现,既然我都有一个基础款的 2D 传统数独的雏形了,为什么不完善一下,把它做成一个完整的游戏呢?于是我把我之前总结的各种经验和想改进的点都做到了这个游戏里,然后,虽然是一个副产品,Hi Sudoku 却先一步被完成了。事情总是不按计划发展😂。

    9. 最近迭代了一小波 Hi Sudoku ,总体来说无论是论坛,还是商店的评价,反馈还是很正面的,虽然下载量堪忧,但是也算是一个不错的开始吧。

    10. Hi Sudoku 的大修改基本完成了,终于可以回到 3D 数独了。但是,前面说过的 flutter+cocos 的方案毕竟是不完美的,比如我在 Hi Sudoku 中做的智能提示等功能,要想在这个混合方案里实现,就得用 ts 在 cocos 中再实现一遍,既费力,又难以保证效果。

    11. 于是我开始寻找只用 flutter 做 3D 数独的方案。但 flutter 是一个 2D 的 UI 引擎,pub.dev 上有一些移植了 OpenGL 的包,但是效果和兼容性都差强人意。直到最后我发现了这个包:flutter_cube,有了些豁然开朗的感觉。说到底,虽说是 3D ,但我只是画一个立方体而已,何不参考这个包的形式,用 2D 的绘图 API 来模拟 3D 效果呢?说干就干,于是只用了几百行 Dart 代码,就绘制出来了这个立方体,兜兜转转,原来解法比自己想象的简单得多。

    这就是截止目前发生的所有事情了,后边我会在迭代 Hi Sudoku 的同时,用纯 flutter 实现 3D 数独,并尽快发布出来,因为可以复用 Hi Sudoku 的绝大部分代码,所以理论上不会太久,大家敬请期待。

    另外,得益于 flutter 的跨平台特点,后边 Hi Sudoku 和这个还没有名字的 3D 数独,也有可能出现在桌面( Steam 或者 Mac App Store 之类的)或者 web 等更多的平台。

    这就是整个故事了,如果你对这个 3D 数独或者 Hi Sudoku 有好的想法和建议,或者你有新鲜的关于数独的点子想让我来实现的,都可以在评论区提出来,我都会按照前面所说择优奖励兑换码。

    或者大家有什么想问我的问题,也可以留言提问哈。

    谢谢大家。

    18 条回复    2023-12-08 23:45:59 +08:00
    johntang824
        1
    johntang824  
       353 天前
    想法非常不错,对这个有点感兴趣(虽然我数独欢迎玩超过 100 把),总体来说对这个立体的数独更有意愿去玩。
    1.有点惊讶:我还以为 ABCDEF 面不会变化,玩了之后发现这个这个还会随着用户点击而变化;
    建议就是:这个平面解析的视图能不能再加一种,个人比较倾向于这种的 https://github.com/Johntang666/JavaPractice/blob/master/image.png (现在这个视图也非常不错)

    另外我也想要个兑换码,天天玩数独,基本上要看广告 Mjk1NjI3NTQ2MUBxcS5jb20=,App Store 的
    johntang824
        2
    johntang824  
       353 天前
    接上面,好像我这样的视图有问题,好吧(我的无效建议了),我没有建议了
    i979491586
        3
    i979491586  
       353 天前
    膜拜!
    i979491586
        4
    i979491586  
       353 天前
    请问 这种免费游戏上线国内 App Store 也有什么限制吗?国内的搜不到
    andyzhshg
        5
    andyzhshg  
    OP
       353 天前
    @johntang824 感谢建议哈,因为现在换了实现方案,展示方式确实可以更多样了,你这种也不是不可能,不过有可能切到这种模式的时候就不显示 3D 立方体了,我后边会多实验几种展示方式。

    PS:Hi Sudoku 兑换码已经发送至邮箱,请查收。
    andyzhshg
        6
    andyzhshg  
    OP
       353 天前
    @i979491586 iOS 的话国内现在要求备案,游戏还要求有版号;安卓的话还要额外要求著作权。所以就暂时干脆没有上国内的市场,后边有余力了再看看有没有可能包装成非游戏类型,上到国内的商店,算是出口转内销了😂。
    johntang824
        7
    johntang824  
       353 天前 via Android
    @andyzhshg 感谢
    beimenjun
        8
    beimenjun  
       353 天前
    感觉有点意思。
    methol
        9
    methol  
       353 天前
    玩了下网页版本的,感觉很难啊,3d 那个记忆很难
    基本上是完全依靠展开图看能补充什么数字了

    是不是可以考虑有二阶、三阶的立方体?
    nuofei
        10
    nuofei  
       353 天前 via Android
    比魔方难 100 倍吧,三阶估计得玩好几个小时
    return1992
        11
    return1992  
       352 天前
    首先感谢 Hi Sudoku 这个非常优秀的数独游戏,最近一直在玩。
    3D 数独游戏非常有创意的想法,稍稍体验了下,提两个小建议哈,您可酌情考虑哈。
    1. 能否在增加一个模方当前面直接显示正正面按钮(当前面的正面,不倾斜),稍稍减轻 3D 轻眩晕的感觉,不过在高难度可取消这个按钮显示或自己选择。
    2. 在低难度中,能否在展开面中增加当前面的重点突出显示效果,减少入门人员的上手难度,增加入门体验感,同理高难度可不显示。
    后续完整体验后,再进行反馈。感谢给数独爱好者带来创意的游戏。
    cmV0dXJuMTU4OUAxNjMuY29t ,App Store
    andyzhshg
        12
    andyzhshg  
    OP
       352 天前
    @return1992
    1. 目前有一个隐藏的小功能是双击某个单元格,会把这个单元格转到面向左前,只显示一个面有一个问题就是信息量太少,不过确实有这种需求的话可以考虑加进来。
    2. 我设想的事靠背景颜色和背景的字母来帮助用户定位展开视图和立体视图,现在可能颜色区分的不太明显。您说的增加突出显示确实是一个办法,不过“当前面”这个在立体视图里不太好确定,因为立方体可能处于各种姿态,不太好说谁是“当前面”,我在整理下思路。
    Hi Sudoku 的兑换码已发至邮箱,后边可以凭邮件再领取 3D 数独的兑换码,感谢建议。
    andyzhshg
        13
    andyzhshg  
    OP
       352 天前
    @methol 确实,3D 视图下信息是不足的,很考验记忆力,所以花大力气做了 2D 的展开视图。四阶立方体的好处是每个面个环绕一周都正好是 16 个,这是立方体的特性决定的,如果改成其他阶数,游戏的设定就得改变了;四阶的缺点确实就是数太多,不太好记忆,难度比较大哦。
    其他阶数的话,也有立体的玩法,类似这样: https://cruxpuzzles.co.uk/product/v-cube-3x3x3-sudoku/ 每个面都是一个完整的数独,这种其实本身跟立体的关系就没有那么大了,只是 12 个棱共用了数据。后边我可能也会考虑做一下这种模式,现在还是先把当前这个创意做出来。
    andyzhshg
        14
    andyzhshg  
    OP
       352 天前
    @nuofei 其实对数独习惯的话不算难,从展开视图看的话,就比标准数独格子稍多一点点(标准数独 81 格,3D 数独 96 格),只是候选数变成了 16 ,会稍难一些。其实比 16x16 的普通数独反倒是简单了不少。
    跟魔方比的话其实完全是两类东西,玩这个不需要魔方的知识。我倒是还有一个把魔方和数独组合起来玩的点子,类似先转魔方把每个面颜色对上,然后在做数独这样,不过感觉有点变态了,可能玩的人不会太多。
    shiroyuri
        15
    shiroyuri  
       352 天前
    单个格子的 4 x 4 还是不太常规了,要记忆,和查找空缺数字都太花时间了
    但是展开只有六面的话,确实比起常规平面 9 宫格的数独难度会低一些


    但是 3D 的立方体玩起来还是挺有意思,推荐可以先做个 三阶魔方立方体来
    ukuq
        16
    ukuq  
       352 天前
    顶部的方向能设置成可调节的吗,/这个方向的看着没有\的舒服
    求个兑换码,dWt1cUBxcS5jb20= google
    illicITli
        17
    illicITli  
       352 天前
    不知道实际在 app 上操作的时候能否增加双指操作,这样就可以调整一个面的角度,不然只能一个手指操作让魔方转几圈之后回来才能调整这个面的角度了
    andyzhshg
        18
    andyzhshg  
    OP
       352 天前
    @ukuq 可以的,我考虑加一个配置选项。
    感谢建议,Hi Sudoku 兑换码已经发送至邮箱,请查收
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   906 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:06 · PVG 06:06 · LAX 14:06 · JFK 17:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.