トップページ⇒tech
634コメント234KB

サクラ大戦 Vol1〜平成浪漫にプログラム〜

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
サクラ大戦を通じ、1からプログラムを学ぶスレです。
初心者が大半なので皆様大目にみてやってください。
0584デフォルトの名無しさん@SNGNG
うちも密かに解析中です。
0585デフォルトの名無しさん@S NGNG
みんな解析とかしてるんだ・・・・・

俺はまったくしてない・・・一番レベル低いなヽ(´ー`)ノ
0586デフォルトの名無しさん@SNGNG
>>585
とにかく本を読もう。
0587デフォルトの名無しさん@SNGNG
あのー。技術的なこととはちょっと離れるんですが、お聞きしたいことがあります。
バイナリエディタでファイルなんかを見てみると

33 FF C7 00 53 57 2E 33 5F 44 44 4C 2E 30 30 31
20 01 03 22 10 00 00 03 08 00 00 00 00 00 00 00
33 D7 B8 BB D7 DE C4 20 B2 A7 CC CF 20 20 20 D9

みたいな感じで並んでますよね?
これを、行ごとではなく列ごとに切り取ったりできる
バイナリエディタはないでしょうか。
一応Stirlingを使っているんですけど、どうも出来ないっぽいので…。

これが出来ると多分DCIファイルの解析に関して
少なくない前進になると思われるので、よろしくお願いします。
0588デフォルトの名無しさん@S NGNG
>>587
質問する時は、あげたら?
荒らされるかもしれないけど、データ逝きも怖いし・・・
0589デフォルトの名無しさんNGNG
行→
列↓
なの?
0590デフォルトの名無しさんNGNG
>>587
自分で作ってみるっていうのはどう?
0591デフォルトの名無しさん@SNGNG
>>589
そうです。
さっき手打ちで一部試してみて、DCで動かしてみたら
予想通りの結果が得られたのでなんとかしたいのですが…。

>>590
ちょっと考えてはみたんですが、サッパリです(w
なんせ参考書籍を熟読したかどうかも怪しいレベルなもので。
txtファイルか何かにコピぺしてむりやりカッコでくくって列挙体にして
16で割った余りで区別する、ってのを考えたんですが
コンマ打たなきゃならないし(w
0592める言語NGNG
>>591
さっきあっちの板に書いたのでヨロシク〜ヽ(´ー`)ノ
0593デフォルトの名無しさんNGNG
静かだ。
0594デフォルトの名無しさんNGNG
はっはっは、見てるよ。
たまにはageようか?
0595デフォルトの名無しさんNGNG
■サクラ大戦〜平成浪漫にC言語〜
http://green.jbbs.net/computer/885/xoxox.html

みんな、気が向いたらここにも足を運んでね
0596める言語NGNG
DCIのセリフ部分解析は進んでないです〜
なんかわかるようでわかんないんですよね。
「ようこそいらっしゃ」の後ろの18 F6がキーになってて、
18はおそらく00011000...次8バイトのランレングスを示し、
F6はオフセットで「い」を指してるんだろうけど…
これじゃ完全に独り言だね。ゴメ
0597デフォルトの名無しさんNGNG
改行や口パクの制御コードじゃないの?
0598める言語NGNG
>>597
口パクやキャラ絵の制御コードかもしれないです。
改行コードはおそらく「//」文終わりはヌル文字です。
0599デフォルトの名無しさんNGNG
>>596
F6 は signed char でみれば -10 だから、
「ようこそいらっしゃ」の最後から 10 バイト前の
「い」を指してるんじゃないの。
0600デフォルトの名無しさん@SNGNG
やば!
今日勉強さぼってしもうた(´Д`;)
0601デフォルトの名無しさんNGNG
これからやりたまえ
0602デフォルトの名無しさん@サNGNG
久々に来たが静かだね。
初心者(私も)の人らは真面目に勉強してるようだ。。。
今日もがんばろっと。
0603デフォルトの名無しさん@SNGNG
やばいよやばいよ!
会社の面接で、大見得張ってしまった・・・・。
ソフトウェアー開発や設計に配属??
今の俺に出来る仕事では決してない!
受かってしまったらどうしよう。

誰にでも出来る軽作業で良いよ・・・・トホホ
0604nanaCNGNG
>>603
それをバネにガンバレYO!(w
0605デフォルトの名無しさん@SNGNG
言わんこっちゃない。
受かってしもうた・・・・。
0606デフォルトの名無しさんNGNG
人生なるようにしかならん
0607デフォルトの名無しさん@SNGNG
あぁぁ!
行きたくない・・・・
0608デフォルトの名無しさん@SNGNG
心配しなくても大丈夫だと思うぞ。
入ってきたばかりの奴に期待なんか誰もしていない。
使える奴が来て欲しいなぁぐらいに思っているはず。
人間関係と理解力に支障がなければ、十分やってけると思うよ。
0609デフォルトの名無しさんNGNG
ガンバレ
0610デフォルトの名無しさんNGNG
>>607
安心しろ。うちにも偶にずぶの素人が回ってくるから(藁
でもその口八丁はSEとしてなら見込みあるぞ!(マジデ
0611デフォルトの名無しさん@SNGNG
>>610
安心しました。
今日ほんとに疲れましたです・・・・
明日は会社全体での自己紹介があります。

なんか鬱だ

でも、みんなありがとう。
0612デフォルトの名無しさんNGNG
http://green.jbbs.net/computer/bbs/read.cgi?BBS=885&KEY=991070689&START=32&END=34

この人かなーり高いスキルの持ち主だ。
0613デフォルトの名無しさんNGNG
>>612
一見ちゃんとしてそうで抜けがある。
tab_stop >=0 じゃなくて tab_stop > 0 だろうし、
コマンドライン引数のチェックがassert()だけってのはまずかろう。

スペースとタブが混じってるときの処理については好みもあるだろうが、
全部一度展開した状態で置換してくれた方が嬉しいかも。
0614デフォルトの名無しさんNGNG
>>613
> tab_stop >=0 じゃなくて tab_stop > 0 だろうし
なんでよ?
0でも処理は出来る。
でもマイナスだと処理できない。
そのタメにやってるのだろ?
"tab_stop must be positive"って書いてあるし。

> コマンドライン引数のチェックがassert()だけってのはまずかろう。
君の目は節穴かね?
0615める言語NGNG
>>614
614さんの言う通り tab_stop の正数チェックは
isdisit_str() の中で数字以外通さないことで行われてるんです…

でも気づいたんですが…32ビットintの限界を超えるとダメみたいです…
assert() で止まりますが…
0616デフォルトの名無しさんNGNG
> でも気づいたんですが…32ビットintの限界を超えるとダメみたいです…
そんなもん気にする必要はないだろ。
0617デフォルトの名無しさんNGNG
>>414
やってみせなきゃ分かんないかな。

$ gcc -D_snprintf=snprintf -DMAX_PATH=1024 -O -o detab detab.c
$ ls
compatwin.h detab* detab.c
$ ./detab -T0 detab.c
浮動小数点演算例外です (core dumped)

$ perl -pi~ -e 's/\bassert\(tab_stop >= 0\b/assert(tab_stop > 0/' detab.c
$ gcc -D_snprintf=snprintf -DMAX_PATH=1024 -O -o detab detab.c
$ ./detab -T0 detab.c
detab: detab.c:109: detab: `tab_stop > 0 && "tab_stop must be positive"'の断定に失敗しました.
中断しました (core dumped)


ユーザが間違った入力したらassertion failed?
usage()出すべきじゃないか?
0618デフォルトの名無しさんNGNG
んーまぁ、なんでも完璧とはいかないものだから、
間違ってたら指摘して直せばよかろ。
0619デフォルトの名無しさんNGNG
>>618
でも指摘してやると逆ギレするのもいるしSA。
0620デフォルトの名無しさんNGNG
GPLとかで指摘して逆ギレするヤシっていないのかな?
0621デフォルトの名無しさんNGNG
間違いというより仕様が曖昧だからだと思うが。
みんなで話し合って決めれば?

まあ普通これぐらいのプログラムじゃ
細かい仕様を決めてどうこうはしないんだろうけれども
練習のつもりでやってみれば?

ちなみに、規模が大きくなると悲惨な目にあう・・・
0622デフォルトの名無しさんNGNG
>>620
聞いたことないけど、そんなやつGPLにしないんでは。
サクラ大戦と関係ないのでsage
0623デフォルトの名無しさんNGNG
たぶんまだ設計だの仕様だのというレベルじゃなくて、プログラミン
グのイロハを覚えてる状態じゃないかな。ここの人達は。

でまぁassert()の使い方を間違ってるとしか思えないんでちょっと書
いてみたんだけど。使い方というのは、入力のチェックをassert()だ
けに任せるという方法論も、assertionの条件というコーディングレ
ベルも含めてね。
0624名無し関数のλさん@assert()らぶらぶNGNG
>>613
0 だとまずいのは、ご指摘の通り。会社帰ってきてから寝る前にチョコチョコっ
と書いたコードなので、テスト甘々ですね。

>>623
> 使い方というのは、入力のチェックをassert()だ けに任せるという方法論も、
それは明確に間違いだよね。assert() はあくまでデバッグ用、プログラムの
ロジックミスを捕まえるために使うもので、実行時に assert() に失敗するの
は、コードにバグがあるという意味に他ならない。

でも、今回は

 assert() 埋めといて良かったでしょ? ほら、バグだって分かったし。

という事例では、あるかな。
0625デフォルトの名無しさんNGNG
>>624!=614だったのか。わりっす。
同意。
0626デフォルトの名無しさんNGNG
0627デフォルトの名無しさん@SNGNG
みんな元気かい?
0628める言語NGNG
うい
だいぶペゾルド本で腕を鍛えたよ(w 中身はまだ全然だ。
0629デフォルトの名無しさんNGNG
最近レポートで死ぬほど忙しかったが、やっと少し暇が出来た・・・。
ペゾルド本って何ですか?>める言語さん
0630629NGNG
あ、検索したらわかりましたすいません。
0631デフォルトの名無しさん@SNGNG
>>629
ゆっくりやろう。
寿命まっとうするまであと50年以上はあると思うから(´Д`;)
0632デフォルトの名無しさん@SNGNG
4も出ることだし頑張りませう
0633デフォルトの名無しさんNGNG
映画も出来ることだし頑張りませう
0634デフォルトの名無しさんNGNG
■サクラ大戦〜平成浪漫にC言語〜
http://green.jbbs.net/computer/885/xoxox.html

みんな、気が向いたらここにも足を運んでね
■ このスレッドは過去ログ倉庫に格納されています