前提・実現したいこと
C言語でコンピューターとプレーヤーでじゃんけんをするプログラムを作りました。
0がグーで、1がチョキ、2がパーです。
配列は使わないで、コンピュータの手は乱数で決めて、プレイヤーはキーボードから手を入力します。
発生している問題・エラーメッセージ
きちんと動くプログラムはできたのですが、if文が冗長であるような気がしています。
もう少し簡潔に書ければそうしたいのですが、あまりいい案が思いつきません。
何かもっと簡潔に書くことができるアドバイスなどあればいただきたいです。
該当のソースコード
printf("プレイヤーは"); if(player==0){ printf("グー"); } else if(player==1){ printf("チョキ"); } else{ printf("パー"); } printf("で、コンピューターは"); if(comp==0){ printf("グー"); } else if(comp==1){ printf("チョキ"); } else{ printf("パー"); } judge=(player-comp+3)%3; if(judge==0){ printf("なので、引き分け\n"); } else if(judge==1){ printf("なので、コンピューターの勝ち\n"); } else{ printf("なので、プレイヤーの勝ち\n"); }
配列を使えばいいのでは?
printf("%s\n", hand[player]);
> 配列は使わないで
のような「縛りプレイの範囲で」簡潔にしたい,という話?
はい!そうです。
縛りプレイするならば別に今のままで良いと思うけど。
また嫌がらせのクイズか。
> C言語でコンピューターとプレーヤーでじゃんけんをするプログラムを作りました。
作ってないでしょ。宿題でしょ。自分でやれ。
不快に思われたのでしたら、申し訳ありませんでした。
ですが、自分でプログラムを作ったのは本当です。
作ったうえで、もっといいものにすることができるのならしたいと思って質問をさせていただきました。
自分で作るのにそんな変な縛りを入れる必要は無いし、
> 回答ありがとうございます。
はい…。本当に面倒なのですが、配列禁止とのことでして(泣)
他人から禁止されるいわれもない。
頭空っぽにして,9パターン分岐のswitchを書くというのがある意味「簡潔」かもしれない.
回答3件
あなたの回答
tips
プレビュー