« 日記 | メイン | ログアウトonline »

2004年11月26日

日記

C言語はテキストを二つほど進み。

 一つ目は暗号化という題材でファイルの入出力とポインタ。
もう一つは瓶取りゲームという題材でターン制ゲームの基本的な仕組み。
 
 暗号化の方は、キーにした文字列の文字を一文字一文字数値として元データとの和を求める……みたいな方法で。
まあ、ちゃちぃ暗号なので本題はポインタの理解とファイルの扱い。
ポインタ自体はそれほど難しい概念でないように思いますが細かい使い方の輪郭がぼやけています。
ファイルの扱いはPerlとそれほど変わらないようですが、それ用の関数を使わないといけないっぽいのが面倒そうです。
試してないんですがsprintfは標準出力以外へのprintfだと聞いたのでこれ使ってできないかな……。
できたら便利だと思うんですが。

 瓶取りゲームはそのまんま瓶取りゲーム。
あまりに単純な仕組みでしたが、ターンの交代を
bin:瓶の本数 p_turn:プレイヤーのターンかどうかのフラグ として
for(; bin > 1; p_turn = !p_turn)
と、ループの最後にフラグを反転させるのに否定を代入するのはなるほどと思いました。
後はじゃんけんゲームの応用でできたのでCでのゲームっぽいゲーム第一号がここに。

http://misp.s4.xrea.com/b/mydata/bin.c
http://misp.s4.xrea.com/b/mydata/bin.exe

 終了時に何も待機処理をしていないのでコマンドラインからでなければ勝ち負けの表示を見る暇も無く終了してしまわれます。
ソースの汚さはいつも通り。
特にこれはなんだかもういいやーって思っちゃったので関数とかも使ってません。
嬉しがりなのでいつもはやるんですが。

 次回はいよいよこのテキストで始めて自作関数の話が出てくる章です。
題材はカードゲームのブラックジャック。
実際のところ関数の基本の基本の基本は大体わかったつもりです。
値の渡し方、返り値、スコープ、など。

 しかし、関数化とかDLLとか分割コンパイル(でいいのかな)など色々と処理を機能で分けるやり方はCで既にあるようなのに、
それとは全然違うというオブジェクト指向というのはどんな物なのでしょう。
BASIC(GOSUB,RETURN)やらPerl(Cに似ていたと思う関数)やらやってきてここでそんな事言われても想像も付きません。
そしてオブジェクト指向を名乗る本をちらっとめくってみましたが、現実にある機能を元にする考え方とかいって自動車の絵が書いてありました。
エンジンやらバンパーやらミラーやらにわけて考えるのがオブジェクト指向……って、関数とどう違うのかがわからなーい!

 まあ、Cをある程度理解したらC++をやってみて何とか物にしたいです。
なんだか世の中オブジェクト指向が大流行ですしやった方がいい気がする。
もっとも、本質は自分がやりやすいようにやるべきなんでしょうけどね。
一番の原動力って自力でやると面倒な処理をコンピュータに代わりにやらさせるという根本的な部分だと思うので、
多くの人がオブジェクト指向というからにはきっとCの考え方(が何かまだよくわからないというかオブジェクト指向がわからないと対比できないですが)よりもやりやすい物なのでしょう。

と、夜中に文章書くと無駄に長くなっていけませんね。
MoEで銃がゴミになっちゃったんですよ……。
魔法使い+銃撃士ってちょっと憧れていたので出航直後に船が座礁した感じです。

投稿者 miff : 2004年11月26日 03:48

コメント



XREAAD