在10*10的格子内,每个圆圈中的数字代表与其他圆圈有几条连线,连线只能为直线,且不能交叉。
每两个圆圈之间,最多有两条连线。
用代码在格子内生成指定数量的圆圈。圆圈的数字随机1到8,圆圈之间连线符合以上规则。

在10*10的格子内,每个圆圈中的数字代表与其他圆圈有几条连线,连线只能为直线,且不能交叉。
每两个圆圈之间,最多有两条连线。
用代码在格子内生成指定数量的圆圈。圆圈的数字随机1到8,圆圈之间连线符合以上规则。

问问GPT
做游戏真是夭寿,要不停地钻研这种新玩法的游戏
1随机生成圈,按规则直线随机生成圈连线,计算每个圈连线数量,再把线去了
就是个图的数据结构吧, 难在哪里?
确实. 厉害
似乎有个Google模拟面试,考的算法就是这个。
一个游戏而已,有必要吗
不能交叉,而且又在二维平面上生成。就直接把几何算法混进去了,难度上来了。
斜线算不算
单线双线不影响生成,有线就可能存在交叉。所以先简化成单线,数字1-4。
随机放置圈,按随机顺序(4个角4个起点共8种顺序,随机1种)一个圈一个圈地朝四个方向连线,遇到交叉返回,若四个方向都无法连线(即数字为0),随机改变位置后重试,一直循环直到连上。
生成完毕后,记录每条连线及其连接的两圈,连线随机三种状态:不变、分裂(分裂成两条线)、断开(连接的两圈数字大于1)。
如果只是想生成关卡 可以:
先画圈
后连线
再标数字
去掉线
完事