Java 验证魔方游戏的用户输入/比较阵列(用户定义和程序员定义)
我正在尝试用数组编写一个非常简单的3x3魔方游戏 我的程序将要求用户每次三次输入三个数字(顶行、中行、底行),然后显示值。 问题是我试图让我的程序验证用户输入的值是否正确 我不知道我会怎么做;我曾想过简单地声明固定值,然后进行比较/使用条件语句将用户的输入与那些常量值进行比较(下面我的代码中解释了数组d、e和f),但我也认为这并不完全正确,因为有许多可能的值可以组成幻方,除了我将要声明的值之外,当然,我不希望代码中有那么多冗余 我还不太熟悉数组,我是Java的初学者。我不确定在这里问这个问题是否合适,但我希望有人会继续回答。 这是相当重要的,因为这是一个学校项目 我知道这些数字在水平、垂直和对角方向上总共应该有15个。我不知道该怎么做。 尽管如此,我想我还是会坚持只做条件语句(如果没有人回答我上面的问题),因为我刚刚找到一个包含所有3x3幻方的源代码,所以如果有人能教我如何比较用户定义数组和程序员定义数组,那就太好了。 我已经编写了一些代码来存储用户输入Java 验证魔方游戏的用户输入/比较阵列(用户定义和程序员定义),java,arrays,magic-square,Java,Arrays,Magic Square,我正在尝试用数组编写一个非常简单的3x3魔方游戏 我的程序将要求用户每次三次输入三个数字(顶行、中行、底行),然后显示值。 问题是我试图让我的程序验证用户输入的值是否正确 我不知道我会怎么做;我曾想过简单地声明固定值,然后进行比较/使用条件语句将用户的输入与那些常量值进行比较(下面我的代码中解释了数组d、e和f),但我也认为这并不完全正确,因为有许多可能的值可以组成幻方,除了我将要声明的值之外,当然,我不希望代码中有那么多冗余 我还不太熟悉数组,我是Java的初学者。我不确定在这里问这个问题是否
import java.util.*;
class arrayy
{
public static void main(String args[])
{
int[] a=new int[3];
int[] b=new int[3];
int[] c=new int[3];
int[] d={8,1,6};
int[] e={3,5,7};
int[] f={4,9,2};
Scanner sc=new Scanner(System.in);
System.out.println("Please enter the 3 numbers for the top row: ");
for(int j=0;j<3;j++)
a[j]=sc.nextInt();
System.out.println();
System.out.println("Please enter the 3 numbers for the middle row: ");
for(int j=0;j<3;j++)
b[j]=sc.nextInt();
System.out.println();
System.out.println("Please enter the 3 numbers for the bottom row: ");
for(int j=0;j<3;j++)
c[j]=sc.nextInt();
System.out.println("Your entry: ");
for (int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
for (int i=0;i<a.length;i++)
System.out.print(b[i]+" ");
System.out.println();
for (int i=0;i<a.length;i++)
System.out.print(c[i]+" ");
System.out.println();
System.out.println();
}
}
import java.util.*;
类数组
{
公共静态void main(字符串参数[])
{
int[]a=新的int[3];
int[]b=新的int[3];
int[]c=新的int[3];
int[]d={8,1,6};
int[]e={3,5,7};
int[]f={4,9,2};
扫描仪sc=新的扫描仪(System.in);
System.out.println(“请在第一行输入3个数字:”);
对于(intj=0;jIMO),您应该维护一个多维数组,以提高代码可读性
这是int[3][3]
而不是3int[3]
。下面是我的尝试
public static void main(String [] args) {
int[][] input=new int[3][3];
int[][] defined={{8,1,6}, {3,5,7}, {4,9,2}};
Scanner sc=new Scanner(System.in);
//Take input
//Outer loop
for(int i=0; i<3; i++) {
System.out.println("Enter value for Row number - "+(i+1));
//Inner loop
for(int j=0; j<3; j++) {
input[i][j] = sc.nextInt();
}
}
//Compare
boolean matches = true;
for(int i=0; i<3; i++) {
//Inner loop
for(int j=0; j<3; j++) {
if(input[i][j] != defined[i][j]) {
matches = false;
break;
}
}
}
if(matches) {
System.out.println("All matches");
}
else {
System.out.println("No match");
}
}
publicstaticvoidmain(字符串[]args){
int[][]输入=新int[3][3];
int[]defined={{8,1,6},{3,5,7},{4,9,2};
扫描仪sc=新的扫描仪(System.in);
//听取意见
//外环
对于(int i=0;i假设已将值读入数组,则以下代码将适用于所有可能求解幻方的组合
boolean flag = true;
int sum = 0;
int i,j;
for(i=0;i<3;i++){
//for the row wise check
sum=0;
for(j=0;j<3;j++) {
sum+=arr[i][j];
}
if(sum!=15) {
flag=false;
break;
}
//for the column wise check
sum=0;
for(j=0;j<3;j++) {
sum+=arr[j][i];
}
if(sum!=15) {
flag=false;
break;
}
}
//for the diagonal check
sum=0;
for(j=0;j<3;j++) {
sum+=arr[j][j];
}
if(sum!=15) {
flag=false;
}
sum=0;
for(i=0,j=2;j>=0;i++,j--) {
sum+=arr[i][j];
}
if(sum!=15) {
flag=false;
}
if(flag) {
System.out.println("you have cracked it..!!");
} else {
System.out.println("better luck next time..!!");
}
boolean标志=true;
整数和=0;
int i,j;
对于(i=0;i