2011年3月7日月曜日

Excelオセロプログラミング概要

Excelでオセロを作ってみた。
プレイ中の感じです。(クリックで拡大)



残念ながらクリックに対応しておらず、完全に手打ち形式です。
実はこのころプログラミングとか全く触ったこともなく、かなり文が雑です。

Excelの授業課題として提出したので期間もほとんどかけられてません。
大体半年前だったかな?

あまりにも膨大な駄文なので分割してアップます。
(駄文なのに上げるのかとは言わないこと)


画像には表記されていませんが、座標[0,0]でパスができ、
双方ともにパスだった場合は強制的にゲームが終了します。

また、有効な置き場がなかった時には自動でパスし、置き場が完全になくなったときは
終了するようになっています。


プレイする分にはネックはクリック対応じゃないことくらいなんですけど、
ソースをみると無駄があるわあるわ…。


・石を裏返すときの処理と有効な置き場の探索で上下左右斜めすべての文が手打ちであること。
・意味のないモジュール分け。
・反対に必要なところなのにモジュールがひとつ。
・変数名(フラグなど)が何を指すか解りにくい。


こんなに。
特に1番上は致命的ですね。よくこれで出そうと思ったな自分…とか考えてしまうレベル。


言い忘れてましたがExcelのVBAを使用しています。
モジュールは7コ。数えた感じでは合計で1000行を軽く超していたような…。


ちなみにあれから半年、Android開発をしてみたいと思い立ち、
まずは原点のオセロだろうと思い、再びオセロを作り始めました。
グラフィカルな部分は未完成ながらもシステムは完成し、行数を数えてみると

なんと150行。

現行でグラフィック関連も少し書いているので、
それを除くとおよそ10倍の無駄があった計算になります。

ちなみに現行版はAndroidアプリにする予定だったのでJava言語で書かれています。


たった半年ながら大きな前進だったな、としみじみ。
Android版は画像ファイルなしで全てグラフィック描画処理で済ませようと思うので、
円の中心の座標とかタッチ入力の判定とかも少し書かれています。

問題はAndroidアプリの仕組みを理解していない節があるので
そこを勉強するのにあと半年くらいかかりそうだなー、なんて。


モジュール別にVBAプログラムをあげるのでラベルからもしくは以下からどうぞ。
module1
module2
module3
module4
module5
module6
module9(※9であることに注意)

Windowsプログラミングによるオセロ(構造としては完成系のつもり)

0 件のコメント:

コメントを投稿