トップページgamedev
1001コメント390KB

ゲームにおけるデータ構造・クラス設計・パターン

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/08/10(木) 20:27:06ID:BnvyxuCB
具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。

関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
0430名前は開発中のものです。2007/07/19(木) 00:38:54ID:PDuVn1ka
>>429
だよな多分
0431名前は開発中のものです。2007/07/19(木) 05:21:01ID:5YEt12VO
getterとsetter作って、アクセス管理するくらいしかやったことねえや
触らせたくないなら、関連クラスからのみアクセスとか(C++ならfriend?)

それ以上ってコストかかりすぎねえ?
0432名前は開発中のものです。2007/07/19(木) 11:40:10ID:LxxDZCLh
少人数・小規模製作でアクセス制限も糞もないわな
0433名前は開発中のものです。2007/07/19(木) 15:01:29ID:3ArgKadV
少人数小規模だろうが、
開発期間中に、年単位で空白があったコードを読むこともあるわけで。

そういう場合は、アクセス権は考えといて損はねーですがよ。
0434名前は開発中のものです。2007/07/19(木) 18:50:40ID:TacCeKvZ
アクセス権?になってくるとまた話が変わってきちゃうんだが
そんなファイルのパーミッションみたいな機構小規模だろうが大規模だろうがつけたらあかん
というか無駄、損がないというか何の得もない
0435名前は開発中のものです。2007/07/19(木) 18:59:00ID:ajveBJeZ
とりあえず理由を
0436名前は開発中のものです。2007/07/19(木) 19:27:00ID:3ArgKadV
なんでファイルのパーミッションの話になってるんだ
>>432のアクセス制限って、クラスのメンバーに対することで、
>>433のアクセス権ってのもそのことだろ?
04374362007/07/19(木) 19:27:51ID:3ArgKadV
変な日本語になった

正しくは、
なんでファイルのパーミッションの話になってるんだ
>>433のアクセス権って、クラスのメンバーに対することで、
>>432のアクセス制限ってのもそのことだろ?
0438名前は開発中のものです。2007/07/19(木) 19:39:53ID:/RFbeqQb
「使いたいものを使いたいときに即使えないのはうっとうしい」
ということではなかろうか>ファイルシステムの例え話

個人管理のLinuxなんかだと、最初からrootでログインして使う人もいるくらいだから
それはそれで別に当人の自由だと思う。


要はアクセス権限を分ける方がトクか分けない方がトクかは
ケースバイケースで判断すればいいってことだけど
0439名前は開発中のものです。2007/07/19(木) 20:12:33ID:TacCeKvZ
>なんでファイルのパーミッションの話になってるんだ
おまえがアクセス権なんていうからじゃん
0440名前は開発中のものです。2007/07/20(金) 12:39:13ID:vUDuhb3O
スレタイを百回声に出して読んでくれ
0441名前は開発中のものです。2007/07/20(金) 12:40:51ID:vUDuhb3O
ついでに二人とも正座な
0442名前は開発中のものです。2007/07/20(金) 21:52:02ID:+3gqdIHH
難しく考えすぎ。

他のオブジェクトにアクセスして欲しくないメンバは
クラスの中に隠蔽して、プライベートメンバにしておくのがセオリーでは。
アクセス権ってのは本来そうやってコントロールする。

外からオブジェクトにアクセスできるようにしておきながら
アクセスできないように制限する仕組みを作るってのがナンセンス。

0443名前は開発中のものです。2007/07/20(金) 22:07:32ID:lyxTTGt6
「する」「しない」の二択にするという話ならその通りだが
特定の状況でのみ●●に大して××させることを許可するとかいう話なら
ソースレベルで静的に操作するのは困難
0444名前は開発中のものです。2007/07/20(金) 22:32:40ID:+3gqdIHH
動的にアクセス権を与えたいなら、まずは隠蔽しておいて、
状態に応じてアクセスを許すかどうかを決めればいいのでは。
0445名前は開発中のものです。2007/07/20(金) 22:52:28ID:+3gqdIHH
本当にアクセス制御の問題で困っている人が大勢いるなら、
今頃boostにそれらしいクラスが含まれていると思うけどね。

例えばnoncopyableはオブジェクトのコピーを禁止するクラス。
こんなレベルのものでも有用さが認められればboostに仲間入りできる。
http://www.kmonos.net/alang/boost/classes/noncopyable.html

でも今現在boostにアクセス権制御のクラスがないってことは、
需要がないってことでは?

まずはプライベートメンバを使ったシンプルな隠蔽によるアクセス制御で
どこまでできるのか突き詰めてみた方がいいでしょ。
今のところ自分はそれで困ったことはないけどね…。
0446名前は開発中のものです。2007/07/21(土) 00:49:20ID:DMrsrXyJ
ナンセンス。この一語に尽きる。
0447名前は開発中のものです。2007/07/21(土) 01:16:04ID:oWQ5iQEX
progress_displayがあるのにそんなこと言われても説得力無いなぁ

動的にアクセス権決めるならgetter,setterを隠蔽してfunction使ってアクセス権を与えたいクラスに
そのgetter,setterを与えてやるって方法もあるけど
functionは1個で40bytes近く食う割と重たい(?)オブジェクトだから無茶かな、無茶だな
0448名前は開発中のものです。2007/07/21(土) 03:00:31ID:DMrsrXyJ
動的ってことになってくるとそれは普通にインターフェイス呼び出し時の
認証の機能の話になってしまうんじゃ?RMIとかそーいった話の流れ方向での

静的だと外側の構造も知らん一クラスごときが誰に使われるのが良いだ悪いだ
決めるとか何いい気になってんだって話だ

>>443
>静的に操作するのは困難
困難どうこうより、そのポリシーを決める根拠をどこにも求められないということだよ
適当に決めてしまえば後で直せなくなる
根拠がどこにもないから

0449名前は開発中のものです。2007/07/22(日) 02:55:07ID:/VC165Eo
>>443
インターフェースを多重継承して、必要な時・相手にアップキャストしたものを渡せば。
0450名前は開発中のものです。2007/07/22(日) 03:36:44ID:jrExVTdK
簡単な具体例も挙げてくださいお願いします
0451名前は開発中のものです。2007/07/22(日) 13:24:51ID:/VC165Eo
>>450
struct IFoo { virtual Vec3 getPos(); const = 0; };
struct IBar { virtual setPos(Vec3 const& pos) = 0; };
class CPlayer : IFoo, IBar { ... };

f1(IFoo&);
f2(IBar&);

CPlayer player;
f1(player); // f1には getPos() しかさせない
f2(player); // f2には setPos() でメンバ変数書き換えを許可
0452名前は開発中のものです。2007/07/22(日) 15:08:54ID:PSHVXCKb
>>447
functionって40byteも食うの?
その半分くらいですみそうなんだけどな。
0453名前は開発中のものです。2007/07/22(日) 18:59:44ID:jrExVTdK
なるほど、呼び出す側にインターフェースを渡すんですね
参考になりましたありがとうございます。
0454名前は開発中のものです。2007/08/05(日) 01:30:04ID:CiKwXSKt
boost::functionって便利だけどむちゃくちゃヒープが汚くなりそう
0455名前は開発中のものです。2007/08/05(日) 07:10:10ID:4IAfjfpf
>>454
小さなオブジェクトが多数 new されそうって意味? 気にしなさんな。
0456名前は開発中のものです。2007/08/05(日) 07:37:18ID:CiKwXSKt
まあ、それが気になって使ってない、という訳じゃないけどねえ。
アロケータ作れば何とかなるだろうし。
0457名前は開発中のものです。2007/08/05(日) 20:35:16ID:ki20ixME
javaでTCBを使いたいんだけど、どうしてる?
0458名前は開発中のものです。2007/08/05(日) 20:46:45ID:4IAfjfpf
>>457
ふつーにメンバ変数使えばいいだけでは? Task Control Block なんてのは、アセンブリ時代の名残だから、
C++, Java あたりでは使わんでしょ。
0459名前は開発中のものです。2007/08/06(月) 00:04:42ID:Mz0XA0lP
ゲームのデータを独自のフォーマットとかにする場合にヘッダを用意する?
04604572007/08/06(月) 00:40:04ID:wjb80OI1
http://ueno.cool.ne.jp/dinna/topic/task.htm
こんな感じに組みたいんだけど、javaには関数ポインタがないので、引っかかり中。
0461名前は開発中のものです。2007/08/06(月) 00:44:36ID:N/EWx1nS
>>460
まじめに勉強したら?
0462名前は開発中のものです。2007/08/06(月) 00:45:37ID:N/EWx1nS
というかあからさますぎて夜釣りに思えてきた
0463名前は開発中のものです。2007/08/06(月) 02:03:36ID:dDj8AjaH
TCBと言えばRTOSなので
ここはeCosに実装されたwabaを紹介してやるのが筋だろうか
0464名前は開発中のものです。2007/08/06(月) 03:43:57ID:r8MqGT/t
ppc arm super wabaなら・・・
0465名前は開発中のものです。2007/08/06(月) 07:16:51ID:R+5scQVe
>>460
Java だとインターフェースもしくは抽象基底クラス使う。
0466457,4602007/08/06(月) 22:38:48ID:dCjdYchV
aを規定クラスにしたb1タスク
aを規定クラスにしたb2タスク
b1、b2タスクが混在したリストを作成したい。
C/C++なんかだと、関数ポインタnextなどにタスクをつなげてゆけるところだが・・・
javaだと関数ポインタがないので、配列にしてインデックス参照にするしかないのだろうか?
インデックス参照だと、個々のタスクごとに属性を割り振って、別々に読み出すか32bit以内に押し込むかなどして値を管理し、switchで分岐
して実行する記述が必要・・・。
C++なら多重継承があるので、b1からb2にたどることもも可能だが、javaには多重継承はないし・・・。
インターフェースは同じインプリメントを保障してくれるだけど、結局タスク切り替えのロジックが必要になるし・・・。
関数ポインタに比べて、これだと積極的に使うにはオーバーヘッドが気になるのと、記述が煩雑でプログラム的にCより退化しているように感じてしまう。
(今はリスト構造にせず、配列でタスクリストを持つ方向性で考慮中・・)
0467457,4602007/08/06(月) 22:41:30ID:dCjdYchV
だれか経験豊かなjavaプログラマた通りかかったりしないかなぁ。
0468名前は開発中のものです。2007/08/07(火) 00:03:46ID:ziyaQFb3
Vectorじゃだめなのか
0469名前は開発中のものです。2007/08/07(火) 00:17:53ID:2nrPyfF8
やはり釣りだったか
0470名前は開発中のものです。2007/08/07(火) 00:42:53ID:lyE3j1c/
HSPでOOPをやろうとするのと同じくらい馬鹿げてるな
0471名前は開発中のものです。2007/08/07(火) 01:25:29ID:/sDbVbxZ
>>466
ぐちゃぐちゃ言ってないで書いてみろ。あんまりにも考察がめちゃくちゃで
どこから突っ込んでいいのかわからん。ソース晒してみれば突っ込みも入れやすい。
0472名前は開発中のものです。2007/08/07(火) 01:55:24ID:sukzLC0P
>>466
日本語でおk
0473名前は開発中のものです。2007/08/07(火) 03:33:11ID:jZSDWWPE
>>466
参照使え馬鹿
0474名前は開発中のものです。2007/08/07(火) 03:37:03ID:Qoe4Y4zA
なんでみんな冷たいんだwww
0475名前は開発中のものです。2007/08/07(火) 06:44:09ID:vUw1LN3Q
>>468
LinkedList の方が。
0476457,460,4682007/08/07(火) 07:55:20ID:8/4fXdca
void (*func) ();
これのjavaでの代用法が知りたい。
0477457,460,4682007/08/07(火) 08:07:53ID:8/4fXdca
LinkedList ....
Thanks! >> 475
0478名前は開発中のものです。2007/08/07(火) 08:09:00ID:/sDbVbxZ
>>476
java.lang.Runnable func;
0479名前は開発中のものです。2007/08/07(火) 08:24:51ID:88OVU+XC
>>466
aを要素にとるコンテナを宣言して
それにb1インスタンスだのb2インスタンスだのを加え、
コンテナを走査して処理メソッドを順に呼び出せばいいだけの話。

データ構造だとかクラス設計だとかいうレベルじゃない。
単にプログラミング言語の勉強が足りていないだけ。
それにお前は多重継承を激しく誤解している。出直して来い。
0480名前は開発中のものです。2007/08/07(火) 10:39:17ID:98Sz9x7X
なんかタスクってGoToやってるような雰囲気があるな
0481名前は開発中のものです。2007/08/07(火) 10:48:42ID:TDGAxW6A
>>476
>>460では関数ポインタ使ってなくね?
0482名前は開発中のものです。2007/08/07(火) 14:27:28ID:lyE3j1c/
まぁvtableは関数ポインタみたいなもんだけどな。
0483名前は開発中のものです。2007/08/07(火) 14:28:52ID:gmxLaOKz
>>478
Swingでやってハマるとかw
関数ポインタに直感的に一番近いのはjdk7までお預けだな。

javascriptならそのまま
(function(num){ print(num);})(100); //-> 100
だが。
0484名前は開発中のものです。2007/08/07(火) 15:06:05ID:2nrPyfF8
>>483
日本語でおけ
0485名前は開発中のものです。2007/08/07(火) 19:51:36ID:LOGzBd/R
自分が話理解出来てないだけなのに日本語でryとか言ってる奴増えたよね。
0486名前は開発中のものです。2007/08/07(火) 20:52:36ID:2nrPyfF8
>>485
>Swingでやってハマるとか

理解できないのはこの部分だ
0487名前は開発中のものです。2007/08/07(火) 23:28:41ID:rZkCIKw7
Swingがスレッドセーフではないって話かな。

もしそうなら >478 が言いたいのはRunnableのインターフェースだけを
借りることだろうから話が飛躍してるな。
0488名前は開発中のものです。2007/08/07(火) 23:51:16ID:vUw1LN3Q
>>476
だから抽象基底クラスかインターフェース使えと。下のサンプルコードは C++ だが、Java でも
ほとんど変わらん。

#include <boost/foreach.hpp>
#include <boost/ptr_container/ptr_list.hpp>

struct ITask {
  virtual ~ITask() {}
  virtual void exec() = 0;
  virtual void draw() const = 0;
};

class TaskManager {
public:
  void exec() { BOOST_FOREACH(ITask& task, m_tasks) task.exec(); }
  void draw() const { BOOST_FOREACH(ITask const& task, m_tasks) task.draw(); }
private:
  boost::ptr_list<ITask> m_tasks;
};
0489名前は開発中のものです。2007/08/08(水) 00:01:44ID:2nrPyfF8
>>488
優しいな
0490名前は開発中のものです。2007/08/08(水) 07:33:12ID:71C/M+UG
たったこれだけのことなのに
さも凄まじいシステムであるかのように
タスクシステムと言う人の気がしれない
0491名前は開発中のものです。2007/08/08(水) 07:48:40ID:4PM0J5aw
>>490
歴史を勉強しましょう
04924882007/08/08(水) 07:51:26ID:obrNCieZ
>>490
同意。

アセンブリ言語でハードコーディングしていた時代に初めて見たら「やるな」と思うが、
今時だとふつー過ぎて何も言うことがないよね。UNIX V6 のころのデバドラも、既に
こんな作りだし。

自分でコード書くのもいいけど、もっとコード読もうよ、と思う。
0493名前は開発中のものです。2007/08/08(水) 07:53:43ID:HMa+110c
今とは比較にならない制限の厳しさの中で
TCBを弄り回してた時代のことを知らないんだろね
0494名前は開発中のものです。2007/08/08(水) 08:21:56ID:XmcrCIW0
そういう話題は以下のスレでやってくれ

タスクシステム総合スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
0495457,460,466,4762007/08/09(木) 01:21:26ID:WI6u6LTt
できた。
抽象基底クラスは知っていたが、
仕様上、基底クラスから上位のクラスをたどる必要があったので、
関数ポインタ云々といっていたのだが・・
キャストすればよいだけだった。
javaにはポインタの概念がないから、
javaのクラスは当然キャストできない、というような誤解があったので。
0496名前は開発中のものです。2007/08/09(木) 01:24:51ID:Tm6LW0Jp
>>495
それなんか設計がおかしくないか?
みんなの意見無視ってところか
0497名前は開発中のものです。2007/08/09(木) 02:27:45ID:RcnrWFRi
>仕様上、基底クラスから上位のクラスをたどる必要があったので、
そんな仕様にするのが悪い。
第一、抽象基底クラスを知っているのならば
そんなところで困ったりしない。
0498名前は開発中のものです。2007/08/09(木) 02:50:07ID:yVPi3RJq
初心者には冷たいもんだな
0499名前は開発中のものです。2007/08/09(木) 03:14:21ID:v8CPCZuZ
というか言語仕様勉強しろ
0500名前は開発中のものです。2007/08/09(木) 04:12:56ID:k08h5JG9
キャストってw
ポリモフィズムをカケラも理解しとらんじゃないか
0501名前は開発中のものです。2007/08/09(木) 04:46:19ID:BskRNsfr
自分から質問してきたくせに
まともな意見すら無視するような勉強不足君は
鮮やかに放置して、次の話題ドゾー
0502名前は開発中のものです。2007/08/09(木) 05:27:24ID:nQyaGvDb
まともな意見を無視するのと勉強不足なのは関係ないと思うぞw
質問者はどちらの属性も持ってるけど
0503457,460,466,476,4952007/08/10(金) 20:04:16ID:aK9bbQO3
失礼。

>>488
解決のヒントになりました。
ただboostライブラリはjavaにはないような気がします。

>>468
Vectorの案内が最初の解決のヒントになりました。
0504名前は開発中のものです。2007/08/11(土) 20:49:07ID:AcYB8hIq
>>503
さんざん情報貰ったんだから、せめてソース晒して恩返ししてみないか?
0505名前は開発中のものです。2007/08/17(金) 01:53:51ID:7sSY46ad
JavaSEでVectorつかってそーだな・・・
0506名前は開発中のものです。2007/08/21(火) 16:35:31ID:/oULNmRu
質問すまそん。DXライブラリ&VC++でゲーム製作してます。

例えばRPGで、キャラデータ・アイテムデータ・フラグおよび
ゲーム内システムデータ(ゲーム世界での日付とか)は、
それぞれグローバルなデータクラスにしてるんですが、
もうちっとスマートな設計の仕方はないでしょうか?

ほぼ全てのインスタンスから参照するデータ(例えばフラグとか)って、
いちいち参照やポインターで格納させるよりか、データクラスとしてグローバルに
展開してメソッド経由でアクセスさせたほうがいいような気がするど素人なんですが、
こんな俺はオブジェクト指向として根本的に間違ってますね?
0507名前は開発中のものです。2007/08/21(火) 18:54:06ID:/OCncB5N
ちゃんと管理できるなら問題ない
0508名前は開発中のものです。2007/08/21(火) 19:55:25ID:LQCVNOKZ
>>506
>>507に同意
オブジェクト指向をしたいのか、ゲームを作りたいのか。
書き方に明確な規則やルールがあれば、それだけでいいと思うけどね。

でも自分が「オブジェクト指向的」に組むなら、その辺の情報はグローバルにはしないと思う。
必ずシステム内で生成する。何故なら、ゲームシステム≠ゲームの世界と考えてるから。

1.ゲームシステム=ゲームの中の宇宙を作る(ゲームシステム=プログラム本体)
2.宇宙の中に惑星を一個作る。(ゲーム世界(日付等含む))
3.ゲームの世界の中に、登場人物やアイテムを作る。(キャラクターデータ、アイテムデータ)
4、登場人物とアイテムは、状態を所有している。(フラグ)

単純に現実に沿って状態を作る(これがRPG向きか?と言われると、そうではないけど)
データは必ず1→2→3→4の順にアクセスする。面倒くさいけど、一応これにも利点がある。
・ゲーム内での登場人物の役割を切り替えやすい。
・同時に複数キャラが操られても破綻しにくい。(マルチプレイさせやすい)
・同様に、ゲーム世界以下の要素は増やすのが比較的容易。

まとめて言えば、人や物、物事の取り扱いを現実と同じようにできるってことね。
最初に戻ると、規則があるなら君の好きで良いんじゃないってことで。
0509名前は開発中のものです。2007/08/22(水) 02:49:01ID:xHfctKqh
>>505
標準ライブラリが互換性のために未だに使いまくってるんだが・・・。
んで使い勝手悪いからいい加減JCFに移行しろと叩かれてるじゃないか。
0510名前は開発中のものです。2007/08/22(水) 10:20:41ID:lSyOGrel
Universe.MilkyWay.SolarSystem.Planets.Earth.Enabled = false;
0511名前は開発中のものです。2007/08/22(水) 21:45:27ID:HTZJHbeS
>>508
> 単純に現実に沿って状態を作る(これがRPG向きか?と言われると、そうではないけど)
単一システムで作るのは、結構つらいなぁ。

俺だと RPG はフィールド&シナリオ、戦闘、デモシーンでシステム完全に切り離して
作っちゃうけど。どーしてもフィールドからシームレスに戦闘に入りたいと言われたら
考えるが、工数は開発もデバッグも倍かさむよって感じ。
0512名前は開発中のものです。2007/08/22(水) 21:58:56ID:9DW3Phyd
>>506が心配してるようなのって構造化手法の方の話で
オブジェクト指向とはあんまり関係ない気がする
オブジェクト指向言語は結局構造化手法の流れを汲んでるから関係あるっちゃあるんだけど
「オブジェクト指向的」に批判されることはないと思うんよ
0513名前は開発中のものです。2007/08/22(水) 22:26:25ID:9DW3Phyd
>>508はこの方針でゲーム作ってなんかあったらここへ相談しにきてね
0514名前は開発中のものです。2007/08/23(木) 00:15:28ID:mSgl7P3T
>>60が参考になるんじゃね
0515名前は開発中のものです。2007/08/24(金) 15:43:24ID:C1/M3//R
>>513
>>510みたいなことは流石にやってないけど、マップが複数面あって
自由にキャラクターを選べるのを作ってるから、今のやり方で全く問題なかったりするぜ!
0516名前は開発中のものです。2007/09/01(土) 13:35:04ID:+CS1vDDV
>>510おれもそんな感じだww
0517名前は開発中のものです。2007/09/01(土) 15:26:53ID:AAlSvZp8
>>516
お前って奴は…
0518名前は開発中のものです。2007/09/01(土) 18:53:13ID:pEzsrlB5
チラウラだが .NETの自動生成コードとか見ると
クラス名がネームスペース入りのフルネームで書かれてて
>>510と比べてもあまり遜色ないくらい長ったらしい記述になってる
0519名前は開発中のものです。2007/09/03(月) 18:50:24ID:pkJ0HJ1y
>>510はどこまでが名前空間でどこからがコレクションなんだろ
0520名前は開発中のものです。2007/09/03(月) 18:56:19ID:l4kjvmoQ
Universe.、までが宇宙空間
0521名前は開発中のものです。2007/09/03(月) 20:58:24ID:nm3JiNC1
Planetsまでじゃないのか
0522名前は開発中のものです。2007/09/03(月) 21:43:06ID:l4kjvmoQ
C#とかだと区切り記号が全部ピリオドだから分かりにくいよなあ
0523名前は開発中のものです。2007/09/03(月) 22:51:36ID:4m5q0iOi
俺ならPlanetsは入らないな。
Universe.MilkyWay.SolarSystem.Earth

しかし、こんな話題しかないものか。
0524名前は開発中のものです。2007/09/03(月) 23:01:33ID:nm3JiNC1
いいんじゃない、超光速星間航行を多用するスペースオペラ的ゲームのデータ構造。
0525名前は開発中のものです。2007/09/04(火) 00:01:23ID:aU+sltFh
>>522
そんなこと言いだしたらjavaのエンクロージング型の完全修飾名は恐ろしいことになる。
0526名前は開発中のものです。2007/09/04(火) 00:51:30ID:SZHcTWC/
外から内部クラスをアクセスすることはほとんどないんじゃね?
0527名前は開発中のものです。2007/09/04(火) 01:36:58ID:aBG3sZkW
>>522
Delphiはわかりにくいと申すか
0528名前は開発中のものです。2007/09/04(火) 01:47:09ID:h5r4WGWI
まあDelphiもC#も、同じヘルスバーグ氏設計の言語だからな
俺は氏の思想は好きだが
0529名前は開発中のものです。2007/09/04(火) 09:17:06ID:/fq60VcD
どっちもIDEで使うための言語だからそんなに問題にならないでしょ
■ このスレッドは過去ログ倉庫に格納されています