Java拼图小游戏总结

程序启动入口

import com.itDong.ui.GrameJFrame;
import com.itDong.ui.LoginJFrame;
import com.itDong.ui.RegisterJFrame;

public class APP {
    public  static void main(String[] agrs) {
        //程序启动入口

        //如果开启一个界面,就创建谁的对象就行



       //new LoginJFrame();

        new GrameJFrame();
      //new RegisterJFrame();


    }
}

 

GrameJFrame
package com.itDong.ui;

import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;

public class GrameJFrame extends JFrame implements KeyListener, ActionListener {
    //规定:为游戏的主界面
    //跟游戏相关的逻辑都在这个类中

    //创建一个二维数组
    //目的:用来管理数据
    //加载图片的时候,会根据二维数组中的数据进行加载
    int [][] data=new int[4][4];

    //记录空白方块在二维数组中的位置
    int x=0;
    int y=0;
    //定义一个变量,记录当前展示图片的路径
    String path="E:\\IdeaProjects\\JavaLearn10-18\\image\\animal\\animal5\\";

    //定义一个二维数组,存储正确的数据
    int[][] win = {
            {1, 2, 3, 4},
            {5, 6, 7, 8},
            {9, 10, 11, 12},
            {13, 14, 15, 0}
    };
    //定义变量来统计步数
    int step=0;

    //创建选项下面的条目对象
    JMenuItem replayItem=new JMenuItem("重新游戏");
    JMenuItem reLoginItem=new JMenuItem("重新登陆");
    JMenuItem closeItem=new JMenuItem("关闭游戏");

    JMenuItem accountItem=new JMenuItem("公众号");
    public GrameJFrame(){
        //初始化界面
        initJFrame();

        //初始化菜单
        initJMenuBar();

        //初始化数据(打乱)
        initData();

        //初始化图片(根据打乱后的结果去加载图片)
        initImage();

        //运行后界面没有出现,因为默认隐藏
        //显示界面--写在最后
        this.setVisible(true);
    }

    //初始化数据(打乱)
    private void initData() {

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

        /*
        *
        *           11 8 7 5             5 6 8 9
        *           12 0 3 4             10 11 14 1
        *           14 1 6 9             4 7 12 13
        *           15 2 10 13            2 3(0没有换过来,而是直接跳过,10依然在)
        *
        *  【解决方法:删除4-给二维数组添加数据中的  else即可】
        *           5 6 8 9  10 11 14 1  4 7 12 13  2 3 0 14
        *
        * */
        //4-给二维数组添加数据
        //遍历tem
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

captain_dong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值