![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e6f04cf)
http://codepad.org/MlYD8zXy
上記は製作途中のゲームのソースコードです、作りが雑なのは全くの初心者なのでご了承くださいm(_ _)m
要望が3つあります
・プレイヤーかモンスターのどちらかのHPが0になった時に、このゲームを終了させたい。
・攻撃の選択肢を増やしたい。(魔法や必殺技など)
・「急所に当たった」という表現を追加したい。
これらを実現させるにはどう書けば良いでしょうか?
上記3つのうちのいずれかでもコードを作成できる方で、
お時間がよろしければ下記サイトに例としてコードを書いていただけないでしょうか。
http://codepad.org/
(一からでも、コピーして改変、少し手を加えて頂けるだけでも嬉しいです)
よろしく願い致します><
No.1ベストアンサー
- 回答日時:
ここは質問するところなんですけど、そこのところはご理解いただいているという認識でよろしいでしょうか?
>要望が3つあります
要望以前にちゃんと動作するコードにする必要がありそうですが。
>int x = 0, a = 11, b = 17, c = 50;
>printf("あなたの運勢を二桁以内の半角英数字で入力してください:");
>scanf("%d",x);
数字の入力は出来ませんね。
少なくとも入力文字の先頭に数字を入力してはいけないコードです。
「先に進ませる」ためには。
# 理由はご丁寧にコンパイル時の警告メッセージとして出力されています。
数字を入力するとプレイヤーとモンスターの戦闘は神により禁止されます。
# SegmentationFaultかアクセス違反という神罰により平和な世界が訪れる。
で、数字に入力できないので…ここでのxは常に0になり以降の計算式も毎回同じ値を返すことが確定します。
# ゲーム的要素ないですね…。
>printf("(Ctrl+cで終了します。先頭を続けるにはEnterキーを押してください)\n");
Ctrl+cでやはり神を召喚します。
結果として「先頭は無かった」ことにされ、プレイヤーもモンスターも死なない平和が実現されます。
# プロセスの強制終了。
環境によっては世界の裏側でプレイヤーとモンスターが神からの時間停止呪文の解放を待ち続けます。
# フォアグランドにならないとgetchar()から先進めないでしょうしね。
>・プレイヤーかモンスターのどちらかのHPが0になった時に、このゲームを終了させたい。
>while(1){
のループの継続条件を整理してみてください。
ちなみに、「0」になる確率にも注意が必要です。
# 25-30は0ではありませんから。
まぁ、ループの継続条件だけでなく中断判定も入れないとアンデットになったプレイヤーがモンスターに攻撃可能だったりします。
さすが勇者!死んでもただでは死にません!
# そして、最初のループ継続条件をミスするとアンデットになったプレイヤーとモンスターがえいえんの戦闘を繰り広げます。
えいえんの戦闘の果て、アンデットから体力バカに転生します。
# えいえんはあるよ。ここにあるよ。
とりあえず、疑似乱数ってものがあることは勉強しましょう。
# あと、種が必要であることも。
>・攻撃の選択肢を増やしたい。(魔法や必殺技など)
getchar()での入力内容によって分岐する処理でも追加すればよいでしょう。
「想定外の入力」についても考慮は必要でしょうが。
# MPやら必殺技の使用条件とか考える必要もあるでしょうねぇ。
>・「急所に当たった」という表現を追加したい。
乱数で判定でしょうかねぇ。
行動選択できるなら判定処理ちゃんと考えないとアホな結果になるのでご注意を。
プレイヤーは回復の呪文を唱えた!
プレイヤーのHPが34回復。
モンスターの急所に当たった!!
モンスターに74のダメージ!!
みたいな。
# いつ攻撃したよ?
ちなみに何度か指摘しているループ継続条件をミスると、回復呪文でプレイヤーの負けになる場合もあります。
# アンデットから生者になれるわずかな隙間で。
>お時間がよろしければ下記サイトに例としてコードを書いていただけないでしょうか。
謹んでお断りいたします。
「こういうコードにして、こういう結果を望んだけど違う結果になる。どこが悪いの?」みたいな質問でしたら回答してくれる人はそれなりに居るでしょうが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- 据え置き型ゲーム機 キン肉マンゲームで「順逆自在の術」は、すごく表現が難しかった? プログラミング 1 2023/03/23 16:53
- その他(プログラミング・Web制作) VS codeを使って、ラズパイ Picoを動かせる簡単な方法 1 2023/04/27 13:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
プログラミングの問題です 「金...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
*をユーザーが入力した数字の数...
-
C言語でgetchar();が上手く使え...
-
C言語について
-
OpenCV webカメラ同時出力について
-
C言語
-
fflush(stdin)の使い方とprintf...
-
java初心者です。入力されたの...
-
scanfが2回使えない・・・?;
-
getcharをしながらwhile文で出...
-
C言語 入力した値から0までの数...
-
至急教えてください。プログラ...
-
getchar()について 教えてくだ...
-
"scanf"でエンターで改行させな...
-
プログラミングの問題で、キー...
-
C言語 逆ピラミッドの作り方
-
入力エラーの処理について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語 逆ピラミッドの作り方
-
double型が正常に認識されてい...
-
ワードで文字を入力する時の変...
-
コマンドプロンプトからのEOFの...
-
Linuxで入力待ちなしkeyread関...
-
scanf が無視されます
-
if文の条件にscanf関数を使うと…?
-
C言語について
-
cout関数を使っているのですが...
-
enterでループ終了
-
"scanf"でエンターで改行させな...
-
C言語でgetchar();が上手く使え...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報