我有一个任务是制作一个处理草图,制作 4 x 4 数独游戏并使玩家将丢失的数字输入到游戏网格中,我现在面临的问题是制作一个循环或允许玩家输入所有缺失的数字?我已经成功地允许玩家使用 switch 语句和 if 语句输入前 4 个数字,但是程序只通过每个案例的第一个 if 语句,我想让它通过其余的?这是我做的鳕鱼。
void setup ()
{
background (255);
size (125,125);
board();
}
void cell (int x , int y , int s )
{
rect (x,y,s,s);
}
void triple (int x , int y , int s )
{
for (int i = 0 ; i < 2 ; i ++)
{
cell ( x,y,s);
x += s;
}
}
void block (int x , int y , int s )
{
for (int i = 0 ; i < 2 ; i ++)
{
triple ( x , y , s);
y += s;
}
}
void row (int x , int y , int s )
{
for ( int i = 0 ; i < 2 ; i ++)
{
block ( x , y , s);
x += (s*2);
}
}
void cellArray ( int x , int y , int s)
{
for (int i = 0 ; i < 2 ; i ++)
{
row ( x , y , s);
y += (s*2);
}
}
void darwLines ( int x , int y , int s)
{
strokeWeight (3);
for (int i = 0 ; i < 1 ; i ++)
{
x += (s*2);
line ( x , 0 , x , (s*4));
}
for ( int j = 0 ; j < 1 ; j ++)
{
y += (s*2);
line ( 0 , y , (s*4) , y );
}
strokeWeight (1);
}
void board ()
{
cellArray (0,0,30);
darwLines (0,0,30);
}
void draw ()
{
int [][] fixedArray = new int [4][4];
fill (0);
textSize(28);
for (int i = 0 ; i < 4 ; i ++)
{
for (int j = 0 ; j < 4 ; j ++)
{
fixedArray [0][2] = 3;
fixedArray [1][1] = 4;
fixedArray [2][2] = 4;
fixedArray [3][3] = 3;
text(fixedArray [0][2], 65,25);
text(fixedArray [1][1],35,58);
text(fixedArray [2][2],65,88);
text(fixedArray [3][3],95,117);
}//end of inner loop.
}//end of outter loop.
if (mousePressed)
{
mouseClicked ();
}
}
/*------------------------------------------------------------------------------------------*/
void mouseClicked ()
{
int s = 30 ;
int cellX = mouseX / s;
int cellY = mouseY / s;
int [][] userInputArray = new int [4][4];
for (int m = 0 ; m < 4 ; m ++)
{
for (int n = 0 ; n < 4 ; n ++)
{
switch (key)
{
case '1':
if (mouseX > userInputArray [0][0] -s && mouseX < userInputArray [0][0]+s && mouseY > userInputArray [0][0] -s && mouseY < userInputArray [0][0] +s )
{
fill (0,0,255);
text (key , 10,25);
}
else if (mouseX > userInputArray [1][2] -30 && mouseX < userInputArray [1][2]+30 && mouseY > userInputArray [1][2] -30 && mouseY < userInputArray [1][2] +30)
{
fill (0,0,255);
text ('1' , 65,58);
}
else if (mouseX > userInputArray [2][3] -30 && mouseX < userInputArray [2][3]+30 && mouseY > userInputArray [2][3] -30 && mouseY < userInputArray [2][3] +30)
{
fill (0,0,255);
text('1' ,95,88);
}
else if (mouseX > userInputArray [3][1] -30 && mouseX < userInputArray [3][1]+30 && mouseY > userInputArray [3][1] -30 && mouseY < userInputArray [3][1] +30)
{
fill (0,0,255);
text('1' ,35,117);
}
break ;
case '2':
if (mouseX > userInputArray [0][1] -(s-s) && mouseX < userInputArray [0][1]+(s*2) && mouseY > userInputArray [0][1] -s && mouseY < userInputArray [0][1] +s )
{
fill (0,0,255);
text(key ,35,25);
}
else if (mouseX > userInputArray [1][3] - (s-s) && mouseX < userInputArray [1][3] +(s*2) && mouseY > userInputArray [1][3] -(s*2) && mouseY < userInputArray [1][3] +(s*2))
{
fill(0,0,255);
text(key,95,58);
}
else if (mouseX > userInputArray [2][0] -(s-s) && mouseX < userInputArray [2][0] +(s*2) && mouseY > userInputArray [2][0] -(s*2) && mouseY < userInputArray [2][0] +(s*2))
{
fill(0,0,255);
text(key,10,88);
}
else if (mouseX > userInputArray [3][2] -(s-s) && mouseX < userInputArray [3][2] +(s*2) && mouseY > userInputArray [3][2] -(s*2) && mouseY < userInputArray [3][2] +(s*2))
{
fill(0,0,255);
text(key,65,117);
}
break;
case '3':
if ( mouseX > userInputArray [1][0] -s && mouseX < userInputArray [1][0]+s && mouseY > userInputArray [1][0] -(s-s) && mouseY < userInputArray [1][0] +(s*2))
{
fill(0,0,255);
text(key,10,58);
}
else if (mouseX > userInputArray [2][1] -s && mouseX < userInputArray [2][1]+s && mouseY > userInputArray [2][1] -(s-s) && mouseY < userInputArray [2][1] +(s*2))
{
fill(0,0,255);
text(key,35,88);
}
break ;
case '4':
if (mouseX > userInputArray [0][3] +60 && mouseX < userInputArray [0][3]+120 && mouseY > userInputArray [0][3] -30 && mouseY < userInputArray [0][3] +30 )
{
fill(0,0,255);
text(key,95,25);
}
else if (mouseX > userInputArray [3][0] +60 && mouseX < userInputArray [3][0]+120 && mouseY > userInputArray [3][0] -30 && mouseY < userInputArray [3][0] +30 )
{
fill(0,0,255);
text(key,10,117);
}
break;
default :
{
fill (255);
rect ((cellX * s),(cellY*s),s,s);
}
}//end of switch.
}//end of the inner loop.
}//end of the outter for loop.
}