プロが教える店舗&オフィスのセキュリティ対策術

Javaで石取りゲームのプロクラムを作成する方法を教えてください。

<仕様>
15個の石を、コンピュータと取り合う。ただし、取れる石の数は1・2・3個のいずれかである。
最後に石を取ることになった側が負けになる。

<作成方法>
1 まず、乱数で先攻・後攻を決める。
コンピュータは、乱数を使って取る石の数(1~3)を決める。
ただし、3個以下の場合は1個または2個を取るようにしなくてはならない。

2 コンピュータのターンとあなたのターンの区別をする。
ターンを表す変数を用意し、その値によって区別すると良い。
ただし、どちらかのターンが終わった時点で、相手のターンに設定をする必要がある。

3 それぞれのターンに合わせて処理をする。
A コンピューターのターンの場合
①コンピュータのターンなら、取る石の数を決めて、コメントを出力する。
ただし、現在の石の数が3個より多いかどうかで、取る石の数を変える。
②石の残数を求めて出力する
B あなたのターンの場合
①取る石を入力させるようにする
②石の残数を求めて出力

4 石の残数が0になった時点で、どちらのターンだったかで勝敗が決まる。

<プログラム>
コンピューターが先行
コンピュータが1個取った
現在の石の数:14

石を取って!(1~3) >3
現在の石の数:11

コンピュータが2個取った
現在の石の数:9

石を取って!(1~3) >3
現在の石の数:6

コンピュータが2個取った
現在の石の数:4

石を取って!(1~3) >3
現在の石の数:1

コンピュータが1個取った
現在の石の数:0

あなたの勝ち

A 回答 (3件)

    • good
    • 0

昔からあるゲームですね。



> 取れる石の数は1・2・3個のいずれかである。
> 最後に石を取ることになった側が負けになる。
この場合の必勝方法は、
自分が取った残りを「4の倍数+1」にして相手に渡せばよい、
という事になります。
その後は、相手の取る数+自分の取る数=4、
これで進めて相手に渡すだけ。
コンピュータの取る数がこれを意識せずに乱数で決定するならば、
必ず貴方の価値になってしまいます。

このゲームは、初期数が4n+1であるか否か、先行がどちらか、
で、勝敗か決まってしまうゲームなのです。
    • good
    • 0

Java教本を買うべしだが、ネットの検索でも有った。



http://k-sakabe.com/java2/index_c13.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!