帮我用java写一个消消乐小程序
时间: 2024-05-14 07:18:12 浏览: 208
使用Java开发的消消乐小游戏.zip
好的,我可以为您提供一个简单的消消乐小程序示例代码,但是需要说明的是,这只是一个基础版本,您可以根据自己的需求进行修改和扩展。
```java
import java.util.Random;
import java.util.Scanner;
public class Xiaoxiaole {
// 定义一个二维数组,表示棋盘
private static char[][] chessboard = new char[8][8];
// 定义一个随机数生成器
private static Random random = new Random();
public static void main(String[] args) {
// 初始化棋盘
initChessboard();
// 打印棋盘
printChessboard();
// 开始游戏
playGame();
}
// 初始化棋盘
private static void initChessboard() {
for (int i = 0; i < chessboard.length; i++) {
for (int j = 0; j < chessboard[i].length; j++) {
chessboard[i][j] = getRandomColor();
}
}
}
// 获取随机颜色
private static char getRandomColor() {
// 随机生成0-5的整数,分别代表6种颜色
int num = random.nextInt(6);
switch (num) {
case 0:
return '红';
case 1:
return '黄';
case 2:
return '蓝';
case 3:
return '绿';
case 4:
return '紫';
case 5:
return '橙';
}
return ' ';
}
// 打印棋盘
private static void printChessboard() {
for (int i = 0; i < chessboard.length; i++) {
for (int j = 0; j < chessboard[i].length; j++) {
System.out.print(chessboard[i][j] + " ");
}
System.out.println();
}
}
// 开始游戏
private static void playGame() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入要消除的颜色(红、黄、蓝、绿、紫、橙中的一个):");
char color = scanner.next().charAt(0);
if (color == '结束') {
break;
}
if (!isValidColor(color)) {
System.out.println("输入的颜色不合法,请重新输入!");
continue;
}
int count = removeSameColor(color);
if (count == 0) {
System.out.println("没有找到相同颜色的方块,请重新输入!");
continue;
}
System.out.println("成功消除了" + count + "个" + color + "方块!");
printChessboard();
}
scanner.close();
}
// 判断颜色是否合法
private static boolean isValidColor(char color) {
return color == '红' || color == '黄' || color == '蓝' || color == '绿' || color == '紫' || color == '橙';
}
// 消除相同颜色的方块
private static int removeSameColor(char color) {
int count = 0;
for (int i = 0; i < chessboard.length; i++) {
for (int j = 0; j < chessboard[i].length; j++) {
if (chessboard[i][j] == color) {
count++;
chessboard[i][j] = ' ';
}
}
}
gravity();
return count;
}
// 重力作用
private static void gravity() {
for (int i = chessboard.length - 1; i >= 0; i--) {
for (int j = 0; j < chessboard[i].length; j++) {
if (chessboard[i][j] == ' ') {
for (int k = i - 1; k >= 0; k--) {
if (chessboard[k][j] != ' ') {
chessboard[i][j] = chessboard[k][j];
chessboard[k][j] = ' ';
break;
}
}
}
}
}
}
}
```
这个小程序的基本思路是:先随机生成一个 8x8 的棋盘,每个格子填充随机颜色。然后,让玩家输入要消除的颜色,程序会遍历整个棋盘,将所有相同颜色的方块标记为空,并且将其他方块下落,填补空缺。重复进行直到棋盘中不存在相同颜色的方块为止。
阅读全文