我正在處理的任務要求我創建一個Sudoku遊戲,而不使用任何類,方法,封裝等。我對Java很陌生,對我來說是新手。我無法驗證我的用戶輸入到「fourArray」或「nineArray」中的值是否包含重複值。到目前爲止,我一直試圖使用嵌套的for-loop來遍歷任一數組的行和列。例如,我一直在努力,包括下面的一段在我的程序結束代碼,以確定是否有任何重複的值:在二維數組中尋找重複值
for (int i = 0; i < fourArray.length; i++) {
for (int j = i + 1; j < fourArray.length; j++)
if (fourArray[i] == fourArray[j]) {
System.out.println("No Sudoku");
} else {
System.out.println("Sudoku!);
}
}
但是這是行不通的。我想遍歷數組以找到任何重複的任何值,如果沒有,則打印出「Sudoku!」。如果有任何重複的值,那麼我想打印出「Sudoku!」我是否需要對數組進行排序?還是有一些我不知道的方法?我已經包含了我的程序。感謝您的時間。
import java.util.Scanner;
public class Sudoku {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int boardSize = -1;
int[][] fourArray = { {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} };
int[][] nineArray = { {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0} };
while (true)
{
Scanner boardsizeOption = new Scanner(System.in);
System.out.println("Please select a board size:" + "\n" + "1) 4x4" + "\n" + "2) 9x9");
boardSize = boardsizeOption.nextInt();
if (boardSize == 1 || boardSize == 2) {
break;
}
}
if (boardSize == 1) { //still need to build complete board
int i, j = 0;
for (i = 0; i < fourArray.length; i++)
{
for (j = 0; j < fourArray.length; j++)
System.out.print(fourArray[i][j] + " ");
System.out.println();
}
} else if (boardSize == 2) {
int i, j = 0;
for (i = 0; i < nineArray.length; i++)
{
for (j = 0; j < nineArray.length; j++)
System.out.print(nineArray[i][j] + " ");
System.out.println();
}
}
int dataSelection = -1;
while (true)
{
Scanner rowColumn = new Scanner(System.in);
System.out.println("Please select which way you would like to enter the values:" + "\n" + "1) row" + "\n" + "2) columnn");
dataSelection = rowColumn.nextInt();
if (dataSelection == 1 || dataSelection == 2) {
break;
}
}
//Entering by ROWS
//This is for a 4x4 board size using rows
if (dataSelection == 1) {
if (boardSize == 1) {
int row = 1;
while (row < 5) {
String row1Values4x4 = "-1";
while (true) {
Scanner firstRow4x4 = new Scanner(System.in);
System.out.println("Please enter four values using commas for row " + row); //this needs to loop
row1Values4x4 = firstRow4x4.next();
row1Values4x4 = row1Values4x4.replaceAll(" ",""); //this is in case user enters numbers with spaces
if (row1Values4x4.length() == 7) {
break;
}
}
String strArray[] = row1Values4x4.split(",");
int arraySidesInteger[] = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
arraySidesInteger[i] = Integer.parseInt(strArray[i]);
}
fourArray[row-1] = arraySidesInteger;
for (int i = 0; i < fourArray.length; i++) {
for (int j = 0; j < fourArray.length; j++)
System.out.print(fourArray[i][j] + " ");
System.out.println();
}
row++;
}
//This is for a 9x9 board size using rows
} else {
int row = 1;
while (row < 10) {
String row1Values9x9 = "-1";
while (true) {
Scanner firstRow9x9 = new Scanner(System.in);
System.out.println("Please enter nine values using commas for row " + row); //this needs to loop
row1Values9x9 = firstRow9x9.next();
row1Values9x9 = row1Values9x9.replaceAll(" ",""); //this is in case user enters numbers with spaces
if (row1Values9x9.length() == 17) {
break;
}
}
String strArray[] = row1Values9x9.split(",");
int arraySidesInteger[] = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
arraySidesInteger[i] = Integer.parseInt(strArray[i]);
}
nineArray[row-1] = arraySidesInteger;
for (int i = 0; i < nineArray.length; i++) {
for (int j = 0; j < nineArray.length; j++)
System.out.print(nineArray[i][j] + " ");
System.out.println();
}
row++;
}
}
//Entering by COLUMNS
//This is for 4x4 board size using columns
} else {
if (boardSize == 1) {
int column = 1;
while (column < 5) {
String column1Values4x4 = "-1";
while (true) {
Scanner firstColumn4x4 = new Scanner(System.in);
System.out.println("Please enter four values using commas for column " + column);
column1Values4x4 = firstColumn4x4.next();
column1Values4x4 = column1Values4x4.replaceAll(" ","");
if (column1Values4x4.length() == 7) {
break;
}
}
String strArray[] = column1Values4x4.split(",");
int arraySidesInteger[] = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
arraySidesInteger[i] = Integer.parseInt(strArray[i]);
}
for (int i = 0; i < arraySidesInteger.length; i++) {
fourArray[i][column-1] = arraySidesInteger[i];
}
for (int i = 0; i < fourArray.length; i++) {
for (int j = 0; j < fourArray.length; j++)
System.out.print(fourArray[i][j] + " ");
System.out.println();
}
column++;
}
//This is for a 9x9 board size using columns
} else {
int column = 1;
while (column < 10) {
String column1Values9x9 = "-1";
while (true) {
Scanner firstColumn9x9 = new Scanner(System.in);
System.out.println("Please enter nine values using commas for column " + column);
column1Values9x9 = firstColumn9x9.next();
column1Values9x9 = column1Values9x9.replaceAll(" ","");
//row1Values4x4 = row1Values4x4.replaceAll(",","");
if (column1Values9x9.length() == 17) {
break;
}
}
String strArray[] = column1Values9x9.split(",");
int arraySidesInteger[] = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
arraySidesInteger[i] = Integer.parseInt(strArray[i]);
}
for (int i = 0; i < arraySidesInteger.length; i++) {
nineArray[i][column-1] = arraySidesInteger[i];
}
for (int i = 0; i < nineArray.length; i++) {
for (int j = 0; j < nineArray.length; j++)
System.out.print(nineArray[i][j] + " ");
System.out.println();
}
column++;
}
}
for (int i = 0; i < fourArray.length; i++) {
for(int j = i + 1; j < fourArray.length; j++) {
if(fourArray[i] == fourArray[j]) {
System.out.println("No Sudoku");
} else {
System.out.println("Sudoku!");
}
}
}
}
}
「不工作」是什麼意思?它不運行嗎?給出錯誤的輸出?拋出錯誤? – thegrinner
因此,你的老師給你在java中的任務...並不希望你使用類? – aaronman
我很高興看到你的工作Java程序沒有任何類。 – Kon