关灯小游戏:
简单说明:
简单代码实现:
import javax.swing.*;
import java.util.*;
public class Light {
public static void main(String[] args) {
//初始化棋盘
int[][] games = new int[10][10];
Random random = new Random();
//随机打开某些灯
for(int i = 0;i<20;i++) {
games[random.nextInt(10)][random.nextInt(10)] = 1;
}
showgames(games);
Scanner scanner = new Scanner(System.in);
//如果没有成功,继续刚才的动作
while(!isWin(games)) {
//提醒用户输入
System.out.println("清输入你要点击的行");
int row = scanner.nextInt();
System.out.println("请输入你要点击的列");
int col = scanner.nextInt();
//改变上方快的颜色;
if(row > 0) {
games[row-1][col] = 1-games[row-1][col];
}
//改变下方快的颜色
if(row<games.length-1) {
games[row+1][col] = 1-games[row+1][col];
}
//改变左边方块颜色
if(col>0) {
games[row][col-1] = 1-games[row][col-1];
}
//改变右边方块颜色
if(col<games[row].length-1){
games[row][col+1] = 1-games[row][col+1];
}
showgames(games);
}
System.out.println("恭喜你赢了!");
}
//遍历输出棋盘内容
public static void showgames(int[][] games) {
for(int i = 0;i<games.length;i++) {
for(int j = 0;j< games[i].length;j++) {
System.out.print(games[i][j]+" ");
}
System.out.println();
}
}
//判断是否成功
public static boolean isWin(int[][] games) {
int sum = 0;
for(int i = 0;i<games.length;i++) {
for(int j = 0; j<games.length;j++) {
sum = sum + games[i][j];
}
}
return sum ==0;
}
}
注:由于暂时了解的知识面比较少,全部采用数组的形式,只能在控制面板上实现。其中包含许多小错误,请谅解,后期会补全、完善。