###前提・実現したいこと
(「」内の0は踏んでいないところ、1は踏んだところです。)
一次元マインスイーパーの作成
1.プログラム側で0から9までの整数をランダムに二つ選ぶ.(これが地雷の位置となる.)
2.「0~9」までの整数を入力してください:」と表示する.
3.キーボードより整数を入力する.
4.入力された整数によって,以下の処理を行う.
A) 1で選んだ整数と同じであれば「地雷を踏みました!!」と表示してゲームを終了
する.
B) A)以外の場合は,「0000010000」のようにこれまで入力をした場所に関する情報
を表示して2へ戻る.
ここで,*はまだ入力されていない場所, ○は入力を受け付けたが地雷がなかった場
所。
C) 地雷の場所以外全ての場所を試したら,「おめでとうございます.全ての地雷を特
定しました.」と表示してゲーム終了する.
■ 実行結果例
「0~9」までの整数を入力してください.:5
「0000010000」
「0~9」までの整数を入力してください.:1
「0100010000」
「0~9」までの整数を入力してください.:3
「0101010000」
「0~9」までの整数を入力してください.:9
「0101010001」
「0~9」までの整数を入力してください.:8
「0101010011」
「0~9」までの整数を入力してください.:7
「0101010111」
「0~9」までの整数を入力してください.:6
地雷を踏みました.
という条件のもと実行結果を出したいです。
ワイル文やdoワイル文などは習ってなくfor文、if文、あとは常識の範囲の文(scan,printfなど)しか使えません。
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
#include<stdio.h> #include<time.h> #include<stdlib.h> int main(void) { int a,b,c,d,e,f; srand(time(NULL)); a=rand()%9+1; b=rand()%9+1; for(d=1;d<=10;d++) { printf("「0〜9」までの整数を入力してください:"); scanf("%d",&e); for(f=1;f<=10;f++) { if(e==a||e==b) { printf("地雷を踏みました\n"); break; } else if(f==e) { e++; printf("○ "); } else { e++; printf("*"); } } printf("\n"); } return 0; }
###試したこと
上記のことを試してみました。
###補足情報(言語/FW/ツール等のバージョンなど)
できれば、実行結果になるソースコードではなく、その実行結果になるまでの過程をヒント形式で答えてくれるとありがたいです。
回答3件
あなたの回答
tips
プレビュー