DeepSeek V4.1 Flash builds a 3D Chinese chess page in one 25-minute Three.js run
The author had V4.1 Flash generate a single-file Three.js 3D Chinese chess game with a full rules engine, alpha-beta AI and physics animation in 25 minutes, with no rule conflicts, and shares the prompt.
deepseek v4.1 flash Three.js 单页3D拟人象棋 参考昨天的素描象棋 用Three.js 制作一个微缩、动态的 3D 中国象棋 25分钟直出单个 index.html 文件 不使用外部资源,不需要构建步骤 代码直出,一步到位, 象棋规则没有冲突,感觉完全可以复刻到同类棋牌游戏的交互体验上 提示词如下: ## 概念:"楚河汉界"桌面对战 一张低矮漆木桌上放着一块真正的象棋棋盘,两支玩具感的军队站在上面,以 3/4 高角度俯视。它会自己完整地打完一整盘真实的棋,像电影视频一样,带自动导播镜头。用户可以随时暂停、修改设置或接管对局。 ## 架构(严格分层,这是最重要的) 1. 规则引擎(纯逻辑,不依赖 Three.js):9x10 的棋盘模型,以及完全正确的中国象棋实现: - 棋子:帥/將被限制在九宫内;仕/士在九宫内斜走;相/象恰好走田字(斜走 2 格),象眼被堵则不能走,且不能过河;馬走日(直走 1 格再斜走 1 格),被相邻的"马腿"位置上的棋子堵住则不能走;車可以沿直线任意距离滑动;炮走子时和车一样滑动,但吃子时必须恰好跳过一个棋子(炮架);兵/卒只能向前走一步,过河后还可以向左右走一步,永远不能后退。 - 规则:双方的将帅不能在同一条无遮挡的直线上对面("将帅对面/飞将");走完后自己的将帅仍被将军的走法是非法的;将军、将死(获胜)、困毙(在象棋中,被困毙的一方判负);重复局面和步数上限的和棋规则(例如 120 步内无吃子)。 - 合法走法生成器、走子/撤销、将军检测。加载时内置一个自检:初始局面下红方必须恰好有 44 个合法走法。把通过/失败写入控制台,如果失败,在界面上显示一个小警告。 - 走法用传统记谱法记录(例如 炮二平五、馬8進7),显示在棋谱列表中。 2. AI + 随机系统(决定下什么棋,只能从合法走法中选): - 带种子的伪随机数生成器,并显示当前对局种子。相同种子能复现同一盘棋;提供"新种子"和"重放该种子"按钮。 - 评估:子力价值、位置表、机动性、将帅安全,加上浅层搜索(alpha-beta,深度 2–3,分成小时间片运行,保证界面不会卡死)。 - 随机性:对分数做 softmax,在若干个最佳走法中选择,由"温度"滑块控制。再加入每支军队的随机"性格",每局随机改变打法(激进的炮开局、稳守、车冲锋、弃子攻杀),随机选择开局库(当头炮、屏风马、飞相局、过宫炮等),高温度下偶尔有故意的失误,以及出人意料的弃子。用不同种子的两盘棋,发展必须截然不同。 - 一条胜率条,以及每步一句简短的"解说"(例如"红炮牵制住了黑马"、"吃子!车吃炮")。 3. 物理 + 动画层(只负责演出引擎已经决定的事,绝不改变对局状态): - 移动:棋子沿路径缓动走向目标格,并避开其他棋子(马带一个跳跃动作,象迈着步子,车在转动的轮子上滚动,兵列队前进)。 - 炮:用投石机抛出石头,采用真正的抛体运动(重力、计算出的发射角和飞行时间),越过炮架棋子落在目标上,伴随撞击闪光和扬尘。兵和马也有简短的攻击动作(长矛突刺、踢击)。 - 吃子:被吃的人物被击退,用简单的刚体运动(重力、弹跳、摩擦、旋转、静止)倒在桌面上,然后被抬离棋盘,或化作花瓣消散。只使用轻量的自定义物理,不要引入重型物理库。被吃的棋子收集在两侧的小托盘里。 - 碰撞:棋子之间不会互相穿模;静止的人物会呼吸、摇摆,旗帜在风中飘动。 - 物理绝不能覆盖规则:由引擎决定结果,物理只负责让它看起来可信。