« イベント | メイン | インベイダー »

2005年01月31日

インベーダー改め「仕様書という物がよくわからない」

というわけでC言語で作っておきたい物第一弾、インベーダーゲーム。
まともに遊べるゲームを一つでも作っておきたかっただけです。

今回は張り切りました。
http://misp.s4.xrea.com/b/mydata/invader_prt.c.txt
このように仕様書のような物も書いて準備万端です。
細かいコードの部分も文章にする時点で大体イメージできたので、後はひたすら書くのみ。
目新しい事は特にしていませんが、今までの経験とコード(じゃんけん→ブラックジャック→五目並べ→逃げ撃ち)を使いまわして早めに完成させたいです。
上のファイルを見ればわかりますが、
http://misp.s4.xrea.com/b/mydata/escape_and_shoot.c.txt
と殆ど同じです(笑)

#小学生が作る程度のプログラムだとか言われても泣かないっ

P.S.
仕様書ってよくわからないんですが、関数と変数を並べるって事でこれでいいんでしょうか?>C.S.氏
まあ、ちょっとコードも入っちゃってますが(笑;

投稿者 miff : 2005年01月31日 01:51

コメント

コードの書式とか外部仕様内部仕様っていうコードを書く以前のレベルのことを書かないといけないんだぞ。
仕様書をきちんと書くんだったらまずそこからやらないとあかんね。コード先に書き降ろしちゃったら仕様書の意味ないもん。仕様書の目的は『他の誰が見てもそれを見て同じプログラムが作成できる』だし、いきなりプログラム出されても困るってゆーか。
アルゴリズム関係は先にみふが書いたコードを書き出せば問題ない。
もっときちんとしたこと書きなさい。

投稿者 C.S : 2005年01月31日 02:30

そこまで細かい事は書き方わからないなあ。
やっぱり大規模開発とかになると使う変数を全部先に書き出すとかやらないと混乱するのかな。
でも、コードの事考えずに全変数を書き出すって凄く無謀な気がするのだけれど。
それならと、コードをまず書いてみて変数一覧を出すんだったら事前に仕様書は作れないし、

んー、関数一覧はこれでいいとして、
その内部で使う変数全部書き出せばよいのかね。

http://www.ken3.org/vba/doc_unit.html
http://www.st.rim.or.jp/~k-kazuma/SD/SD600.html

上のテキストに現在載っている情報は
・グローバル変数一覧
・構造体定義一覧
・関数とその機能の一覧(引数、返り値のデータ仕様付)

なので、残るは変数一覧だけかな。
シゲンは変数一覧をコードに書き起こす前にどう作った?
やっぱりどのようなコードを書くか想像しながら?

でも、個人的にグローバル変数はともかく、
関数の入力と出力の仕様がはっきりしているなら内部の変数(ローカル変数)は関数毎に適宜割り振ればよいと思うのだけれど。

#コード形式にしてあるのが見苦しいのだろうか
#でも、これってほとんど定義しか書いてないから前に聞いた仕様書のイメージ通りなので戸惑い(定義一覧)
#initialize関数の内部を勢いで書いてしまったのが不味かったのだろうか

てか、コードの書式ってなにさー
やっぱり仕様書ってよくワカンナイ

投稿者 miff : 2005年01月31日 02:52

というわけで、
http://misp.s4.xrea.com/b/mydata/invader_prt2.c.txt
初期化部のコードを説明に変更、一部に補足説明

これでダメ出しされたら仕様書の書き方の本を図書館で借りてきて勉強する事にしますよ。

ここがダメなのかなと予想する点(多分ダメ出し入るし)
・関数や変数の名前が既に定義されている → 定義されていた方がいいと思うけど。後で再利用するとかあるかもしれないし
・関数の説明がコメントになっている → コードっぽく見えてだめなのかも
・定義一覧の順番が実際のコードと同じ → コードっぽく見えてだめなのかも
・グローバル変数や構造体宣言、関数宣言が実際のコードと同じ → コードっぽく見えて仕様書として成り立たないのかも
・コメントが足りない → 当社比3倍にしないとだめとか。でも、あんまりごちゃごちゃ書くとコード書くのと一緒になると思う
・グローバル変数使っちゃダメ → 勘弁して下さい
・必要な情報が全然足りない → やっぱこれですか

コードの書式ってインデントの仕方とかブラケットの位置とか、ifと(の間に半角スペースを入れるかとか、そんな物?……なわけないか。ふざけすぎた

==
寝る前に書くと量が多くなるのは仕様です。
仕様書は書けないけど仕様です。
偉い人にはそれがわからないんです

いや、真面目に今現在目に見えている範囲の技術の中で最大の謎です>仕様書

投稿者 miff : 2005年01月31日 03:08

ああもう、コメント三連投とかありえない。
これなら仕様書で一個日記増やせばよかった。

外部仕様書ってあれですよね、プログラム全体への入力に対する出力がどうなるかって事ですよね。
今回のなら自機を左に動かすにはどうするかとか。
(むしろどのボタンを押したら左に動くか、かな)
だとしたら確かに足りないな。
内部仕様はこれ以上詳細には書けない気がする&やっぱりローカル変数を一覧にする必要が想像できないんだけど、なんて習った?
(もしくはそれはこちらの勘違いなのか)

http://misp.s4.xrea.com/b/mydata/invader_prt2.c.txt
で、その勝手に想像した外部仕様書を追加。
マニュアルの前段階みたいなイメージで。

参考にしたもの
1.http://www.laplace-lab.org/diary/archives/000010.html
2.http://homepage2.nifty.com/cat-chy/cp/specification.html

投稿者 miff : 2005年01月31日 03:18

|v・)そこでUMLの出番ですよ!!

投稿者 白いぺんぎん : 2005年01月31日 11:12



XREAAD