从现在开始,我将用三个博客的篇幅来分享连连看游戏的开发与制作。今天分享第一个版本的连连看游戏,希望大家可以喜欢。目前系统功能已经很全面,整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序。运行程序可以对准Main.Java文件,点右键 run as application,也可以打包成jar包,双击JAR包即可以。

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档

游戏规则

1 只要将相同的两张牌用三根以内的直线连在一起消除即可。

2 实时记录可以消除的方块的数量

3 当玩家在玩游戏的过程中,发现有可以消除的图标的时候,可以用不超过3根直线连接起来。连接起来后,马上消除相应的图标

4 玩家再玩游戏的过程中,可以随时退出当前游戏,或者重新来一盘游戏

运行效果

1 游戏截图1




java游戏怎么玩 java游戏在哪玩_java游戏怎么玩


2 游戏截图2


java游戏怎么玩 java游戏在哪玩_连连看游戏_02


3 游戏截图3


java游戏怎么玩 java游戏在哪玩_java游戏怎么玩_03


4 游戏截图4


java游戏怎么玩 java游戏在哪玩_游戏_04


5 游戏截图5


java游戏怎么玩 java游戏在哪玩_游戏_05


6 游戏截图6


java游戏怎么玩 java游戏在哪玩_连连看_06


关键代码

package 连连看;

import java.util.ArrayList;

public class Map {
    
    private int[][] map;
    private int count;
    private int n;
    
    
    public Map(int count,int n){//一共有count种不同的图案,n行n列        
        map = MapFactory.getMap(n);//获取n行n列的数组
        this.count = count;
        this.n = n;
    }
    
    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getN() {
        return n;
    }

    public void setN(int n) {
        this.n = n;
    }

    public int[][] getMap(){
        
        ArrayList<Integer> list = new ArrayList<Integer>();//先将等量图片ID添加到list中
        
        for(int i=0;i<n*n/10;i++){            
            for(int j=0;j<count;j++){
            list.add(j);
            }            
        }        
        
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            int    index = (int) (Math.random()*list.size());//从list中随机取一个图片ID,并将其添加到数组中,再从list中删除掉它
            map[i][j] = list.get(index);
            list.remove(index);    
        }
    }

    return map;//返回一个图片随机生成的地图数组

    }

    
    public int[][] getResetMap(){//获取再次打乱后的地图信息
        
        ArrayList<Integer> list = new ArrayList<Integer>();//list用来存储原先的地图信息
        
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(map[i][j]!=-1)//如果(x,y)处的图片ID不为-1,那么将该图片id添加到list
                    list.add(map[i][j]);        
                map[i][j]=-1;
            }
        }
        
        //将原先地图上剩余的未消去的图片打乱
        while(!list.isEmpty()){
            
            int    index = (int) (Math.random()*list.size());//从list中随机取一个图片ID,并将其添加到数组中,再从list中删除掉它
            boolean flag = false;
            
            while(!flag){
                int i = (int) (Math.random()*n);//获取随机的地图行列
                int j = (int) (Math.random()*n);
                if(map[i][j]==-1){//如果该位置无图片
                    map[i][j] = list.get(index);
                    list.remove(index);
                    flag = true;
                }    
            }
            
        }
        
        return map;
        
    }
    
    
}

项目总结

开发一套系统,最重要的是细心,并不是一定要做到面面俱到,在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。