Java拼图小游戏—大一新生也能看懂的小游戏代码[含完整代码]

成为编程高手的第一步

一、先要把整体大纲列出来

效果图:

Java拼图小游戏—大一新生也能看懂的小游戏代码[含完整代码]_第1张图片

 游戏,肯定是要有一个游戏界面,这是主要的,其次就是用户登录界面用户注册界面。明白这些后就知道接下来我们应该要做些什么了,那就废话少说,直接打开我们心爱的idea,上才艺!!!


二、先搞定游戏界面(这是最重要的一部分)

完整代码请看我的gitee 的仓库——看完整代码就点开这里

        由于篇幅有限,这里我只展示拼图游戏界面最重要的几段逻辑代码。上代码!!

  1. 如何把图片放进去。

(这里我事先将图片处理成16张小图片,并将他以1、2...、14、15的格式来命名) 

这段代码的逻辑就是先创建一个二维数组,然后通过遍历来将图片放进二维数组中(这里用遍历的原因是减少代码量,你也可以将图片挨个放到数组中。我相信聪明的你哪种效率更高)

for(int i=0;i<4;i++){
            for(int j=0;j<4;j++){
                //获取当前要加载图片的序号
                int num=data[i][j];
                //创建JLabel的对象(管理容器)
                //相对路径
                ImageIcon image=new ImageIcon(path+num+".jpg");
                JLabel jLabel=new JLabel(image);
                //指定图片位置
                jLabel.setBounds(105*j+42,105*i+170,105,105);
                //给图片添加边框
                //LOWERED:让图片凹起
                //RAISED:让图片凸下去
                jLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
                //把管理容器添加到界面
                this.getContentPane().add(jLabel);
            }
        }

     2. 打乱小图片

        我代码的注释很详细吧。↓

//定义一个一维数组
        int[] tempArr={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0};
        //打乱数组中的数据顺序
        //遍历数组,得到每一个元素,拿着每一个元素跟随机索引上面的数据进行交换
        Random r=new Random();
        for(int i=0;i

这就是游戏界面的主要代码 

三、用户登录界面

用户登录无非就是你输入账号密码,然后提交给数据库(这里我是用集合存储用户信息)去做对比,再去做判断。

这里主要的细节就是我用了stream流去遍历账号和密码,符合条件的就存储到matchUserList集合中,再交给下面去判断。这样的目的也是为了代码简洁和美观。

//获取输入的用户名和密码
        String inputname=inputUsername.getText();
        String inputword=inputPassword.getText();
        List matchUserList = list.stream().filter(s -> s.getUsername().equals(inputname) && s.getPassword().equals(inputword)).toList();
        if (matchUserList.size() > 0) {
            checkcode();
        } else {
               //创建弹窗报错提醒
               JDialog jDialog=new JDialog();
               jDialog.setTitle("输入异常");
               //取消默认居中(让窗体里面的所有组件都相对于一个坐标放置)
               jDialog.setLayout(null);

               JLabel wrong=new JLabel("用户名或密码输入错误,请重新登录");
               wrong.setForeground(Color.red);
               Font font=new Font("微软雅黑",0,13);
               wrong.setFont(font);
               wrong.setBounds(22,3,222,22);
              jDialog.getContentPane().add(wrong);

               jDialog.setSize(282,66);
               //让弹框置顶
               jDialog.setAlwaysOnTop(true);
               //让弹框居中
               jDialog.setLocationRelativeTo(null);
               //弹框不关闭则无法进行下面的界面
               jDialog.setModal(true);
               //让弹框显示出来
               jDialog.setVisible(true);
           }

  简单吧!

四、注册页面 

这里也是简单的遍历和判断。

String newName=inputName.getText();
        String password1=inputPassword.getText();
        String password2=againPassword.getText();
        User user=new User(newName,password1);
        //先查找用户名相同的用户,找到就提示并退出
        //List  matchUser = list0.stream().filter(s->s.getUsername().equals(newName)).collect(Collectors.toList());
        for (int i = 0; i < list0.size(); i++) {
            if (list0.get(i).getUsername().equals(newName)) {
                createDialogMessage("该用户名已被使用,请换一个吧");
                return;
            }
        }
        if(newName.equals("")){
            createDialogMessage("请输入用户名");
        }else if(password1.equals("")){
            createDialogMessage("请输入密码");
        }else if(!password2.equals(password1)){
            createDialogMessage("两次密码输入不一致,请重新输入");
        }else{
            list0.add(user);
            this.setVisible(false);
            LoginJFrame.getInstance().setVisible(true);
        }

五、看到这里,你会觉得很简单吧!其实这拼图小游戏真正的难点不在于他的逻辑,而在于Java swing窗体的各种设置,创建,隐藏,显示和注销等等。具体代码可以点开下面的链接查看

                                     完整代码        

有不懂的地方可以在评论区提问,或私聊我。

你可能感兴趣的:(小游戏,java,开发语言,java,青少年编程)