見出し画像

Retro-gaming and so on

問題: 石取りゲームを書け

教えて!goo にこういう質問があがっていた。

コンピューター対戦のプログラムを組みたいので
その土台となるプレイヤーVSプレイヤー(どっちも人間がやる内容)の石取りゲームでのC言語プログラムを教えてください。
ルールとしては最初に石の個数を入力し(10個以上)、二人のプレイヤーが交互に1から3個ずつ石を取り、最後の1個を取った方が負けとなる。
作動例
石の数(10以上): 15
石の数: 15
プレイヤー1の番です
何個取る(1〜3個)? 3
石の数: 12
プレイヤー2の番です
何個取る(1〜3個)? 2
石の数: 10
プレイヤー1の番です
何個取る(1〜3個)? 4
プレイヤー1の番です
何個取る(1〜3個)? 3
石の数: 7
プレイヤー2の番です
何個取る(1〜3個)? 3
石の数: 4
プレイヤー1の番です
何個取る(1〜3個)? 2
石の数: 2
プレイヤー2の番です
何個取る(1〜3個)? 1
石の数: 1
プレイヤー2の勝ち

なかなかの良問だと思う。
別にC言語でしなくて良い。
PythonでもRacketでも何でもいい。
このプログラムを書いてみること、ってのが問題だ。
重要なのは「Read-Eval-Print Loop」で書くこと。
もちろん、出来るならコンピュータ側のプレイも実装してみて良い。
いつぞややったババ抜きプログラムの応用(と言うかもっと簡単)である(※1)。
解答例は後日。

参考: ババ抜きプログラムの解説 => その1 その2 その3

※1: ちなみに、一般には、数学的な必勝法があるので、コンピュータを先攻にしたら「決してプレイヤーが勝てない」ゲームになる可能性がある(笑)。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事