1read 100read
2012年3月ニュー速VIP500: プログラムスレだよ (101) TOP カテ一覧 スレ一覧 2ch元 削除依頼
俺「ストライクウィッチーズですなぁ」 (155)
ほむら「その……ま、まどか、あなたが好き……大好きなの……」 (103)
VIPっていつの間にか2GETしなくなったよな (115)
VIPPER総力あげてTWのTOP目指すぞ (182)
ナカムラジオ (183)
嘘つき魔法使いの厨二妄想スレ (194)

プログラムスレだよ


1 :12/04/01
C言語もうつけどJavaもうつよ
Wiki(まだまだ未完成。編集者募集!)
http://vipprog.net/wiki/
共有Blog(プログラミング関連のコラム☆編集大歓迎!)
http://vipprog.tumblr.com/
避難所(規制組来たれ)
http://ex14.vip2ch.com/test/read.cgi/part4vip/1320645603/
うpろだ
http://www8.uploader.jp/home/vipprog/
コードが長くてコピペが辛い
http://pastebin.com/
web上で実行したい
http://codepad.org/
http://ideone.com/

2 :12/04/01
プログラムは面白いよ

3 :12/04/01
なんとか簡単なソフト作るまで持ってきたいけどどうすればいいのか

4 :12/04/01
ideoneがあるからcodepadは不要なんじゃないかな

5 :12/04/01
完成させればおk

6 :12/04/01
>>3
テンプレに入れたいくらい頻出する質問なんだけど、
C#を使う こっから手に入れろ
http://www.microsoft.com/japan/msdn/vstudio/express/

7 :12/04/01
>>6
サンクス

8 :12/04/01
プロジェクトをいろんな地域を転々としながら作り進めていきたいんだけど
家のパソコンを遠隔操作するのが一番かなぁ
gitとかに上げておいても、環境がちょっと特殊だから
場所を移るたびに環境入れなおしてたら時間を食ってしまう
それかUSBにでも入れて持ち運べる環境は持ち運んでしまうべきか・・・

9 :12/04/01
ideoneで行番号とソースがちょっとずつずれるのは俺だけ?

10 :12/04/01
今日スタックを勉強したんだけど、これって逆ポーランド記法の計算以外に何か使い道あるの?

11 :12/04/01
ゲームとかWebアプリとかのオープンソースってあんまり見ないけど
チートとかセキュリティ的な意味があるん?
と思ったがRedditってgitにあるな

12 :12/04/01
>>10

13 :12/04/01
git(hub)
wiki(pedia)

14 :12/04/01
すまん安価ミス

15 :12/04/01
>>10
ハノイの塔の実装

16 :12/04/01
      
         ヽ从/
  ガバッ   ∧ ∧
       (゚Д゚;):. _
      r'⌒と、j ミ ヽ
     ノ ,.ィ'  `ヽ. /
    /       i!./
   (_,.         //
 .く.,_`^''ー-、_,,..ノ/
     `~`''ー--‐'

17 :12/04/01
>>11
前者は船頭多くして船山に登るだと思う
ゲーム「ライブラリ」なら普通にあるんじゃね

18 :12/04/01
>>13 スマン気づかんかったわ
>>17 確かに

19 :12/04/01
チート対策の意味はある
人気ゲームだとバイナリ解析されるけど

20 :12/04/01
てすと

21 :12/04/01
Rubyスレにな〜れ

22 :12/04/01
                     ┌┐
                    /~'7;; |/~''7   〜〜
     〜〜〜〜        (  ( ̄|  (
                 、___`t-'ーイゝ-i 
                  ヽ] ̄二二二7
〜〜〜〜   〜〜 ""〜〜〜〜  〜〜〜〜〜 
       .∧ ∧
       ( ゚д゚ ):. _ 〜〜〜
      r'⌒と、j   ヽ
     ノ ,.ィ'  `ヽ. /      〜〜
    /       i!./
〜〜 ""〜〜〜〜〜〜

23 :12/04/01
Rubyさんちょっと遅すぎますよ

24 :12/04/01
でも楽しいよ

25 :12/04/01
RiteVMもう出たんじゃないの?

26 :12/04/01
C++でなら電卓までなら作れた

27 :12/04/01
次は麻雀だ!

28 :12/04/01
C++で3Dシューティング作りたいんだけどなにかいいエンジンないですか?

29 :12/04/01
誉エンジンなんかどうかな・・・

30 :12/04/01
出力不足の悪寒

31 :12/04/01
V8

32 :12/04/01
そう来ますか

33 :12/04/01
車スレでしたか
間違えました

34 :12/04/01
テトリスって作るの難しい?

35 :12/04/01
ブラウザ上ならJavaScriptでわりとすぐ出来る

36 :12/04/01
単発単発
あーマジレスとかいらないから

37 :12/04/01
てすと

38 :12/04/01
ム板って何であんな伐としてるんだろ

39 :12/04/01

伐としたマが居るから

40 :12/04/01
>>28
DarkGDKとか

41 :12/04/01
もう12時か…

42 :12/04/01
>>38
ひとえに自分が一番賢いって勘違いしているマばっかりだからだろ

43 :12/04/01
Perlのハッシュとかがよく分からないんだけど
@array = ();
$hash = { name => "HOGE",TEL=>"000000"};
push(@array, $hash);
$hash = { name => "HOGE2",TEL=>"000001"};
push(@array, $hash);
ってやったのを
($name, $TEL) = $array->[0]->{qw/name TEL/};
ってスライスしたいんだけどうまくいかないんだ・・・どうしたらいいんだ?

44 :12/04/01
>>10
例えば、パズル(数独とか)の盤面の状態をオブジェクトにしてスタックに積めるようにする。
POPした状態から次の状態を作ってそれをPUSH、という風にすると深さ優先探索になる。

45 :12/04/01
perlぜんそく持ちの人もいるんだから気を付けてよ

46 :12/04/01
>>43
@array は参照じゃないんだから $array[0] だろ

47 :12/04/01
>>46
どっちにしろうまくいかない
ARRAYの中にHASHのリファレンスが詰まってる状態だからいけるとおもったんだけどな・・・

48 :12/04/01
正解は @{$array[0]}{qw/name TEL/}
%hash をスライスするのに @hash{qw/.../} としなきゃいけないのがはまり所かな

49 :12/04/01
>>48
おおおおおおお・・・ありがとう
そうかハッシュスライスは@でやれってかいてあったから
参照を@にしてやらなきゃいけなかったからか・・・
で、俺はずっと何故かリストの()かこみはためして他はしてなかったと・・・
もうちょっとかっことか@$%を勉強した方がいいってことか・・・
ありがとうありがとうありがとう!

50 :12/04/01
演算子の優先順位覚えてないから
ポインタとか参照が出てくると括弧だらけになっちゃう

51 :12/04/01
てすと

52 :12/04/01
>>28
Ogre3Dは試したけど、なかなかシンプルでお勧め

53 :12/04/01
てすと

54 :12/04/01
てすと

55 :12/04/01
てすと

56 :12/04/01
てすと

57 :12/04/01
てすと

58 :12/04/01
XNA記念に一時間でXNAでテトリス作ろうと思ったけどぜんぜん間に合わなかった

59 :12/04/02
もう2時か…

60 :12/04/02
関数ポインタって何に使うの?
使い道ない気がするんだけど

61 :12/04/02

テトリスは難しい

62 :12/04/02
コールバックとかいろいろ
配列に突っ込んでも便利だよ

63 :12/04/02
大いにある。
例えば、RPGでアイテム使う場合、
プログラムのの流れは
1)アイテム選択 → 2)選択されたアイテムの使用  のようになるが、
この(2)の処理内容は、当然選択されたアイテムの内容によって変わる。
そこで、(1)のアイテム選択のときに、(2)で動作する関数のポインタを決定するのだ。
(1)で薬草が選ばれたら、薬草使用関数(ヒットポイントが回復する)
(2)で地図が使われたら、地図使用関数(画面上に地図が表示される)
すると、いい塩梅にプログラムがかける。

64 :12/04/02
デリゲートちゃんかわいいよ
C#のマルチスレッドにも使うよ

65 :12/04/02
ふえぇ・・・会社いきたくないよぅ

66 :12/04/02
会社から出なければ会社に行かずに済むよ!

67 :12/04/02
天才だな

68 :12/04/02
switch(useItemData->kind) {
 case '1' :
  openMap();
 break;
 case '2' :
  heel(useItemData);
 break
}
こういうふうにswitch書いたほうが読みやすいと思うけど
ポインタ使ったら実行速度の向上でもすんの?

69 :12/04/02
会社の上司からのパワハラに悩んでるからいきたくないけど
ICレコーダー買って証拠収集してるわ

70 :12/04/02
>>60
qsortで

71 :12/04/02
一般的に言うと手続き内容を動的に切り替えたいときだな
OOP登場してからポリフォーリズムとかとキャラかぶり始めたからC#でデリゲートとして纏め直されたけど

72 :12/04/02
よーし、今日こそはビリッと頑張るぞーっ!

73 :12/04/02
実行速度は上がるようだよ
それと大量に列挙する場合記述そのものも関数ポインタの方がスマートで読みやすいこともあるよ

74 :12/04/02
>>68
class item{
publc:
int* use_item();
}
みたいな基底クラスつくっておいてシンプルファクトリーで
アイテムのクラスインスタンス生成時に関数ポインタにそれぞれのアイテム毎の
関数を設定しておけばcase文での処理分岐が一回になるし
戦闘時、メニューからの利用時でそれぞれにケース分書く必要がなくなる

75 :12/04/02
>>74
c++はわからんからCでおしえてくれ
Javaならもっと楽に書けそうな気がする

76 :12/04/02
使いやすくなる云々以前にコールバックで必須だ
俺俺ライブラリ使うなら別だけど

77 :12/04/02
Cにしても同じじゃねぇのか・・・?
あれ・・・クラスは無いが構造体で同じようなことはできたはずだ・・・
Java(笑)、Oracle(笑)

78 :12/04/02
>>68
kindの値決定部と関数使用部が離れてるときは関数ポインタの方が良いと思う

79 :12/04/02
アイテムの種類が数えるほどとか、使用アイテムの決定タイミングが1個だけなら
その方法でも面倒みきれるかもしれないけど、
このアイテムが使われたときは、この関数を動かすよ!
という情報をオブジェクトに持たせておけば、そのようなSwitch文を書かずとも、
Item.Use() でそのアイテムの効果が発揮される。
さっきの例ではアイテムを選択したときに、動かす関数ポインタを決定するとか言ったけど、
アイテムのコンストラクタで決定するほうが良いかな。

80 :12/04/02
オブジェクト指向言語で関数ポインタわざわざ使う機会あるかなぁ
C#のデリゲートだってコールバック用ぐらいにしか使わないし

81 :12/04/02
まぁクラスの参照持ってきたらメソッドもついてくるしね

82 :12/04/02
>>68
typedef struct{
int item;
int item2;
(ry
...........;
int err_var
int *err_method(int,int);
} A;
int function(A* data){
data->item = init1();
data->item2 = init2();
if(item2=ERR){
data->err_method(data->err_var);
}
}
みたいな記述をユニックスカーネルでみたことがある

83 :12/04/02
while((temp = fgetc(stdin)) != EOF){
    switch(temp){
        case 'w':
            y += 0x100;
            break;
        case 's':
            y -= 0x100;
            break;
        case 'd':
            x += 0x100;
            break;
        case 'a':
            x -= 0x100;
            break;
        default:
            break;
    }
}
みたいな単純な処理を関数ポインタでやるとメドそう

84 :12/04/02
単純だったら関数化しないんじゃね

85 :12/04/02
例外処理機構でいうfinally句部分を埋め込んどくんじゃないの?メモリの解放とか

86 :12/04/02
http://pastebin.com/Fa6W2Thx
こないだ書いた出来そこないのでアレだけど、(*s1)--だけで一つの関数にするとかオーバーヘッドががが

87 :12/04/02
>>68
アイテムの種類の固有の処理というのを共通ルーチンのswitch-caseに入れてしまうと、共通ルーチンがどんどん肥大化してしまい、
アイテムの種類を増やしたり減らしたりするときにプログラムを管理するするのが少々面倒になる
関数ポインタやらクラスの継承やらをうまく使えば、共通部分を固有処理で汚さずにすむ

88 :12/04/02
継承機能使ってswitch文消すデザパタが有ったはず、名前忘れたけど

89 :12/04/02
とはいったもののゲームなんてがちがちに作りこんだ固有処理の塊みたいなもんだよなあ・・・
がちがちの作りこみを許容しつつ、共通部分をライブラリ化するというのは非常に難しい課題だ
枠にはまった処理は簡単にできるが、枠をはみ出た処理ができないようなフレームワークだと、
そういう作りこみが必要な場合に対応できなくなってしまう
よいフレームワークは、いざというときに枠をはみ出ることを許容する(たとえそれにかなりの手間がかかっても)ことができる

90 :12/04/02
がちがちに作り込んでバグりながらも目的の動作するようになってからリファクタリングした方がやる気出ると思うよ

91 :12/04/02
>>88
Commandパターンかな
意識せずともみんな知らない間に使ってそうだな

92 :12/04/02
>>90
それも一理あるんだよな
最初からきれいに作ることを考えると、下手するとその仕組みを考えるところで力尽きる
だがスパゲッティにの度が過ぎるとリファクタリングが苦痛すぎてやっぱり力尽きるwww

93 :12/04/02
VisualStudio11でメトロUIなアプリ作ってみようと思ったら
ビルド後に配置エラーで詰んだ
なんだこれ

94 :12/04/02
>>86
Cそんな書かないから偉そうに言えないけど、多分そういう場面での関数ポインタの使用は間違ってる

95 :12/04/02
よし、とりあえず動くもの作ってから後でまとめるか!

よくわからないけどなんか動くものができたぞ!

ふぅ、動くしもうこれでいいかな

96 :12/04/02

拡張するか

うわぁよめねぇ

しゃーないリファクタリングするか

97 :12/04/02
>>94
そうなのか
ベターな選択肢ってなんだろ? 俺的には関数ポインタが最適解だと思ってた

98 :12/04/02
たぶん一から書き直したほうがまともになるけど
めんどくさいってのならいっぱいある(^p^)

99 :12/04/02
>>97
極端に短い関数を量産して代入するぐらいなら識別子を適当な変数にぶち込んどいて、おっきい関数呼び出してswitchした方がよくね?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
名前欄に「####」入れれるやついる? (238)
俺「ストライクウィッチーズですなぁ」 (155)
胎児よ胎児よ何故躍る RPGツクールの 心がわかっておそろしいのか (201)
(・ω・) (608)
【無料】VIP de osu!【音ゲー】 (170)
俺が持っている既出ToLOVEる画像 (104)
--log9.info------------------
シーマン (290)
ときめき麻雀シリーズde盛り上がろう!第2局!! (594)
風来のシレン(64)を語るスレ オ2襲来 (516)
プリンセスクラウンを語ろう 6冊目 (943)
親が買ってきたゲーム (404)
アッー!クレイムジャパン総合スレ (332)
【無冠の】N64の名作を語るスレ【帝王】 (545)
マール王国の人形姫 (142)
【VB】バーチャルボーイ 3 (194)
PSが成功すると思ってましたか? (656)
【SS】サターンとプレステ迷ってたあの頃…【PS】 (217)
サターン派とプレステ派の対立 (960)
マリオテニス64について話そう。 (64GBパック対応) (274)
【一秒を】バーニングレンジャー【感じ取れること】 (414)
ゲームセンターCX (211)
【隠れた名作】トレジャーギア【実はADK製】 (149)
--log55.com------------------
☆航空祭総合スレッド538☆
パワハラ案件
旧郵便事業会社について語り合いましょう 62号便
【現代の】新一般職はまるで奴隷そのもの【蟹工船】
郵政の犯罪暴露!
配達のテクニック★2
社会のゴミです
局内の恋話 第13段★