尚未完善,代码部分还未发布
前言
连连看小游戏自己之前在学校Android结课设计中已经做过了
但是代码找不到了,正好最近也学习了很多新知识,想着重新做一下
同时我的好兄弟们正好没有事情做,就把连连看刷map
的想法当做一个题告诉了他们 (稍微折磨一下)
Android结课设计中,我制作了 连连看、井字棋、猜数字、黑白棋四个小游戏,之后也会慢慢重写
思路
之前做的程序预览图
具体思路
简单来说就是,一共有
5x2
个东西,5种东西,每一个东西存在2个(必须)
然后随机安排位置,到最后还要进行点击,然后进行是否匹配或其他等操作
由于JAVA目前学的知识只用到了控制台,所以比较局限,实现简单内容即可
点击事件暂时由输入功能来顶替 (输入具体的第几行第几列来当做点击)首先要随机刷一个
map
,也就是连连看的棋盘
然后输入坐标后,将会选中当前坐标的东西,再继续去选择第二个东西
若互相匹配,则消除;否则,将刚才选中的东西取消选中状态
当所有item
被消除后,游戏结束,提示是否继续游戏
代码
刷一个MAP (游戏棋盘)
public class MapGenerator {
private MapGenerator() { }
public static class SingletonHolder{
private static final MapGenerator INSTANCE = new MapGenerator();
}
public static MapGenerator getInstance() {
return SingletonHolder.INSTANCE;
}
public int[] getMap() {
Random random = new Random();
int[] nums = new int[]{1,1,2,2,3,3,4,4,5,5};
int[] map = new int[10];
for (int i = 0; i < map.length; i++) {
int randomNumber = random.nextInt(nums.length);
map[i] = nums[randomNumber];
nums[randomNumber] = nums[nums.length-1];
nums = decreaseArray(nums);
}
for (int i = 0; i < map.length; i++) {
if (i == map.length/2) {
System.out.println();
}
System.out.print(map[i]+" ");
}
return map;
}
public int[] decreaseArray(int[] nums) {
return Arrays.copyOf(nums,nums.length-1);
}
}
咕咕咕~
总结
刷棋盘可以创建一个一维数组,然后取随机的index
角标,然后前移后面的数据除了运用数组,也可以用链表实现,这样前移数据更简单一些,只是查找某个具体的位置还是要从0开始
上面的方式已作废,取消掉原有的数据前移的想法,直接将nums[nums.length-1]
的值赋给nums[index]
然后也不用创建新数组存值、最后再赋值,直接用Arrays.copyOf
代替,return
该值即可
在选中一个物品后,变成选中状态,麻烦的点不在于匹配成功,而是匹配失败
匹配失败要把选中状态取消掉,然后把值也回溯,需要记录一个backup
值
我们应当相信我们每个人都能做成一点事情
而当我们发现这点事情是什么的时候,我们就要坚持下去。 ——居里夫人
2 条评论
航宝和我连在一起捏 只有我才能和航宝配对捏
人间真爱