请用java实现一个消灭星星的代码
时间: 2024-02-01 21:13:52 浏览: 86
自己开发的消灭星星android-java源代码
4星 · 用户满意度95%
以下是一个简单的 Java 实现:
```java
import java.util.*;
public class DestroyTheStars {
public static void main(String[] args) {
// 创建一个 10x10 的星星矩阵
boolean[][] stars = new boolean[10][10];
// 初始化星星矩阵,随机生成一些星星
Random rand = new Random();
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
stars[i][j] = rand.nextBoolean();
}
}
// 输出初始的星星矩阵
System.out.println("初始的星星矩阵:");
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(stars[i][j] ? "*" : ".");
}
System.out.println();
}
// 输入要消灭的星星坐标
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要消灭的星星坐标(格式:行 列):");
int row = scanner.nextInt();
int col = scanner.nextInt();
// 检查输入坐标是否合法
if (row < 0 || row >= 10 || col < 0 || col >= 10) {
System.out.println("输入坐标有误!");
return;
}
// 消灭星星
destroy(stars, row, col);
// 输出消灭后的星星矩阵
System.out.println("消灭后的星星矩阵:");
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(stars[i][j] ? "*" : ".");
}
System.out.println();
}
}
// 消灭星星的方法
private static void destroy(boolean[][] stars, int row, int col) {
if (!stars[row][col]) {
return;
}
stars[row][col] = false;
if (row > 0) {
destroy(stars, row - 1, col);
}
if (row < 9) {
destroy(stars, row + 1, col);
}
if (col > 0) {
destroy(stars, row, col - 1);
}
if (col < 9) {
destroy(stars, row, col + 1);
}
}
}
```
运行程序,输入要消灭的星星坐标(行和列,从 0 开始),程序会输出消灭后的星星矩阵。程序使用递归算法实现星星消灭,从输入的坐标开始,将该位置的星星消灭,并递归消灭其周围的星星,直到所有相连的星星都被消灭。
阅读全文