ページ 11

テニスのような、勝敗を決定するプログラム

Posted: 2009年10月21日(水) 13:34
by NAGI
(テニスのように)先に4勝するとどちらかの勝利で終わるが、3勝3敗となったときには先に2連続した方が勝ちになるように変更したプログラムを作成せよ。

このような課題が出されているのですが、条件文をどのように定義したらよいのでしょうか?

実際に動作するプログラムを載せていただけるとありがたいです。

Re:テニスのような、勝敗を決定するプログラム

Posted: 2009年10月21日(水) 14:15
by バグ
条件式が分からないという事は、そこ以外は出来ているという事ですよね?
完成している箇所だけでかまいませんので、ソースコードを提示してください。

Re:テニスのような、勝敗を決定するプログラム

Posted: 2009年10月21日(水) 21:02
by 紅葉
急いで書いたので醜いソースですが参考までに...
int a_win,b_win;	// 勝利回数
int win_num = 0;	// 0=>なし 1=>aの勝ち 2=>bの勝ち

// ~勝敗の処理~ 勝ったほうの ~_winに+1する

if(a_win >= 3 && b_win >= 3){
	if(a_win-2 == b_win) win_num = 1;
	else if(a_win+2 == b_win) win_num = 2;
}else{
	if(a_win >= 4) win_num = 1;		// aの勝ち
	else if(b_win >= 4)  win_num = 2;	// bの勝ち
}
また環境がわからなかったので違ったらすみません。

Re:テニスのような、勝敗を決定するプログラム

Posted: 2009年10月22日(木) 21:11
by Mikan
この得点になったら勝ち!という、win_pointみたいなのを定義しておきます。
とりあえずデフォルトではwin_point=4ですが、3対3になったらwin_point+=2とします。
また4対4になれば同じことをすればいいだけなので簡単ではないでしょうか?

aとbを比較するのではなくて、勝利ポイントと比べるのはいかがでしょう?

プログラムは載せませんが、参考にしてくださいね♪