Java 编写的连连看游戏 窗体程序 直接运行

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

开发环境

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

系统框架

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

游戏规则

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

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

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

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

运行效果

1 游戏截图1

2 游戏截图2

3 游戏截图3

4 游戏截图4

5 游戏截图5

6 游戏截图6

关键代码

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;
        
    }
    
    
}

项目总结

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值