做了一个鬼脚图生成器

Amida_graph

鬼脚图,又称画鬼脚,在日本称作阿弥陀签,是一种游戏,也是一种简易决策方法,常被拿作抽签或者决定分配组合。


平安夜前一天,文科小伙伴发来问我你知道吗?
我。。我不知道啊,心想是要解题吗?

规则:

当一个点出发遇到横线就拐弯,直到到达底部

sokka,秋山 19; 不不不,是要画一个。。。

我。。没问题啊,你日语翻译一下鬼脚图生成器,我google下

5分钟后,诶,感觉加横线不影响啊,不就是两边对掉吗
文科生:会影响结果啊(害怕重复)

思考2分钟,我: 不会啊因为共线当两个元素必然对掉,到达相反方向(繁复化单一)
文科生没听懂,疑惑的回家试

突然觉得好玩的我:可以帮你写个解题器啊。。但是8点要锻炼

解题

  • 抽象:就像有n根麻绳,拧一下,两根麻绳对掉,不管拧多少次,最终一个麻绳一个头对应一个尾
  • 代码执行思路:每当碰到一根横线,横线两端的元素进行对掉,然后删除该横线及对应在邻线的点
  • 构造数据:[12,01];0左边点,1横线,2右边点;中间“,”分割

Amida_Inro

8点回来大概写到晚上11点,心想要不写个生成器,写到1点没写完睡觉
第二天起来写

生成器

  • 输入:元素数量,线数量
  • 生成:每两个元素至少有一根,剩余随机
  • css:通过绝对布局append进相对布局的父元素div;
  • 优化: 既然画都画了,不如自动记录成所需格式,运行解题函数 把结果也给人家

Amida Generator

早上8点起床,10点完成,喜获一顿饭

后记

路上有想:是不是可以用graph数据结构
超多循环,有潜在bug卡死,毫无算法,逻辑复杂,仅it works

如果有时间:

  1. 用更好的算法和数据结构,加上单元测试
  2. UI优化:例如线条的漫画效果,更多提示
  3. UI优化:数据校验、错误提示、防止系统错误浏览器卡死
  4. UI优化:使用拖拽代替按照规定的数组更好

不知道以后有没有机会把这段好玩的代码优化,下面是链接

鬼脚图生成器, by vicky

分享到