トップページgamedev
462コメント164KB

○○とゲームプログラミング Rev 3.0.0

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/02/01 20:56ID:UHX0VJ3U
 「OOとゲームプログラミング」から派生したスレです。
 OOも含め、ゲームプログラムの制作に関わる様々なトピックを
語りましょう。

 単なるC++でのクラスの書き方から、設計やパターン、制作手法
まで守備範囲広し。

過去スレ:
OOとゲームプログラミング Role2
http://pc2.2ch.net/test/read.cgi/gamedev/1067458051/

OOとゲームプログラミング
http://pc2.2ch.net/test/read.cgi/gamedev/1005144931/
0380名前は開発中のものです。04/03/30 01:20ID:fcRSAwJm
iterator(pointer _Ptr): const_iterator(_Ptr) { // construct with pointer _Ptr }
iterator begin() { // return iterator for beginning of mutable sequence
return (iterator(_Myfirst)); }
reference operator[](size_type _Pos) { // subscript mutable sequence
return (*(begin() + _Pos));}
iterator operator+(difference_type _Off) const { // return this + integer
iterator _Tmp = *this; return (_Tmp += _Off); }
iterator& operator+=(difference_type _Off) { // increment by integer
this->_Myptr += _Off; return (*this); }
reference operator*() const { // return designated object
return ((reference)**(const_iterator *)this); }
const_reference operator*() const { // return designated object
return (*_Myptr); }
reference operator[](size_type _Pos) { // subscript mutable sequence
return (*(begin() + _Pos)); }
0381名前は開発中のものです。04/03/30 01:20ID:fcRSAwJm
iterator begin() { // return iterator for beginning of mutable sequence
return (iterator(_Myfirst)); }
iterator(pointer _Ptr): const_iterator(_Ptr) { // construct with pointer _Ptr }
const_iterator(_Tptr _Ptr) { // construct with pointer _Ptr
_Myptr = _Ptr; }
iterator(pointer _Ptr) : const_iterator(_Ptr) { // construct with pointer _Ptr }
iterator begin() { // return iterator for beginning of mutable sequence
return (iterator(_Myfirst)); }
reference operator[](size_type _Pos) { // subscript mutable sequence
return (*(begin() + _Pos)); }
iterator operator+(difference_type _Off) const { // return this + integer
iterator _Tmp = *this; return (_Tmp += _Off); }
iterator& operator+=(difference_type _Off) { // increment by integer
this->_Myptr += _Off; return (*this); }
reference operator*() const { // return designated object
return ((reference)**(const_iterator *)this); }
const_reference operator*() const { // return designated object
return (*_Myptr); }

以上。
0382名前は開発中のものです。04/03/30 01:27ID:OjGk+Cgx
実際にどういうアセンブラに落ちるか確かめてみた?
0383名前は開発中のものです。04/03/30 01:28ID:fcRSAwJm
>>375

>で、オレは最適でないのは承知の上で楽だから使ってるよ(別にキモイとかどうでもいいし)。
>クリティカルな部分だけ特別に最適なのを作る(ちうのは普通の最適化戦略だが)。

だね。オレもそう。STLの問題点がわかってりゃ適材適所で使いこなせるってことだな。
0384名前は開発中のものです。04/03/30 01:32ID:NFwNOG+I
みんな最適化で殺ぎ落とされる部分じゃん
マルチスレッドで使うとロックコードが入るだけ。
0385名前は開発中のものです。04/03/30 01:35ID:OjGk+Cgx
全部インラインになって最適化されるとかなり効率的なコードになるってのが
templateの利点のひとつだしね(メタプログラミングというのか?)

STLなんかも、もろコンパイラの最適化前提。
0386名前は開発中のものです。04/03/30 01:37ID:fcRSAwJm
>>382

自分で調べてみなって。上のCコードどおり最悪なことになっているから。
ちなみに普通の配列だったら4stateくらいで済む話です。
0387名前は開発中のものです。04/03/30 01:39ID:OjGk+Cgx
>>386
いや、調べてみていってるんだが。
最適化を掛けなきゃすごいことになったが、掛ければ配列と変わらなかったけど。
ちなみにgccの-O2で確認。
0388名前は開発中のものです。04/03/30 01:42ID:F14WhfVI
>>379
おつかれさまでした。
ちなみに、STLportのHEADでは、

reference operator[](size_type __n) { return *(begin() + __n); }
iterator begin() { return this->_M_start; }
_Tp* _M_start;

以上(@stlport/stl/_vector.h)でした。
そういうことなので、貼っていただいたモノはSTLのオーバーヘッドの具体例とはいえませんね。
おそらく、「中途半端な理解による誤解」でしょう。
STLportの使用をお勧めしますよ。
0389名前は開発中のものです。04/03/30 02:45ID:fcRSAwJm
連続投稿とかいわれてかきこめねーよ。

>>385
>全部インラインになって最適化されるとかなり効率的なコードになるってのが
>templateの利点のひとつだしね(メタプログラミングというのか?)

templateの利点?実行コードの話だよね?
効率的なコードになるのはinlineの利点であって、templateとは関係ないが。
templateはむしろ、複数の実体が生まれるっていう副作用以外、コード効率への影響はない。

>>387
>掛ければ配列と変わらなかったけど。
それはありえないね。

>>388
それじゃまだ甘い。まず+オペレーター部分が抜けてるでしょ?
そして+オペレーターから更に続くわな。
その字面通りだったら、char型でもない限り、まともにアドレスとれないよ。
トレースしてみ、ほかにも呼ばれるものがいっぱいあるよ。
字面ほど単純じゃないのがSTL。

0390名前は開発中のものです。04/03/30 02:52ID:JHyHUQlW
>>掛ければ配列と変わらなかったけど。
>それはありえないね。
・・・こいつには何を言っても無駄かと。
久々に真性のヴァカを見たよ。
0391名前は開発中のものです。04/03/30 03:09ID:F14WhfVI
>>389
あーすいません。抜けてましたね。
typedef valute_type* iterator;
typedef valute_type& reference;
ということで、続く + も * も、共に組み込み演算子ですよ。
0392名前は開発中のものです。04/03/30 03:22ID:TrwYR1M1
>その字面通りだったら、char型でもない限り、まともにアドレスとれないよ。

えっと、Cの基本が全く分かってない人ですか?
0393名前は開発中のものです。04/03/30 06:37ID:NUfc9Rms
; 14 : int& r = vInt[idx];

00000a1 00 00 00 00 mov eax, DWORD PTR ?idx@@3HA ; idx
000058b 0d 04 00 00
00 mov ecx, DWORD PTR ?vInt@@3V?$vector@HV?$allocator@H@std@@@std@@A+4
0000b8d 04 81 lea eax, DWORD PTR [ecx+eax*4]

; 15 :
0394名前は開発中のものです。04/03/30 07:04ID:SghGZQph
お前ら釣られすぎ
0395名前は開発中のものです。04/03/30 07:29ID:rluXyNAm
重要
・間違えても言い訳はせず、素直に認めることは大切。
・あり得ないと決めつける前に、自分で確かめることも大切。
0396名前は開発中のものです。04/03/30 09:44ID:DwcoFR6t
双方とりあえず汗コード載せろと。
0397名前は開発中のものです。04/03/30 09:56ID:OjGk+Cgx
>>389
>効率的なコードになるのはinlineの利点であって、templateとは関係ないが。
型の安全性を保ちつつマクロのようなことが出来るという意味で、両方だよ。
テンプレートメタプログラミングって聞いたこと無い?
(そして、そこがC++の汚さなわけだが。。。)
0398名前は開発中のものです。04/03/30 13:17ID:NFwNOG+I
>>393
そのうちシンボルの長さの分非効率って言い出すからよろしく
0399名前は開発中のものです。04/03/30 16:17ID:DlN5YGl1
(((( ;゚Д゚)))ガクガクブルブル
0400名前は開発中のものです。04/03/30 17:58ID:K6BdNsKi
自前実装の有利さは移植したときに発揮されるよ。
おまえら知らないかもしれなが、STLがサポートされてないCPPがアルンデスヨ。
0401名前は開発中のものです。04/03/30 18:07ID:DJnJzXcX
>>400
世の中には malloc も無い C コンパイラもあるが、
そこら辺、どうよ?
0402名前は開発中のものです。04/03/30 21:00ID:OjGk+Cgx
Cコンパイラも無い環境はどうしますか?
0403名前は開発中のものです。04/03/30 21:02ID:HrX2ydbg
昔はそれが普通だった
0404名前は開発中のものです。04/03/30 21:29ID:OjGk+Cgx
つまり、移植性を高めるためには、Cすら使わずに書かなければならない、と。



・・・・あれ?
0405名前は開発中のものです。04/03/30 22:01ID:se3a2dch
おいらの場合、STL使ってるけど、極端に使い込んでるわけではない。
list map vector 程度だし、使ってるメソッドもごく一部。
それらを網羅するだけのテンプレートなら、自作してしまったほうが
なにかトラブルがあったときに対処しやすいかも。

パチンコ系の仕事だと、メモリ少ないし、C++は使えるけどSTLは
使えないなんて環境がザラなので、自作するですよ。
ま、昨今のPS2の3Dゲーが普通な世間についていけなくてスピンアウトした
負け組みな自分の意見など参考にならんかもしれんけど。

でも、ゲーム用途で使用するSTLのメソッドなんて、やはり片手で
数えれる程度なんではないでしょうかねぇ?

標準でSTLが添付されているなら迷わずそちら使うんですけど
0406名前は開発中のものです。04/03/30 22:29ID:yJ2AWd9P
windows系のゲーム開発ならSTL使っても全然問題ないかな?
0407名前は開発中のものです。04/03/30 23:07ID:NFwNOG+I
問題はWindowsかどうか(リソースがたくさん取れる環境か)ということじゃなくて
使う人間がどうか、どんなゲームを作るつもりなのかの方が何十倍も影響する
0408名前は開発中のものです。04/03/30 23:30ID:OjGk+Cgx
んなアホな。
0409名前は開発中のものです。04/03/30 23:53ID:S0+3h4vN
ここ見てると、STL=テンプレートベースのコンテナ集
みたいな見方しかしてない椰子がたくさんいるような気がするのは
俺だけなのだろうか
0410名前は開発中のものです。04/03/31 00:27ID:TBla2Lpv
>>409
ぜひ、そうじゃないと言う意見を教えて欲しい。
実際のところコンテナ集程度の認識でしか使えていないので・・・
0411名前は開発中のものです。04/03/31 00:54ID:M1X+QNGk
STLにしても、mallocにしてもゲームじゃ普通に自前で書くだろ。
でもって、状況判断して、標準・自前・使わないを使い分ける罠。
キモいiteratorの自作は結構楽しい罠。
0412名前は開発中のものです。04/03/31 01:19ID:+fu0vwNy
>>410 <iterator> <algorithm> <functional> <utility>
0413名前は開発中のものです。04/03/31 01:24ID:Z6BWvJ0t
>>412
それらは全部コンテナと関連してる気がするが…
0414名前は開発中のものです。04/03/31 01:30ID:Fr8obNGJ
コンテナと関連はしてるけどコンテナ集じゃないでしょ。
ただの配列とかにも適用できるんだから。
0415名前は開発中のものです。04/03/31 01:57ID:a/n+QxhN
んでもって、そこがSTLの(ジェネリックプログラミングの)一番キモいとこだな。
bind系なんて見てらんない。
0416名前は開発中のものです。04/03/31 06:07ID:FcWrDhbd
コンシューマは大変ですね
プログラマさんの日記見てても、いちいちアセンブラに落として比較してたり、
よくそんなことやってるな、と
なんでもかんでも自作したり、ミイラ取りがよくミイラにならないか不思議です。

PCだと、軽くプロファイルとって大抵はそのまま終了だからなー

このスレみてると自分はなんて恵まれてるのかと思えてくるよ
0417名前は開発中のものです。04/03/31 07:52ID:MuVgpOUO
>410
STLはただのコンテナ集ではない
データ構造とアルゴリズムの汎用化を実現した(正確には目指した)ライブラリと捉えるべき
0418名前は開発中のものです。04/03/31 09:07ID:y4QIV3kN
>>417
でも、使いときの認識はコンテナ集なんでしょ?
0419名前は開発中のものです。04/03/31 09:43ID:MuVgpOUO
>418
わかってない子だね
STLのアルゴリズムは、STLに含まれてる標準コンテナじゃなくても
自作のコンテナや、プリミティブな配列にも適用出来るんだよ

自分の考えでは
狭義のSTL: データ構造・アルゴリズムなどを含む標準「ライブラリ」
広義のSTL: 汎用的なデータ構造・アルゴリズムを使う際の「プロトコル」
ちょっと無理あるかもしれんガナ
0420名前は開発中のものです。04/03/31 09:53ID:OpdTWfT0
>>416
俺もPCだけだけど、どんなC/C++コード書けばどんなアセンブリコードが出てくるかは
だいたい把握しとくもんだと思うけど。
>>379見てちゃんと配列同様のコードに落ちるとか予測できるくらいにはさ。

別に四六時中アセンブリ出力眺めるわけじゃなし、ちょっと地ならししとくだけで、
リーズナブルなコードを吐くC++コードを自信を持って書けるんだから。
プロファイル取って遅かったら原因は100%アルゴリズムなわけだし。
0421名前は開発中のものです。04/03/31 10:26ID:uLEtiF6X
>>420

>>>379見てちゃんと配列同様のコードに落ちるとか予測できるくらいにはさ。


>>379って、オプティマイザで本当に、>>393になるの?
それはそれで凄いコードだよね。

それはいいとして、
The insertion (called inline expansion or inlining) occurs only if
the compiler's cost/benefit analysis show it to be profitable.
Inline expansion alleviates the function-call overhead at the
potential cost of larger code size.
ってあるように、コンパイラのコスト/利益 分析次第で展開もされる
こともされないこともあるってことで、完全に処理系(オプティマイザ
オプションも含め)依存だよね?
もしコンパイラがインライン展開がコストに合わないと判断すれば、
>>379になっちゃうんだよね?
0422名前は開発中のものです。04/03/31 13:31ID:tl4psRQX
まあいまどきはgcc派生だろうからそこまで心配しなくても良いとは思うがね。
STLでダメだったら自作ってのが一番無難な流れなんだろう。

つーかSTLっつーかテンプレート使えないCPPが(略
0423名前は開発中のものです。04/03/31 14:03ID:4g/JLZH/
>>418
型があっていさえすれば相手はコンテナである必要はないよ
0424名前は開発中のものです。04/03/31 14:05ID:ympu7JaO
俺やお前らが、こうしたらいいのにーなんて思う最適化は
ふつーにやってくれる罠。
VC++のthiscallでは、thisポインタはECXに保持されるのだが
昔それを知らないで、「mov eax, this」と
eaxにthisポインタを持たせたプログラムを書いたことがあるが
最適化で見事にeaxが全部ecxにすげ替えられてた。
0425名前は開発中のものです。04/03/31 14:48ID:UG6lMDIi
>>419
どっちにしてもそれで設計が変わることはないし
別に何が便利になるわけでもないんでしょ?
ささいな問題じゃん。
0426名前は開発中のものです。04/03/31 15:49ID:/9tI2d5J
というか、STLのアルゴリズムは激しく使いにくい。
beginとendでsortするくらいならいいけどさ…。
0427名前は開発中のものです。04/03/31 17:03ID:tl4psRQX
>>424
MSのコンパイラは最高峰だろ・・・。gccの10倍はがんばってる。
0428名前は開発中のものです。04/03/31 17:56ID:6I5K9MaL
> >>379って、オプティマイザで本当に、>>393になるの?

疑う前に試してみなさいって。あんなもんがちゃんと最適化されないコンパイラあったら
俺はベンダに殴りこみかけるぞ。マジで。
0429名前は開発中のものです。04/03/31 18:27ID:uLEtiF6X
>>428

そうかぁ。オレのは.NET Standardなもんで、オプティマイザーを
かけられない。なんかいじるとオプティマイザーをアンロック
したりできないかな?やっぱ安物買いの銭失いだったか・・・。

0430名前は開発中のものです。04/03/31 19:46ID:xfT1ucaD
>やっぱ安物買いの銭失いだったか・・・。
まぁ、今のCPU性能ならよっぽど変なことやら無い限り問題ないんじゃね?
問題が出てから買い換えても遅くない罠。独自実装で最適化でもいいけど。

・・・いや、もし学生なら安いんだから買い換えとくべし。
0431名前は開発中のものです。04/03/31 20:26ID:cW5bYV1S
>>429
試すだけならGCCでもいいんじゃないかと。
0432名前は開発中のものです。04/03/31 20:27ID:Fr8obNGJ
今時はgccも頑張ってますよ
0433名前は開発中のものです。04/03/31 21:10ID:zAAx97UW
86の最適化はかなり良い感じだよね、
大局が分らないと出来ない最適化や、
作った人間には分るがコードからは分らない種の最適化以外は
ほぼ限界までやってくれる。

それに引き換えミップスは・・・・はぅ〜
0434名前は開発中のものです。04/04/02 12:29ID:2mBUdLBh
86のgccはLinuxあたりでもやらない限り使う機会はそうそうないからなぁ。
MIPS系でgccの最適化マズーとか思うのも、使ってるgccが古いせいか。

枯れたハード使ってるんだけど、メーカーのサポートも枯れてるんだよね・・・。
ライブラリリコンパイルすればちょっと速くなったりするんだろうなぁ。
0435名前は開発中のものです。04/04/02 15:27ID:XwPQLthN
Linuxならiccがあるから無理してgcc使うことも無いと思うけど
0436名前は開発中のものです。04/04/02 16:13ID:mDXRLNzu
iccって86だけでしょ?
0437名前は開発中のものです。04/04/02 22:26ID:XwPQLthN
>86のgccは
0438とむ ◆0MTMwDpCZo 04/04/03 00:46ID:+YdMve5N
サーバ移転してたんだね…。気づかなかった。
0439名前は開発中のものです。04/04/03 14:43ID:JoOhSfAZ
雑談スレじゃねーぞ
0440名前は開発中のものです。04/04/03 16:08ID:cZ8XjzeD
たいして意義があるスレでもないので案外大丈夫。
0441名前は開発中のものです。04/04/03 19:50ID:JoOhSfAZ
コテ叩きスレだろ?
コテが出たからとりあえず叩かないと。
0442名前は開発中のものです。04/04/04 12:22ID:fUh7k35d
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < 次の話題まだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  愛媛みかん  |/
0443名前は開発中のものです。04/04/05 11:57ID:tvjF7st4
設計とコーディングわけてるところってある?
企画レベルじゃなくて、実装レベルで。
0444とむ ◆0MTMwDpCZo 04/04/05 12:07ID:PeFkqqFu
「自分のところはこうやってる」と書かないと、物凄い叩かれるよ(笑)。
(過去ログ参照)

と冗談はともかく、私はやってませんねえ。知り合いにもやってる人はいなさそうです。
やってるところあるのかな?
0445名前は開発中のものです。04/04/05 13:53ID:405E+F+V
〜どうやってます?
〜をやってますか?

違いが分からないのね。
044644304/04/05 14:08ID:tvjF7st4
やってたらやってる書くよ。やってないのは当然と思ってたんだが、伝わらないかね。
0447名前は開発中のものです。04/04/05 14:37ID:JfH7Iid3
お前ら皮肉かどうか判断しろよ。
0448名前は開発中のものです。04/04/06 01:13ID:74EelaZT
え?設計ってコーディングの後にするものじゃないの?
いや、ゲームじゃなくて業務系の話だけど。
0449名前は開発中のものです。04/04/06 06:57ID:mn+0E41T
>>443
ねーよ。
0450名前は開発中のものです。04/04/06 13:40ID:93ZP4DyK
コーディングの後に来るのは仕様書だよ
0451名前は開発中のものです。04/04/07 01:03ID:jriFoG45
そして仕様書を作るフェーズが「設計」です。
0452とむ ◆0MTMwDpCZo 04/04/07 01:07ID:NmN8J3sr
つまり、

コーディング→設計→仕様作成

という手順ですね。
0453名前は開発中のものです。04/04/07 01:30ID:jriFoG45
ゲーム開発にちゃんとした仕様書も設計もないのは
・コロコロかわる仕様
・メンテが必要ないため詳細な文書化は要らない
・(人数的に)それほど大規模ではないプログラム
あたりが理由かな?

・・・とか言う俺は448
0454名前は開発中のものです。04/04/07 11:52ID:BinLy9dj
食いつき悪いな。大手だともうちょいマシなんだと想像して
おまいら、オレは中小の小規模開発チームプログラマーと素人ってことで。
0455名前は開発中のものです。04/04/07 20:07ID:3B62Dtqw
大手でも仕様・設計・コーディング手順の逆転状況は似たようなモンだよ
むしろ中小の方がそんな余裕のある事をしていると破産するからマジになってやっていたりする。
0456名前は開発中のものです。04/04/08 10:46ID:nojP3/0w
>>453

その調子で作るからネトゲがぐだぐだになるのね。
0457名前は開発中のものです。04/05/25 13:28ID:0G9kqbAy
このスレ、タイトルが面白そうでみてみたけど
ひどいインターネットで残念でした。
0458とむ ◆0MTMwDpCZo 04/06/05 05:16ID:0CVEUvwA
参ったね。
0459名前は開発中のものです。04/06/10 12:26ID:uENymUVu
おわっとるな。
マ板のゲPGスレに移動したのか?
0460名前は開発中のものです。04/06/12 13:29ID:x9gTzJwH
そうかもな。たいして実りがあるスレじゃないしな・・・。
0461名前は開発中のものです。04/11/12 19:31:12ID:RslvAHC/
プログラミングはゲームです
0462名前は開発中のものです。2005/10/28(金) 12:52:55ID:MInZsEGf

=、,-、  、ヽ、 \>   ,,  '''\ _
メ゙ヽ、\ ̄""" ̄--‐   、 \  /ゝ、\
=─‐\\‐  /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、        / ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\      | クラス名を言え
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、   < どんなクラスでもインスタンス化してやる
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ,    |
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、  \_____
二─二二彡彡、゙、三三二==くメゝ/   ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/::  AV   \''-、メメゝゝゝ_ゝ 、 ,,、ヽ
、  ,,,,- ゙彡//ヾ、三二= くゝ/:::....      \>∠レ-,-‐ニ二メヽ''ヽ ノ
 ゙ヽ、,,,-‐//_///,,、゙、三二=  ゙、 ""'''      ヽ>//レレヽ,,___  /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ.         //-ヘヘ,、 レレレレノ
''"      ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,//    ゙ヽフ/|/| レ'
      /ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_   ̄"'ノ
     /メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、  >---''"
    /ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
   /ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ  /  /   /    ゙ノ\、\
   /ゝゝ| / /メヘヘヘヘヘヘ/'" |  /  /  /    /  \\
  /ゝ /|‐/ /フヘへヘヘヘ/∧  /-'"-'''"__,,-''"    /     /、\
 //|_| /./へへへヘヘ、// |/      \_,,,,-‐'"    /  ゙、.゙、

13 名前: 以下、名無しにかわりましてVIPがお送りします [sage] 投稿日: 2005/10
■ このスレッドは過去ログ倉庫に格納されています