• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オセロ(リバーシ)の対局プログラム)

オセロ対局プログラムの作成方法

このQ&Aのポイント
  • マイコンの2色ドットマトリクスLEDを使ってオセロゲームの対局プログラムを作成する方法を探しています。
  • プログラムメモリのサイズは64Kバイト(32Kワード)で、変数に使えるRAMは3936バイトです。
  • C言語やVB、昔のBasicなどを使用して、サイズを収めることのできるプログラムソースの情報を求めています。初心者でも勝てる弱いプログラムでも構いません。

質問者が選んだベストアンサー

  • ベストアンサー
  • BuriBuri4
  • ベストアンサー率28% (150/525)
回答No.1

初代ファミコン版ドラゴンクエスト3は64KByteに収まっていましたから64KByteもメモリーがあってたった200ステップしか入らないって事は無いと思います、20000ステップ位は入るのではないでしょうか。 >変数などに使えるRAMは3936バイト コード領域が64KByteあるのにデータ領域がたった3KByteっておかしくないですか?スペックを見間違えていませんか? オセロは比較的単純な二人零和有限確定完全情報ゲームでとっくの昔に必勝法が確立されており対戦ソフトとしては30年前に行くところまでいってしまいました。 なので今ころ中途半端なソースを公開する人は滅多にいないと思います。 「リバーシのアルゴリズム」 http://www.amazon.co.jp/dp/4875934289 などのアルゴリズムの解説本(Java/C++のソースコード付き)は出ていますのでそういう書籍を参考にされていはいかがでしょうか。 また人間のプレイヤー向けに定石などを解説した「強くなるオセロ」 http://www.amazon.co.jp/dp/4816350330 のようなオセロ入門書もありますので、そういった本を参考に車輪の再発明をするのも楽しいと思います。

noname#215107
質問者

お礼

回答ありがとうございます。 ステップ数については、おっしゃる通りだと思います。このへんはまあ、適当です。 200ステップ程度の規模のプログラムが理想です。 昔、BASICで書かれた対局可能なオセロゲーム(弱かったですが)が雑誌2ページくらいに掲載されていたのですが、このあたりのサイズをイメージしています。 ファミコンは主要なルーチンはアセンブラで書かれていたと思います。6502は使ったことがありませんが、同時代のZ80は良く使いました。 開発環境のメモリ残量の減りをみると、1万ステップはとても無理です。せいぜい1000ステップ以下だと思います。マイコンの場合、RISCチップですし、Cコンパイラの最適化が試用期間を過ぎるとOFFになってしまうため、あまり効率は良くないのは確かです。実際は2バイトで1ワードですので、NOP命令一個でも2バイト食います。また他のライブラリを乗っけることを考えたら、残りは余りないと考えたほうがいいかもしれません。 >コード領域が64KByteあるのにデータ領域がたった3KByteって >おかしくないですか?スペックを見間違えていませんか? いえ、間違えていません。 使用しているマイコンはPIC18F26K20です。 http://akizukidenshi.com/catalog/g/gI-05397/ コード領域は、ROM上にありますので、変数領域として使えません。定数領域としては使えます。 ANSI準拠のCですが、この部分だけは考慮する必要があります。 rom const int a=1; ←(ROM上に配置、a=1で固定) int a=1; ←(aはRAM上に配置)