以数织图游戏java代码
时间: 2023-07-09 21:15:58 浏览: 181
数织图游戏的 Java 代码如下:
```
import java.util.Scanner;
public class Nonogram {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 数织图的行列数
System.out.print("请输入数织图的行数:");
int row = input.nextInt();
System.out.print("请输入数织图的列数:");
int col = input.nextInt();
// 定义数织图的行列数组
int[][] rowArr = new int[row][];
int[][] colArr = new int[col][];
for (int i = 0; i < row; i++) {
System.out.print("请输入第" + (i + 1) + "行的数字序列,用空格隔开:");
String[] rowStr = input.next().split(" ");
rowArr[i] = new int[rowStr.length];
for (int j = 0; j < rowStr.length; j++) {
rowArr[i][j] = Integer.parseInt(rowStr[j]);
}
}
for (int i = 0; i < col; i++) {
System.out.print("请输入第" + (i + 1) + "列的数字序列,用空格隔开:");
String[] colStr = input.next().split(" ");
colArr[i] = new int[colStr.length];
for (int j = 0; j < colStr.length; j++) {
colArr[i][j] = Integer.parseInt(colStr[j]);
}
}
// 初始化数织图的二维数组
int[][] nonogram = new int[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
nonogram[i][j] = -1;
}
}
// 打印数织图
printNonogram(nonogram, rowArr, colArr);
// 根据玩家的输入更新数织图
while (true) {
System.out.print("请输入要填充的行列号和数字(格式为x y z,用空格隔开),输入0结束游戏:");
int x = input.nextInt() - 1;
if (x == -1) {
break;
}
int y = input.nextInt() - 1;
int z = input.nextInt();
nonogram[x][y] = z;
printNonogram(nonogram, rowArr, colArr);
}
input.close();
}
/**
* 根据数织图的二维数组和行列数组打印出数织图
*/
public static void printNonogram(int[][] nonogram, int[][] rowArr, int[][] colArr) {
for (int i = 0; i < rowArr.length; i++) {
for (int j = 0; j < rowArr[i].length; j++) {
System.out.print(rowArr[i][j] + " ");
}
System.out.print(" | ");
for (int j = 0; j < nonogram[i].length; j++) {
System.out.print((nonogram[i][j] == -1) ? " " : (nonogram[i][j] + " "));
}
System.out.println();
}
for (int i = 0; i < colArr.length; i++) {
for (int j = 0; j < colArr[i].length; j++) {
System.out.print(colArr[i][j] + " ");
}
System.out.print(" ");
}
System.out.println("\n");
}
}
```
在这个代码中,我们使用了 Scanner 类来获取用户的输入。用户首先需要输入数织图的行列数,然后输入每一行和每一列的数字序列。程序会根据这些数字序列来初始化数织图的二维数组。
程序会不断地询问用户要填充的行列号和数字,直到用户输入 0。每次用户输入后,程序会更新数织图的二维数组,并打印出数织图。在打印数织图时,我们还会打印出每一行和每一列的数字序列,方便用户填充数织图。
这个程序只是数织图游戏的基本框架,你可以根据自己的需要对其进行修改和扩展。
阅读全文