オセロ Advent Calendar 2019 - Day 5
C言語 Advent Calendar 2019 - Day 5

ふうせん🎈 Fu-sen. と申します。

Advent Calendar の一覧を見ていたところ……えっ?
オセロ!? ……ゲームでしょ? あのオセロ!!?
……あああああ、ネタあります!
今年たまたまオセロのプログラムを見てました!! ええ。

z88dk っていう、Z80 系のプラットフォームをターゲットにした、
クロス開発環境があるんですけどね……

昨日もこの話題を C言語 Advent Calendar でしたんですけど……

で、z88dk、ちゃんと GitHub にリポジトリがあるんですけどね……

そこのサンプルにですねぇ……

https://github.com/z88dk/z88dk/tree/master/examples

othello.c!!

othello.c があるんですよ。 😲😁😆

https://github.com/z88dk/z88dk/blob/master/examples/othello.c


あるんだったら、早速動かしてみましょうか。
Z80 といえば……MSX エミュレータはすぐに動かせるので……
だって、MSX のサイトを 16 年も運営してますし……😆😲😁

zcc +msx -create-app -subtype=rom -bn othello othello.c

-subtype=rom で ROM カートリッジイメージにして、othello.rom を生成しました。

MSX エミュレータで起動

起動できました~! 画面は MSX のデフォルトで、上へスクロールしていく状態。
多くの環境で表示できるように、CLI のような表示にしてありますね。
石は O と * です。
キーボード操作、最初は先行(y=*)・後攻(n=O)の選択、
位置は数字 1~8 で 縦横 Enter(return)と入力します。
先行は * なので、64 Enter とか。

ソースを見ると、グラフィックモードもあるようなので……

zcc +msx -create-app -subtype=rom  -clib=ansi -DGRAPHICS -bn othello othello.c

とすれば良いようですね。起動するかな?

グラフィックモードで起動

……はい、起動成功です。
四角が出てるのはスプライトのゴミかと思いますが、ちゃんと動いてます。
これも多くの環境で動作するモノクログラフィックを使用しているため、
MSX では白地に黒文字となっています。正常に動作しています。

他にもいろいろ動かしてみますか。💻カタカタ…

zcc +zx81 -O3 -create-app -bn othello othello.c

ZX81 で起動

ZX81 は othello.c に記載があるので、もちろん起動します。
ZX シリーズはすべて大文字で、代わりに反転になっています。

zcc +pc88 -create-app -bn othello othello.c

PC-8801 で起動

PC-8801 も起動できました。

zcc +pc6001 -subtype=32k -create-app -bn othello othello.c

PC-6601 で起動

PC-6001・PC-6601 は 32k にして起動できましたが、
何か動きがおかしいような……スクロールしませんねぇ。

……と、Z80 の様々なフラットフォームでオセロが動作できます。
しかもソースは C 言語。何か役に立つかもしれないと思って記事にしてみました。


オセロ Advent Calendar 2019

オセロ Advent Calendar 2019 | Qiita


C言語 Advent Calendar 2019

C言語 Advent Calendar 2019 | Qiita