2025-01-10 污渍棋

This commit is contained in:
liangjinglin 2025-01-10 14:14:45 +08:00
parent 5257d175b4
commit 6be199baf1

View File

@ -0,0 +1,79 @@
import java.util.Scanner;
public class UziChess {
private int[][] chessArray;
private int totalRow;
private int totalCol;
private UziChess(int i, int y){
this.totalRow = i;
this.totalCol = y;
chessArray = new int[totalRow][totalCol];
}
private void chessToSparse(int[][] chessArray, int row, int col, int val){
chessArray[row][col] = val;
System.out.println("棋盘:");
for(int i = 0; i < totalRow; i++) {
for(int j = 0; j < totalCol; j++) {
System.out.print(chessArray[i][j] + ";");
}
System.out.println();
}
int sum = 0;
// 统计有效值个数
for(int i = 0; i < totalRow; i++) {
for(int j = 0; j < totalCol; j++) {
if(chessArray[i][j] != 0) {
sum ++;
}
}
}
// 初始化稀疏数组
int sparaseArr[][] = new int[sum+1][3];
sparaseArr[0][0] = this.totalRow;
sparaseArr[0][1] = this.totalCol;
sparaseArr[0][2] = sum;
// 存放值进入稀疏数组
int count = 1;
for(int i = 0; i < totalRow; i++) {
for(int j = 0; j < totalCol; j++) {
if(chessArray[i][j] != 0) {
sparaseArr[count][0] = i;
sparaseArr[count][1] = j;
sparaseArr[count][2] = chessArray[i][j];
count ++;
}
}
}
System.out.println("稀疏数组:");
for(int i = 0; i<sum+1; i++){
for(int j = 0; j<3; j++){
System.out.print(sparaseArr[i][j] + ";");
}
System.out.println();
}
}
public static void main(String[] args) {
UziChess uziChess = new UziChess(10,10);
Scanner scan = new Scanner(System.in);
while(true) {
System.out.println("y继续, n退出:");
String exit = scan.next();
if ("n".equals(exit)){
break;
}
System.out.println("请输入行:");
int row = scan.nextInt();
System.out.println("请输入列:");
int col = scan.nextInt();
System.out.println("请输入黑子或白子:");
int val = scan.nextInt();
uziChess.chessToSparse(uziChess.chessArray, row, col, val);
}
scan.close();
}
}