스도쿠 게임을 4 x 4로 만드는 처리 스케치를 만들고 플레이어가 플레이 그리드에 누락 된 숫자를 입력하도록하는 과제가 있습니다. 현재 직면하고있는 문제는 루프 또는 플레이어가 누락 된 숫자를 모두 입력 할 수있게하려면 어떻게해야합니까? 플레이어가 switch 문과 if 문을 사용하여 처음 4 자리 숫자를 입력 할 수 있도록 허용했으나 프로그램은 각 case의 첫 번째 if 문을 통해서만 수행하고 나머지는 통과하도록하고 싶습니다. 여기 제가 만든 대구입니다.4 x 4 스도쿠 게임
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.
}
어떤 프로그래밍 언어입니까? – JJJ
@ 주 : 처리 중입니다. –
아, 내 실수. – JJJ