« 1ヶ月もあっというまで。 | トップページ | ○×ゲーム改良 »

2005/01/06

○×ゲーム作成

今日は久しぶりにC言語を集中してやりましたよ
なんと午後1時くらいから夜9時まで。
かといってテキストを読み進めてたわけじゃなく自分オリジナルのプログラムを作ってみようと挑戦してみたんですよ
一応内容は考えに考えて簡単そうな○×ゲーム。3×3マスの盤に○と×を書いて3つ並んだら勝ちというゲームですよ。
作ったってだれがやるんだと。まぁそこは突っ込まないで下さいwCの勉強の一部ということにしておきますw

一応午前中は三国無双をまたやってたんですけど、さすがに昨日も結構やってたんで飽きました。
三国無双の攻略ホムペはおそらく完成しないで終わるだろうと予想しながらPCに向かいCの本をよみながらちょっとお勉強。
しかしまたすぐに飽きるOTL
ということで思いついたのがオリジナルのプログラムを作ってみること。どうせ暇で時間もたっぷりあるんで挑戦してみました
案の定大苦戦。なんたって自分のオリジナル作品はいまだ何も作ったことがないのでいろいろ試行錯誤を繰り返しました。
まず苦戦したのが勝ち負けの判定を作ること。
人が紙と鉛筆を持ってやっているなら見れば勝ち負けは自然とわかります。だけどコンピュータでは見て判断するということができないんですよね。
なので判定は数に置き換えて判定しなくちゃいけません。
この数に置き換えるという作業だけでかなり時間使いました^^;
結局たどり着いた答えがすべての勝ちパターンを考えて毎回それと一致しているか調べる方法。
今回は8パターンだけなんでそんなに多くないから楽だったんですけどこれが9×9だったらどうするんだろう・・・。
とにかく3×3ならこれでいいやと思って判定はクリア。
次にぶつかったのはグローバル変数。
なんとなくすべての関数を別々のファイルに書いていたんで、メイン関数以外が使える変数はそれぞれの関数で定義したものか引数しか使えなくてすべての関数で使える変数はどうやって書いたらいいものか。それがわからずまたしばらく試行錯誤。
結局これも関数をすべて同じファイル上に書き込むという方法で解消。
解決法がめちゃくちゃなのは気にしないで下さいOTL一応自分なりに試行錯誤したんですよ><;
一応これで一通りは完成。
かといってGUI(グラフィカルユーザーインターフェイスと言うらしい。)は作れるわけじゃないんでコマンドプロントでしか使うことはできません。
つまり文字のみですよ。
マスに対応した数字を入力してそこに○と×を交互に書き込んでいくものです。入力ごとにすべての勝ちパターンと照らし合わせてもし○か×がそれに一致するものがあれば入力を終了してどっちが勝ったのか判定。
まぁそれだけなんですけど、それだけで作るのにかなりの時間かかりましたOTL
まぁ本を読み進めてるだけだとかなり飽きてくるのでたまにはこういう風に作ってみるのもいいかなぁと。
なんかコンソールのプログラムだと気分悪いんで早くGUIのプログラムを作りたいですね・・・。
GUIのプログラムを作れればかなり「プログラミング!」みたいな感じがしていいんですけどねぇ。
そこまで到達できるようがんばりたいと思います^^
今日は○×ゲームを作っただけで1日消費しちゃいましたよ^^;
C言語のお勉強はいっこうに進む気配がないですOTL

一応○×ゲームアップしてみます。
こんな感じのものを作ってみました。かなり暇な人は使ってみてやってください^^;
zip圧縮です。exeファイルだけなんでかなり軽いです。コンソールですし・・・w
marubatu.zip

« 1ヶ月もあっというまで。 | トップページ | ○×ゲーム改良 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: ○×ゲーム作成:

« 1ヶ月もあっというまで。 | トップページ | ○×ゲーム改良 »