拼图游戏01

拼图游戏项目

这是我学到的关于java拼图小游戏的项目。
b站黑马
在这里插入图片描述

需求

在规划这个项目时,
个人认为,需要登录,注册,游戏。
登录需求
必须验证用户名是否存在于系统中、密码是否匹配及验证码的正确性。

注册需求
检查用户名的长度并避免使用敏感词汇

游戏需求
图片块的移动(上下左右)、完成拼图时的锁定机制、重新开始游戏的选项、步数追踪、查看原图以及一键通关的功能。

计划先完成核心的游戏部分,之后再着手编写登录与注册模块。

前言

在编写游戏部分时,我面临的挑战是如何开始。

首先,我需要梳理出编程的技术要点,比如界面构建、菜单的窗口添加等。

接着,将小图标置入窗口中并打乱顺序。

这一系列操作对新手来说相当复杂,容易引发挫败感。

然而,我必须承认,如果你对此不感兴趣,总会有人愿意接手。

让我们直奔主题,我最初的学习方法是直接复制别人的代码,然后在旁边添加注释,随后尝试自己能否独立编写。

通过反复练习,我逐渐掌握了整个流程。

当遗忘时,我会像现在这样记录下学习的每一个细节。

总体设计思路

  • 初始化游戏界面:

  • 创建主窗口(JFrame)。

  • 添加菜单栏(JMenuBar)。

  • 添加菜单项(JMenuItem)。

  • 绑定事件监听器。

游戏逻辑:

  • 实现键盘事件监听(KeyListener)。

  • 处理游戏状态(如胜利检测)。

  • 更新游戏界面(如重绘游戏板)。

  • 用户交互:

  • 通过菜单项触发游戏重置、退出等功能。

  • 显示关于信息。

具体实现思路

初始化界面:

使用JMenuBar创建菜单栏,并添加功能菜单(functionJMenu)和关于菜单(aboutJMenu)。
在功能菜单中添加不同的选项,如“重新游戏”、“重新登录”、“关闭游戏”等。
在关于菜单中添加“CSDN”等选项,用于显示关于信息。

游戏逻辑:
  • 使用二维数组data存储游戏板的状态。
  • 根据键盘事件更新游戏板的状态。
  • 检测游戏是否获胜。
用户交互:

当用户点击菜单项时,执行相应的动作,如重新开始游戏、退出游戏等。
当用户按下键盘上的键时,根据键值更新游戏状态。


创建主窗口(JFrame)
GameJFrame类的构造函数负责设置游戏窗口的基本属性,初始化用户界面组件,并准备游戏所需的数据和图像资源。
构造方法初始化游戏界面。
//设置窗口大小
//窗口标题
// 界面置顶,确保游戏窗口始终在其他窗口之上,
// 页面居中,使游戏窗口在屏幕中心位置显示
// 取消默认的居中放置,只有取消了才会按照XY轴的形式添加组件 ,不然的话图片居中

//设置关闭模式(0,1,2,3)

关闭操作:0 - 关闭时不执行任何操作
1 - 关闭时隐藏
2 - 关闭时处置
3 - 关闭时退出

// 为窗口添加键盘事件监听器,使得游戏能响应键盘输入

public void initJFrame(){
	setSize(602,680);
	setTitle("拼图");
	setAlwaysOnTop(true);
	setLocationRelativeTo(null);
	setLayout(null);
	setDefaultCloseOperation(3);
	addKeyListener(this);
}

将图片添加界面,并拥有打乱图片。

首先,通过随机交换元素来打乱一个初始有序数组tempArr,其元素值为0到15。
其次,将打乱后的数组按顺序填充到二维数组data中,并找出数值为0的元素位置,计算出其在二维数组中的行x和列y坐标。
// 初始化一个有序的数字数组
// 洗牌算法,随机打乱数字数组
// 生成一个随机索引,用于交换当前位置的数字
// 交换当前位置的数字和随机位置的数字
// 将打乱后的数字映射到二维数组中
// 如果当前数字是0,记录其在二维数组中的坐标
// 将当前数字映射到二维数组相应的位置

private void initData(){
	int [] tempArr ={};
	Random r =new Random();
	int  [][]data = new int [4][4]; 
	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 ;
	}
	for(int i =0 ; i<tempArr.length ; i++){
	if(tempArr[i] == 0){
		x=i/4;
		y=i%4;
}data[i/4][i%4] = tempArr[i];
	}
}

ps的剪辑图片

首先,启动Photoshop程序并打开您想要编辑的图片。

接着,将图片直接拖拽到Photoshop的界面中。

在屏幕左侧的工具栏里,找到并选择“切片工具”。

在这里插入图片描述

之后,对准图片右击并从弹出的选项中选择“划分切片”。

在这里插入图片描述
最后,在菜单栏中找到并点击“文件”,然后选择“储存为Web所用格式”以保存您的编辑成果。
在这里插入图片描述
放置好图片的文件中。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

布说在见

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

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

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

打赏作者

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

抵扣说明:

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

余额充值