[扫雷中布雷的算法]先来一个二维数组。然后取随机数。当然要1或0的随机数了。如果是1的话就弄成雷。想弄几个就弄几个。你可以设定。然后再根据数组的值来判断了。0的地方就得写上数字了。比如...+阅读
从手工点开的这个空格进行处理,按上右下左或你自己定义的一个顺序来判断相应位置的格式是否是空格且未被点开,如果不是,则跳过,如果是,则将其自动点开,同时把这几个位置加入队列后续处理。简单的流程图示意:当前位置是空白位置?----否--->非空白的处理 | | 是 | V 加入队列 | V+--->队列为空?-------->是--->结束| || |否| || V| 第一个元素出队| || V| 点开该元素所指的位置| || V| 上左下右的位置如果是空白且未点开则入队| |--------+上面是非递归的方案,递归方案则更容易了:伪代码算法描述如下:Click(pos) // 点开 pos 这个位置{ // IsClicked() 判断是否是已经点开的格子 if (IsClicked(pos)) return; // IsBlank() 判断是否是空白格子 if (! IsBlank(pos)) { 点开非空白格子的处理 } // 下面是点开空白格子的处理 ClickBlank(pos);}ClickBlank(pos){ if (! IsBlank(pos)) rerurn; if (IsClicked(pos)) return; // 下面对四个方向的格子进行自动点开 // 你需要计算四向的格子位置,无效的直接返回 ClickBlank(pos上面的格子); ClickBlank(pos右面的格子); ClickBlank(pos下面的格子); ClickBlank(pos左面的格子);}...
延伸阅读:
扫雷时怎么计算有没有雷挖雷与做标记 在看一下按键响应函数keyPressed(int kcode),按1键是挖开动作。 前半部分表示如果当前焦点在一个埋藏格(值介于10到19之间),那么将其值减10,表示现在挖开。当然如果...
扫雷算法自然语文或流程图描述均可一般都第一个都是随便点的, 然后就开始计算了, 这处1、1、1说明有一个炸弹,三个一可以确定角山是一个炸弹,那就点开剩下的, 就变成这样了,有数字2就说明那里有两个炸弹,确定两个...
谁知道扫雷的算法啊连用什么语言 都不说怎么回答啊。 只能简单的说说了: 你做个类继承按钮类,类里面有个int ai 当ai=9的时候表示他本身就是雷,0-8表示他周围的雷数。 比如你想有10个雷,那就定义一...