1read 100read
2012年3月ニュー速VIP500: プログラムスレだよ (101) TOP カテ一覧 スレ一覧 2ch元 削除依頼
一夏「エイプリルフール」 (103)
侵略!?イカ娘 (472)
ナカムラジオ (183)
安価でポケモン育てて対戦する (446)
お前らみんなの名前を武器にして戦うゲームやろうぜ!! (433)
ぱにぽにだっしゅ!少なめ773盛りでダイエットする綿貫@41 (816)

プログラムスレだよ


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元 削除依頼
機動戦士ガンダム EXVS. (288)
スマブラX (406)
ポケモンBW総合 (647)
もしもしおばあちゃんオレだよオレ、そうそうプリキュアスレだよ (652)
プログラムスレだよ (101)
そろそろ最恐のサイレントヒルを決めようぜ (115)
--log9.info------------------
mel cafe 5皿め (614)
今度行くコスプレイベントその34 キモカメ禁止 (764)
【圧倒的】Mai:lish 70 メイリッシュ【存在感】 (422)
【落武者】 もののぷ 3【たけぽん】 (194)
【横浜】MaidHouse DearCafe★3【ディアカフェ】 (468)
レイヤーとカメコが本音を語り合うスレ3 (322)
関西一円メイド喫茶・飲食店総合スレ★53号店★ (144)
仙台のメイド喫茶 その17 (321)
鳥取 山陰のレイヤー 島根 (119)
【股間にバラ】売る身【頭にネギ】 (800)
【なごや】 コモック ★9着目★ 【名古屋】 (298)
【札幌】ショコラを語るスレ【メイド】 (156)
【メンヘラ】黒兎について語るスレ (109)
【北海道札幌】ぷちあんじゅ【カード三枚目】 (640)
真・今日のブラウン報告 33 (728)
王立アフィリアダイニング 日誌35冊目 (664)
--log55.com------------------
【新宿駅南口地下】カレーハウス11イマサ【京王】
【CoCo壱番屋】ココイチのカレー その106.1【総合】
激辛カレー食ったら次の日ケツが辛い現象に名前つけよう
お前らのオススメカツカレー!!
カレーの中の福神漬けってどう思いまつか
【大阪】カシミール【北浜】
スリランカのカレーをスパイスから作る
ハヤシライスも騙ろう