Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • 締切済み

c言語について。

#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<time.h> int goukei=0; //goukei関数の定義 int detame; //detame関数の定義 void gusu(){printf("偶数%dが出ました。ゲームオーバーです。\n",detame); getchar(); exit(1);} int kisu(){ goukei=goukei+detame; printf("奇数%dがでました。合計%d点です。\n",detame,goukei); } main(){ char answer[20]; //文字型変数answerの宣言 int amari; //amari関数の宣言 //ゲームの説明・開始 printf("さいころの目が奇数なら、出た目だけ得点が加算され、\n"); printf("偶数が出たら、その場でゲームオーバーです。\n"); printf("さいころを振ってください。\n"); getchar(); srand((unsigned)time(NULL));//rand関数の初期化 detame=rand()%6+1;//1から6までの乱数の発生 amari=detame%2; if(amari==0){gusu();}else{kisu();} while(1) { printf("ゲームを続けますか?yesかnoで答えてください。\n"); scanf("%s",&answer); if(strcmp(answer,"no")==0){ break;} printf("ゲームを続けます。\n"); printf("さいころを振ってください。\n"); getchar(); detame=rand()%6+1; amari=detame%2; if(amari==0){gusu();}else{kisu();} } //合計得点とゲームの終了 printf("合計で%d点でした。ゲームを終了します。\n",goukei); } このプログラミングはさいころを振って、奇数なら出た目が加算され奇数ならゲームオーバーというものなんですが、さいころを二つにするときはどういうプログラムになるのか教えてください。お願いします。

みんなの回答

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.2

>に変えただけでいいんですか?? で、コンパイルしてみれば、エラーが出るはずなんで、わかると思いますが・・・ void gusu(){printf("偶数%dが出ました。ゲームオーバーです。\n",detame); ↓ void gusu(){ goukei=goukei+detame1+detame2; printf("%dと%dで偶数が出ました。ゲームオーバーです。\n",detame1,detame2); int kisu(){ goukei=goukei+detame; printf("奇数%dがでました。合計%d点です。\n",detame,goukei); ↓ int kisu(){ goukei=goukei+detame; printf("%dと%dで奇数が出ました。合計%d点です。\n",detame1,detame2,goukei);

すると、全ての回答が全文表示されます。
  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.1

int detame; //detame関数の定義 ↓ int detame1; //detame1変数の定義 int detame2; //detame2変数の定義 detame=rand()%6+1;//1から6までの乱数の発生 amari=detame%2; ↓ detame1=rand()%6+1;//1から6までの乱数の発生 detame2=rand()%6+1;//1から6までの乱数の発生 amari=(detame1+detame2)%2; キャラクタベースなのが、新鮮です。 なぜか、けっこうハマりました。 「6」の時だけ、アウトにするとか確率をいじるとロシアンルーレットのようにシンプルなスリルがあります。

bobsepp21
質問者

お礼

ありがとうございます。 detame=rand()%6+1;//1から6までの乱数の発生 amari=detame%2; を detame1=rand()%6+1;//1から6までの乱数の発生 detame2=rand()%6+1;//1から6までの乱数の発生 amari=(detame1+detame2)%2; に変えただけでいいんですか??

すると、全ての回答が全文表示されます。

関連するQ&A