0
私は戦艦プログラムを作ろうとしています。これまでのところ、私のプログラムはユーザー1に船のどこを入力するかを尋ねます。次にユーザー2は、船がどこにあるかを推測します。戦闘中のwhileループで問題が発生しました
初めてプレイヤー1のすべての船に当たったことがなければ、私のプログラムはユーザー2を再プロンプトしようとしました。
私はいくつかのスポットでwhileループを入れてみましたが、プログラムがクラッシュするたびにwhileループが現れてクラッシュしました。何も動作していないようです。
#include <stdio.h>
int main(void)
{
int board[2][2];
int i, j; //initialize loop variables
int i2, j2; //initialize 2nd loop variables
int i3, j3; // 3rd loop variables
printf(" User 1: Enter a '1' where you want to place your ship and '0' where you do not.\n");
/* these loops prompt the user to enter a 0 or 1 for each space in the 2d array depending on where they want their ship*/
for(i = 0; i <= 1 ; i++)
{
for(j = 0 ; j <= 1 ; j++)
{
printf("space[%d][%d]: ", i, j);
scanf("%d", &board[i][j]);
}
}
while(board[i][j] == 1)
{
/*used to prompt the user2 as long as user1 still has ships left*/
int board2[2][2];
printf("User 2: Enter a '1' where you think User 1 placed their ship and '0' where \nyou do not.\n");
/* Asks user2 for their guesses */
for(i2 = 0 ; i2 <= 1 ; i2++)
{
for(j2 = 0 ; j2 <= 1 ; j2++)
{
printf("space[%d][%d]:", i2, j2);
scanf("%d", &board2[i2][j2]);
}
}
for(i3 = 0 ; i3 <= 1 ; i3++)
{
//compares user1 input to user2 guess
for(j3 = 0 ; j3 <= 1 ; j3++)
{
if(board[i3][j3] == 1 && board2[i3][j3] == 1)
{
printf("Hit!\n"); // if the inputs match display "hit"
board[i][j] = 0;
}
else
{
printf("Miss!\n"); // if no hit display miss
}
}
}
}
return 0;
}
while(board [i] [j] == 1){':境界外へのアクセス。私は役に立たないコードだと思います。 – BLUEPIXY
while(board [i] [j] == 1){:私はその部分が役に立たないことに同意しますが、ユーザ2に再度プロンプトを出すためにwhileループをどこに置くべきかわかりません。 – nicky
User2は、船の位置。そしてそれを判断する。 – BLUEPIXY