首页 > 其他分享 >拼图小游戏

拼图小游戏

时间:2024-10-08 20:51:04浏览次数:10  
标签:code 数字 拼图 ++ 小游戏 作弊码 data 方块

文章目录


前言

“千官望长安,万国拜含元”   — 崔立之《南至隔仗望含元殿香炉》

在这里插入图片描述

1 项目介绍

项目包括三个部分

  • 注册界面
  • 登录界面
  • 游戏界面

1.1 注册页面

1. 注册规则

  • 用户名,密码不能为空
  • 判断两次密码输入是否一致
  • 判断用户名和密码的格式是否正确
  • 判断用户名是否存在

2. 用户名和密码规则

  • 用户名:4-16位,只能大写字母,小写字母,数字
  • 密码:至少包含1个小写字母,1个数字,长度至少6位

在这里插入图片描述

1.2 登录界面

1. 登录规则

  • 判断用户名是否为空
  • 判断密码是否为空
  • 判断验证码是否为空

2. 默认登录用户名和密码

  • 用户名:admin
  • 密码:123456

在这里插入图片描述

1.3 游戏主界面

1.3.1 功能模块

功能模块主要包括:更换图片,重新游戏,重新登陆,关闭游戏,存档,读档,关于我们

  • 更换图片:图片有美女,动物,运动三种
  • 重新游戏:点击之后回到游戏初始状态
  • 重新登陆:点击后回退到登陆界面
  • 关闭游戏:点击之后关闭游戏并停止代码运行
  • 存档和读档:执行读档和存档操作
  • 关于我们:显示博主微信二维码,愿同诸君一道,共同学习,共同进步

1.3.2 查看最终效果和作弊码

  • 查看最终效果:快捷键A
  • 作弊码:快捷键W

在这里插入图片描述

在这里插入图片描述

2.项目实现

       由于拼图小游戏涉及知识比较多,本文仅提供验证码、作弊码功能。

2.1 验证码

1. 验证码规则

  • 长度为5
  • 由4位大写或者小写字母和1位数字组成,同一个字母可重复
  • 数字可以出现在任意位置
  • 比如:aQa1K

2. 代码演示

package com.itheima.util;

import java.util.ArrayList;
import java.util.Random;

/**
 * 生成验证码
 */
public class CodeUtil {
    public static String getCode() {
        // 1.创建一个集合
        ArrayList<Character> list = new ArrayList<>();
        // 2.添加字母 a - z  A - Z
        for (int i = 0; i < 26; i++) {
            list.add((char) ('a' + i));
            list.add((char) ('A' + i));
        }
        // 3.生成4个随机字母
        String result = "";
        Random r = new Random();
        for (int i = 0; i < 4; i++) {
            int randomIndex = r.nextInt(list.size());
            char c = list.get(randomIndex);
            result = result + c;
        }

        // 4.在后面拼接数字 0~9
        int number = r.nextInt(10);
        result = result + number;

        // 5.把字符串变成字符数组
        char[] chars = result.toCharArray();//[A,B,C,D,5]
        // 6.在字符数组中生成一个随机索引
        int index = r.nextInt(chars.length);
        // 7.拿着4索引上的数字,跟随机索引上的数字进行交换
        char temp = chars[4];
        chars[4] = chars[index];
        chars[index] = temp;
        // 8.把字符数组再变回字符串
        String code = new String(chars);
        return code;
    }
}

2.2 作弊码

1. 作弊码的作用

       按下作弊码后松开,即可一键通关

2. 实现步骤

  • 给整个界面添加键盘事件
  • 在GameJFrame类中的keyReleased()方法中书写松开的逻辑,当按下W的时候一键通关。

3. 代码演示

@Override
public void keyReleased(KeyEvent e) {
    // 1.判断游戏是否胜利,如果胜利,此方法需要直接结束,不能再执行下面的移动代码了
    if (victory()) {
        return;
    }
    // 2.对上,下,左,右进行判断(左:37 上:38 右:39 下:40)
    int code = e.getKeyCode();
    System.out.println(code);
    if (code == 37) {
        System.out.println("向左移动");
        if (y == 3) {
            return;
        }
        // 把空白方块右方的数字往左移动
        data[x][y] = data[x][y + 1];
        data[x][y + 1] = 0;
        y++;
        // 每移动一次,计数器就自增一次。
        step++;
        // 调用方法按照最新的数字加载图片
        initImage();
    } else if (code == 38) {
        System.out.println("向上移动");
        if (x == 3) {
            // 表示空白方块已经在最下方了,他的下面没有图片再能移动了
            return;
        }
        //逻辑:把空白方块下方的数字往上移动
        // x,y  表示空白方块
        // x + 1, y 表示空白方块下方的数字
        // 把空白方块下方的数字赋值给空白方块
        data[x][y] = data[x + 1][y];
        data[x + 1][y] = 0;
        x++;
        // 每移动一次,计数器就自增一次。
        step++;
        //调用方法按照最新的数字加载图片
        initImage();
    } else if (code == 39) {
        System.out.println("向右移动");
        if (y == 0) {
            return;
        }
        //逻辑:把空白方块左方的数字往右移动
        data[x][y] = data[x][y - 1];
        data[x][y - 1] = 0;
        y--;
        // 每移动一次,计数器就自增一次。
        step++;
        // 调用方法按照最新的数字加载图片
        initImage();
    } else if (code == 40) {
        System.out.println("向下移动");
        if (x == 0) {
            return;
        }
        // 逻辑:把空白方块上方的数字往下移动
        data[x][y] = data[x - 1][y];
        data[x - 1][y] = 0;
        x--;
        // 每移动一次,计数器就自增一次。
        step++;
        // 调用方法按照最新的数字加载图片
        initImage();
    } else if (code == 65) {
        initImage();
    } else if (code == 87) {
        data = new int[][]{
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 0}
        };
        initImage();
    }
}

3 项目代码

       由于代码量比较大,所以放于gitee代码仓库,代码地址如下:
       https://gitee.com/poetize/puzzlegame

标签:code,数字,拼图,++,小游戏,作弊码,data,方块
From: https://blog.csdn.net/m0_70587611/article/details/142769039

相关文章

  • 随机组句小游戏-V1.13版本
    玩法:随机抽取地点人物事件,来组句2024/10/03进行微调.\(代码/Code:\)#include<bits/stdc++.h>#include<windows.h>#defineSM_printf("%c%c%c%c%c%c",-64,-18,-278,-59,-319,-40);usingnamespacestd;ints1,s2,s3,xz1,bool01;stringcopy_;stringplace[105]......
  • 小游戏-扫雷简易版
    雷的个数和棋盘大小可以随意改变一、test.c(主程序)#include"game.h"voidmenu(){ printf("****************************\n"); printf("*****开始游戏-1*****\n"); printf("*****结束游戏-0*****\n"); printf("**************......
  • C语言1—100的数字炸弹小游戏
    #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<stdlib.h>#include<time.h>void menu(){printf("1=开始游戏\n");printf("0=不进行游戏\n");printf("请选择:");}void game(){int num=rand()%100+1; int inp......
  • 小游戏-三子棋
    目录一、头文件(game.h)二、主程序(test.c)三、调用函数程序(game.c)一、头文件(game.h)#defineRow3#defineCol3#include<stdio.h>#include<stdlib.h>#include<time.h>//头文件中声明函数//棋盘初始化voidchessboard_initialize(charboard[Row][Col],......
  • python贪吃蛇小游戏
    1.简介使用了turtle库来创建图形界面,你可以使用键盘的W、A、S、D键来控制蛇的移动方向。蛇吃到食物后,身体会增长,如果蛇撞到自己或者游戏边界,游戏就会结束。2.代码importturtleimporttimeimportrandomdelay=0.1#生成食物的位置food=turtle.Turtle()food......
  • 495. 响应式潮流小游戏网页 大学生期末大作业 Web前端网页制作 html+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • 产品技能拼图 - AxureMost
    产品技能拼图-AxureMost产品技能拼图-AxureMost知识库简介-AxureMost技能拼图产品规划产品规划是产品最初也是最重要的阶段此阶段需要完成对产品定位的明确,因为产品定位确定了产品的边界,产品目标用户,产品功能范围,即产品会做什么,不做什么。而产品路标规划,营销策......
  • 自制小游戏,猜字母。
     近日闲来无事,做了一个猜字母的小游戏。原型是switch平台的《51GAME》,如有问题,希望可以指出谢谢。#include<iostream>#include<conio.h>#include<ctime>#include<string>usingnamespacestd;voids1();voids2();voids3();voids4();voidstartw();voidendd();......
  • turtle实现贪吃蛇小游戏
    今天分享一篇利用python的turtle库实现贪吃蛇小游戏,适合初学者的朋友学习技术点:函数应用time库应用random库应用turtle库应用无身体碰撞的版本,完整代码先附上importturtleimportrandomimporttimedelay=0.1#延迟时间score=0#当前分数high_score......
  • 在ARM开发板上实现2048小游戏
     event.h屏幕点击事件.h文件:获取屏幕的xy坐标,获取手指滑动的方向,获取点击事件。#ifndef__EVENT_H_#define__EVENT_H_#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<dirent.h>#inclu......