学校に通い始めて1ヶ月と少し。
配列位まで使えるようになって、今は思いついたゲームを作るのが楽しく、普段からc言語のことばかり考えるほどです。
そんな中普通にプレイしてて楽しいと思えるくらいのゲームが作れたので、投稿してみます。
指摘やアドバイスなどなんでもお待ちしております。
ルールはコード内に書いてあります。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int a, b, n, i, j, rx, ry, bx, by;
int rfield[7][7];
int bfield[7][7];
printf("\n"
"5×5マスのどこかに赤い爆弾と青い爆弾が設置されています!!\n\n"
"5手で得た情報をヒントに爆弾の位置を特定してください。\n"
"片方でも爆弾の位置を間違えた場合爆発してしまいます。\n"
"頑張って探し当ててください;;\n\n"
"~ルール説明~\n\n"
"何行目、何列目の順に数値を入力してください。\n\n"
"・ そのマスに爆弾が設置されていた場合、「2」、\n"
"・ そのマスの周囲8マスに爆弾が設置されていた場合、「1」、\n"
"・ 上記の範囲に爆弾が存在しない場合、「0」と出力されます。\n"
"\n\n"
"5回この作業を繰り返した後、2つの爆弾の位置を聞きます。"
"どちらか片方でも外れた場合、爆発し、GAME OVERとなります。"
"情報をたよりに爆弾を2つとも探し当ててください。\n\n"
"では、Enterを押してGAME START!!!\n\n");
getchar();
srand((unsigned int)time(NULL));
rx = rand()%5+1;
ry = rand()%5+1;
bx = rand()%5+1;
by = rand()%5+1;
//red[rx][ry];
//blue[bx][by];
for(j=1;j<=5;j++){//field作成
for(i=1;i<=5;i++){
rfield[i][j]=0;
bfield[i][j]=0;
}
}
for(n=1;n<=5;n++){
printf("%d 回目\n", n);
printf("何行目?: "); scanf("%d", &a);
printf("何列目?: "); scanf("%d", &b);
if(a==rx && b==ry){//redbombの処理
rfield[b][a]=2;
printf("2");
}
else if((a-1<=rx && rx<=a+1) && (b-1<=ry && ry<=b+1)){
printf("1");
for(j=a-1;j<=a+1;j++){
for(i=b-1;i<=b+1;i++){
rfield[i][j]=1;
}
}
rfield[b][a]=0;
}
else printf("0");
if(a==bx && b==by){//bluebombの処理
printf("2");
bfield[b][a]=2;
}
else if((a-1<=bx && bx<=a+1) && (b-1<=by && by<=b+1)){
printf("1");
for(j=a-1;j<=a+1;j++){
for(i=b-1;i<=b+1;i++){
bfield[i][j]=1;
}
}
bfield[b][a]=0;
}
else printf("0");
printf("\n\n");
printf("赤い爆弾の検知結果\t青い爆弾の検知結果\n");
for(j=1;j<=5;j++){//field作成
for(i=1;i<=5;i++){
printf("%d", rfield[i][j]);
}
printf("\t\t\t");
for(i=1;i<=5;i++){
printf("%d", bfield[i][j]);
}
printf("\n");
}
for(j=1;j<=5;j++){//field作成
for(i=1;i<=5;i++){
rfield[i][j]=0;
bfield[i][j]=0;
}
}
printf("\n\n");
}
printf("5回の動作を終えました。\n\n"
"いよいよ運命の時です。\n"
"あなたが予\想する爆弾の位置を、赤い爆弾、青い爆弾の順に入力してください。\n\n");
int arx, ary, abx, aby;
printf("赤い爆弾:\t何行目?: "); scanf("%d", &arx);
printf("\t 何列目?: "); scanf("%d", &ary);
printf("青い爆弾:\t何行目?: "); scanf("%d", &abx);
printf("\t 何列目?: "); scanf("%d", &aby);
printf("\n\n");
if((arx==rx && ary==ry) && (abx==bx && aby==by)){
printf("おめでとうございます!!!\n爆弾は両方とも爆発しませんでした!!!\n\n");
}
if((arx==rx && ary==ry) && (abx!=bx || aby!=by)){
printf("ドカン!青い爆弾が爆発してしまいました。。\nもう一度挑戦してみてね!\n\n");
}
if((arx!=rx || ary!=ry) && (abx==bx && aby==by)){
printf("ドカン!赤い爆弾が爆発してしまいました。。\nもう一度挑戦してみてね!\n\n");
}
if((arx!=rx || ary!=ry) && (abx!=bx || aby!=by)){
printf("どっかーーーん!!!!!\n爆弾が両方とも爆発してしまいました!!!\nもう二度とプレイするな!!\n\n");
}
printf("正解は、\n\n"
"赤い爆弾は%d行目の%d列目、\n"
"青い爆弾は%d行目の%d列目でした!\n\n"
"また遊んでね!", rx, ry, bx, by);
getchar();
getchar();
return 0;
}