import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class LoToi5 {
/**
* コイン奪取ゲーム
* @throws IOException
/
public static void main(String[] args) throws IOException {
//手番カウント用変数
int turnCount = 0;
//入力するための準備
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//ゲームの説明
System.out.println("");
System.out.println(" コイン奪取ゲーム");
System.out.println("*****");
System.out.println("");
System.out.println("ゲーム説明(対象人数2名)\r\n" +
"①まず名前を決目てください\r\n" +
"②次にコイン全体の枚数を決めてください(奇数)\r\n" +
"③二人交互1~3枚のコインを無くなるまで取る\r\n" +
"④最後取得コイン合計偶数の方が勝利です");
System.out.println("");
//メッセージ表示 System.out.println("一人目の名前を入力してください。"); //入力する情報を取得する String user1=br.readLine(); //メッセージ表示 System.out.println("二人目の名前を入力してください。"); //入力する情報を取得する String user2 = br.readLine(); //メッセージ表示 System.out.println("コインの枚数を決めてください。"); //入力する情報を取得する String coin = br.readLine(); //文字列を数値に変換する int cm=Integer.parseInt(coin); System.out.println("今回決めたコインの数は"+cm+"枚です。"); System.out.println("それではゲームを開始します"); for(int i =cm;0<i;){ if(cm%2 !=0){ //ゲーム終了までループ try{ System.out.println("コインを1~3枚まで取ってください。"); int takeCoin=Integer.parseInt(br.readLine()); //コイン1以上3以下の判定 if(takeCoin>=1 && takeCoin<=3){ if(takeCoin<=i){ if(turnCount % 2 ==0){ System.out.println(user1+"さんの番です"); }else{ System.out.println(user2+"さんの番です"); } //コインを減らす i -=takeCoin; turnCount++; System.out.println("コインを"+takeCoin+"枚取りました"); }else{ System.out.println("残りのコインの枚数よりも多い枚数を取ろうとしています"); } }else{ System.out.println("1回に取れるコインの枚数は1~3枚までです"); } System.out.println("残りは"+i+"枚です"); } catch (NumberFormatException e) { System.out.println("入力は数字で行って下さい。"); } catch (IOException e) { System.out.println("不正な入力が行われました。"); } //勝負の判定 }else{ System.out.println("奇数を入力してください。"); } } }
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
コイン奪取ゲームを作りました、問題が二つあります。
1、偶数を入力したら、無限ループになりました(偶数で入力したら、奇数で入力してください、再入力してもらう)
2、勝負判定の仕方が分かりません。
最後取得したコイン合計偶数の人が勝、取得した合計数を求める方法が分かりません
どなたが教えてください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/23 08:00