• 締切済み

○×ゲーム

○×ゲーム ○×ゲームを作ってますがコンピュータとの対戦の時、先攻後攻をジャンケンで決めれるようにしたいのと、コンピュータがマスを置くAIをしっかりとしたものにしたいのですがプログラム上でどうすればよろしいでしょうか。どなたか教えてください。 ソースコード↓ http://codepad.org/haIjhQhY

みんなの回答

回答No.1

着実に進んでますね。いいことです。 さて先攻後攻をジャンケンで決めるのは簡単なのですが、今のコードだとちょっと適用しにくいですね。goto使えばすぐにでもできますけど。 プレイヤー対戦とコンピュータ対戦との重複も気になりますし、main関数内の対戦部分をちょっとリファクタリングすると良いと思います。 AIに関しては、ヒューリスティックというか、あと一手で勝ちになる状況に対応することはできますよね。では、三手で勝ちになる状態に対応する方法は考えられますか?想像できたなら、それが探索です。 3*3だったら全探索が問題なく可能ですね。対称性や必須の一手を利用して枝狩りを適宜行えば、人間の手でも探索可能な程度でしょう。 それをしないなら強化学習とか用いることになりますね。このゲームは、ある盤の状態である手を行ったという情報の積み重ねでできています。最後の手で負けた場合はそこまでに至る手の評価を下げ、勝った場合は評価を上げていきます。これを繰り返すことである手の評価を学習させることができるわけです。 または、最近流行りのモンテカルロ法を用いる方法もあります。モンテカルロじたいについては適宜調べていただくとして、この場合は、ランダムに石を置いて終局までを何度もシミュレートし、その結果をまとめ、より勝ちやすいところに石を置く方法です。作るのが簡単なわりに効果があります。

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

関連するQ&A

  • 三目並べ

    三目並べ 三目並べ(○×ゲーム)のプログラムにコンピュータとの対戦を付けたいのですがどうすればいいのでしょうか。教えてください。 ソースプログラム↓↓ http://ime.nu/codepad.org/wfwkEbVP 実行結果はこんな感じにしたいです。 1Pと2Pとの交互に対戦しますか? 1Pとコンピュータとの対戦にしますか? プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください: こんな感じで選らばせて対戦できるようにしてほしいです。 ※1Pのマスは○でコンピュータのマスは×でお願いします。

  • 教えてください(丸罰ゲーム)

    三目ゲーム(9マスの丸罰ゲーム)のプログラムを書いてコンピューターを相手に対戦したとき、コンピュータの勝率をできるだけあげるにはどうしたらいいんでしょうか??何か参考になることなんでも教えてください。ホームページなど教えてもらえれば光栄です。お願いします。

  • 高校野球の先攻後攻

    高校野球の先攻と後攻はどのようにして決めているのですか?じゃんけんでもしているのでしょうか? 回答お願いします。

  • WBCの先攻 or 後攻はドーやって決めてる?

    WBCやってるじゃん。これからオーストラリア戦なのですが、日本は先攻だね。 過去3戦は後攻だったね。 コレ、ドーやって決めてるの?じゃんけん?クジ引き?コイントス? 将棋だったら振り駒だね。囲碁だったら握りだね。 プロ野球だったら、リーグで試合スケジュールを決めて、試合球場のホームチームが後攻だね。

  • fortressという名前の、レトロなパソコンゲームを知りませんか?

    fortressという名前の、レトロなパソコンゲームを知りませんか? チェスや将棋のように、1対1で対戦する、運の要素のない知的ゲームです。 6x6のマスの中に、互いに城を建てていき、最終的に自分の陣地が多いほうが勝ちです。 私が見たのは、1980年代頃の、PC-9801用ゲームソフトです。 確か色が付いてないモノクロのゲームだったと思います。 デザインの感じから言って、多分外国のゲーム、 恐らくオリジナルはAppleII用ではないかと思います。 なぜ探しているかと言うと、人間の相手をしてくれるコンピュータのAIが、 本格的AIっぽいからです。最初はランダムに指してくるが、数回対戦すると こちらの手を覚えて強くなります。20回ぐらい対戦すると、なかなか勝てない ほど強くなります。しかも、戦術も覚えます。AIキャラを複数作成できて、 例えばキャラAと対戦するときは序盤から陣地を多く取る戦術で戦い、 キャラBに対してはなるべく敵の城を壊していく戦術で戦います。すると、 それぞれのキャラがこちらの戦術を覚えて、それに従った手を指してくるのです。 このようなものは、他に見たことがなく、とてもなつかしく思っているので、 このゲームの発売元、作者、いまでも手に入るか、などの情報を探しています。 ゲームのルールは以下です。 6×6のゲーム盤上で、敵・味方が交互に手を指します。 1手でできるのは、以下のいずれか。 (1)空いているマスに自分の城を建てる。 (2)既に立っている自分の城を2階建てにする。 (3)既に立っている自分の2階建ての城を3階建てにする。 1手指すごとに、各マスの勢力を計算します。 (1)城があるマスと、その前後左右の計5箇所のマスには、城の勢力が及びます。 (2)1階建ての自分の城は+1、2階建ての城は+2、3階建ての城は+3の勢力。 (3)同様に敵の城は-1 ~ -3の勢力。 それぞれのマスごとに、勢力の合計を求めます。 (1)勢力がプラスのマスに敵の城が建っているとき、その城は壊れる。 (2)勢力がマイナスのマスに自分の城が建っているとき、その城は壊れる。 (3)城が建っているマスは、それぞれの側の陣地。 (4)空いているマスは、勢力がプラスなら自分の陣地、マイナスなら敵の陣地。 所定の回数指したらゲーム終了。互いの陣地の数を数え、多いほうが勝ち。

  • 将棋ゲームについて

    将棋のゲームってありますよね。「AI将棋」とか。 コンピュータ対戦をしていて、いつも思うのですが、 「いったい、どういうアルゴリズムで作られているのだろう?」 と、関心しています。もし、その手のアルゴリズムや、説明を書いている本や、サイト があれば、教えてください。お願いします。

  • AIに任せて見守るゲームがあれば教えてください

    AIが動かしてるのを片手間で見るのが好きです。 ワールド・ネバーランドをAI任せにするようなイメージです。 age of empiresのコンピューター対戦なんかも好きです。 ニコニコ動画にある「グラディウスを学習させてみた」「マリオを教育してみた」は大好きです。 CimCityのような箱庭ゲーで勝手に成長していくゲームがあれば最高です。 ドカポンをコンピューターに任せて観戦するのも悪くはないです。 三国志シリーズも然り。 このような方向性を持ったゲームはないでしょうか? 装備を設定してダンジョンだけオートで動くゲームはNGです。 あくまで最初の設定以外は全てAIがやってくれるゲームを探しています。

  • 石取りゲームでの必勝法

    よくある石取りゲームでいつも負けてしまいます。どうやれば勝てるか教えてください。 私と姉二人でゲームをしています。 ・私が先攻、姉が後攻。 ・石の数は21個。 ・1~3個をお互い取っていって最後の21個目の石を取った人が負け。 ・どうやら姉は必勝法を知っているようです。 この条件でどうにかして姉に勝ちたいです。何か方法はありませんか?

  • 再試合の先攻後攻

    高校野球で引き分け再試合になったときの先攻後攻はどうやってきめるのでしょうか? 一試合目と同じ? でも調べると04年大阪大会の決勝のPL-大阪桐蔭は一試合目と再試合で逆になっています。 再試合もジャンケンし直すんでしょうか?

  • 将棋のゲーム

    20年ほど前から家庭用ファミリーコンピューターで将棋のゲームが出ていたのですが、今思うと将棋のコンピューター対戦のプログラムはものすごいように思います。強さも選択ができたと思います。 いったい将棋ゲームのコンピューターはどんな風に作ってあるのでしょうか!??

このQ&Aのポイント
  • ドラムお手入れ表示が出て、コロナワイヤーの清掃後復旧しないため、新しいドラムを購入したが復旧しないです。
  • お困りの方にとっては、ドラムお手入れ表示が出てもコロナワイヤーの清掃で復旧しない場合、新しいドラムを購入しても復旧しない可能性があります。
  • hl-l8350cdwのドラムお手入れ表示が出て、コロナワイヤーの清掃後も復旧しない場合は、新しいドラムを購入する前に他の対処方法を試してみることをおすすめします。
回答を見る

専門家に質問してみよう