過去スレなんて見るやついないから別にいいよ
time()でプログラムの一定範囲の実行時間を調べたい場合、 time()自身の時間も加算してるんですか?
>>4 秒単位だしtime()自身の実行時間は気にしなくていいのでは
6 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 22:48:07.37
time()やclock()は精度低い Winならパフォーマンスカウンタ、Linuxならgetrusage()使え
このスレ親切すぎワロタwww
ビットマップ画像のピクセルごとのRGBの値を抜き出すプログラムを作りたいのですが、どうにも上手くできません。参考になるサイトがあったら教えてください。ちなみに使ってるのはLinuxです
libjpeg のソースの中に居たような...
11 :
デフォルトの名無しさん :2014/01/08(水) 15:05:48.62
結局前回の最後で示した構造体で、バ片山はどうやってセットオプションを実現するつもりだろうな。 int printsetoption( int head , int shirt , int arm , int pants , int boots , int armor , int belt , int shoulder ) { return 0; } こうやって装備を渡したらどのセットオプションが発動するかどうか判定して printfで表示するだけのコードでいいから書いてみて欲しい。
ファイルを開くときにダイアログが非常に重いのは理由がありますか? C言語のソースコードを上書き保存するときはショートカットで済みますが 新規で保存する場合、ダイアログが開くのが非常に遅いです。 何とかなりませんかね?使ってるエディタはメモ帳、tredpadです。
>>12 1)保存先ディレクトリにファイルが超多い
2)保存先にリンク先のないショートカットとか変なファイルがある
3)HDDがへたってきてアクセスが遅い
4)保存先がリムーバブルメディアまたはネット
5)保存ダイアログの不要なエディタ使う。viとか
16 :
デフォルトの名無しさん :2014/01/08(水) 16:08:02.51
>>14 いや一般的に遅いのは何故かなと、タブを切り替えるくらい早く
ならないのは何故でしょうか?
>>15 そうしたらまた配列か構造体を宣言しなきゃならないだろ
装備の配列or構造体も影響する話じゃないの?
18 :
デフォルトの名無しさん :2014/01/08(水) 16:17:52.51
装備よりダメ計算のほうが気になる RPGのダメってだいたいブレるけど、あれってどうやって実装してんの? 攻撃力と防御力で算出されたダメの±10%とか?
>>13 ありがとうございます!
……でも、画像をそのまま変換したいんじゃなくて、抜き出したRとGを計算したいんですよね……
20 :
デフォルトの名無しさん :2014/01/08(水) 17:20:08.10
ビットマップの仕様なんて検索すればいくらでも出てくるだろ 俺がDDSからBMPに変換するライブラリ作ったときは誰にも質問しなかったぞ
>>20 いや、俺はあなたじゃないんでそんなこと言われても困ります
まじめにやると 色空間と トップダウン/ボトムアップ配置と 圧縮(ランレングス) への対応 後者側ほど省略(条件を限定しちゃう)されることが多いな
画像のフォーマットくらい自分で調べてるだろうよ。 C言語も使える、画像のフォーマットも分かる、これでできないということはまさに「馬鹿には無理」 諦めろ。
24 :
デフォルトの名無しさん :2014/01/08(水) 17:52:10.86
>>18 どうせ運ステータスとかあるでしょ
運ステータス使えば?
プログラム組んでるとパソコンのファンの音がうるさくなります。 またプログラムの実行時間が遅いんですが、ビデオカード入れたら早くなりますか? 後、ビデオカード、アクセラレータ、グラフィックボードの違いが分かりません。
26 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 19:05:19.43
if(x=100) { 処理 } 一番単純でxに100という値を代入した時だけ処理をする 認証式プログラムを作りたいのですが、これだと総当たりで アクセスされてしまう可能性があるからこういう方法を考えました 「この問題を解け、りんごみかんが合計で5個ある、1個の値段は りんご100円、みかん5円である。5個の値段が310円のとき、りんご みかんは何個あるか」 この問題が解けた時だけ処理を行うプログラムにしたいです。 こうすれば良いと思うのですが具体的な実装方法が分かりません。 何かアイディアありますか?
>>26 テメーはセットオプションのサンプルコードでも書いてろ
スワヒリ語でおk
問題を解かせてその解をパスワードにするってことですよ。 そういうプログラムってあるんですか?
31 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 19:26:39.47
方程式の自動作成だな {ax+by==c, {x+y==z (a,b,c,x,y,zはすべて正の整数)
32 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 19:34:18.62
ディオファントス方程式でぐぐれ x+y<=10 a!=b
33 :
30 :2014/01/08(水) 19:37:50.46
あプログラムもその問題を解くって事ですね。 だからプログラムが正しい答えを導かないとダメで、連立方程式とかだと 問題が簡単なので、つまり難易度の高い問題を公開でって事ですかね。
34 :
30 :2014/01/08(水) 19:42:48.27
あ公開したら解かれますね…
8種類くらい用意してランダムで出すといいだろう 小学生でも解ける問題にしないとユーザがあきらめる可能性大
>>28 そんな検索にもかからない俺様マイナーワード振り回されても困ります!!
「セットオプション」をキーワード検索でトップ10に入ったら認めてやる
38 :
デフォルトの名無しさん :2014/01/08(水) 20:06:55.92
ラングレンス符号化について質問です。 あれって未だに使われてるんですか?圧縮率ってかなり悪いと思いますが どうなんでしょう?AAAABBBBCCC A4B4C3ってやつです。
バ片山が変な条件出して逃げたwwwwwwww
40 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 20:10:49.18
ReactOSでRLEビットマップを見た。 同じ色が連続するイラストで圧縮率が高い
41 :
デフォルトの名無しさん :2014/01/08(水) 20:13:45.46
片山が逃げたというよりCが欠陥言語だから実装が難しいだけ
セットオプションってFF4か何かで共鳴って名前ついてなかったっけ?
>>11 ビットフラグ使えば簡単だって知ってるでしょ? からかわないで
片山博文MZは眠れないから一日中2chに書き込みを入れる 眠れない原因? それはドーパミンが過剰分泌されているからです。 どういう症状かわかったならいますぐ医者で抑制剤をもらってきましょう。
45 :
デフォルトの名無しさん :2014/01/08(水) 20:33:34.38
片山にできないことがお前らにできるわけないだろボケ。
int printsetoption(ITEM items[NUM_SOUBI]) { int i;unsigned long attr_flags; attr_flags=(items[0].flags&ATTR_MASK); for(i=1;i<NUM_SOUBI;i++) { attr_flags&=(items[i].flags&ATTR_MASK); } if(attr_flags){...} return 0; }
ここでやるなってんだろバカども
日本語でおk
50 :
デフォルトの名無しさん :2014/01/08(水) 23:05:11.29
×こっちに ○こっちへ
52 :
デフォルトの名無しさん :2014/01/09(木) 15:23:59.45
19%の確率で1が出て、37%の確率で2が出るような玩具のコードは一般化した場合どう書けばいいでしょうか? それぞれの試行は独立してなくて、例えば上記の場合だと、100回やればだいたい19回1が出て、37回2が出るような感じです 一般化というのは、これを19%と37%の固定ではなく、任意の確率と任意の個数指定できるようにしたいのです 例えば、8%、11%、3%、16%、20%のように好きな数だけ好きな確率を指定したいです
つ 乱数
double p = drand48(); double prob[5]={0.08, 0.11, 0.03, 0.16, 0.20}; for(i=1; i<5; i++) prob[i] += prob[i-1]; for(i=0; i<5; i++){ if (p < prob[i]) break; } result = i;
probの合計を1になるようにせねばいかんよ
56 :
デフォルトの名無しさん :2014/01/09(木) 15:54:40.99
>1になるように 「1以下になるように」ではなくて?
確率が整数までで良いのなら 出目の型(int) の大きさ100の配列(array)を用意して、頭から出目を並べる。 int array[100] <<19個>><<37個>> 111...1111222....222 出目の範囲が 1〜3 だとすると入力は 出目1の確率 出目2の確率 とし、3で埋めたあとに、1, 2 を 並べたほうがよさそう (入力確率の総和が 100% にならないといけないから) 実際に振った結果は 0 〜 99 の乱数でえられた値を i とすると array[i] で得る
わざわざ劣化版の回答を後出ししなくても…
>>56 > 0.08 / 1.00
=> 0.08
> 0.08 / 0.58
=> 0.13793103448275865
好きな数だけ好きな確率を指定した結果 総和で 100% になってない場合はどうしたいの? 総和で 100% を超える場合はどうしたいの?
O(1)なのに劣化版
>例えば、8%、11%、3%、16%、20% のように好きな数だけ好きな確率を指定したいです これだけ読むと そういう疑問が出てきたわけで
>>54 のは線形探索だから2分探索で高速化出来るね
>>64 最初に累積値を超えたところが結果になるから二部探索にはできないはず
2分探索だと2回ずつ比較してくことになって、数にもよるけど高速化にはならないんじゃ
69 :
デフォルトの名無しさん :2014/01/09(木) 16:59:44.77
>>54 ありがとうございます!
それを参考になんとか完成しました!
struct itemdb{
char name[32];
};
struct dropitem{
int itemid,percent;
};
struct monster{
dropitem ditem[4];
int ditemnum;
};
int main(){
int i,p;
itemdb item[] = {
"アルティメットソード","回復薬","魔法の鍵","ダイヤモンドシールド","何も落とさなかった"
};
monster mob = {
0,2 , 1,4 , 2,8 , 3,16 ,4
};
for(i=1; i<mob.ditemnum; i++) mob.ditem[i].percent += mob.ditem[i-1].percent;
srand((unsigned)time(NULL));
p = rand()%100;
for(i=0; i<mob.ditemnum; i++){
if (p < mob.ditem[i].percent) break;
}
printf( "モンスターは %s を落としました\n" , item[i].name );
return 0;
}
>>65 ,
>>68 何を言ってるんだ?
x[0]〜x[15]に確立を入れてfor(i=1; i<16; i++) x[i] += x[i-1];
そしてy = rand()%100;
最初にif (y<x[7])で比較して、
真なら if (y<x[3])
偽なら if (y<x[11])
で比較、とやっていけばいいだろう
>>70 パイプラインハザードって聞いたことないの?
というか、実際に動くコードかけよ
書くまでもないだろうよ…w
>>69 お前のコードなんかおかしくね?
ダイヤモンドシールドが思ったより出まくるうえに、200回くらいやってもアルティメットソードが1本も出ない。
それってダイヤモンドシールド16%でアルティメットソード2%ってこどたよね?
>>72 俺はこう思う!だけでコードの書けない人ですね。わかります
>>74 アルゴリズムの疑問なのにそんな糞スレに誘導しても放置されるだけ
>>71 ベンチ測るほど大量のアイテムデータ考えるのダルいだろ
言い訳一級建築士( ´,_ゝ`)プッ
79 :
デフォルトの名無しさん :2014/01/09(木) 17:27:03.46
>>77 スクリプト組んで適当なゲームの攻略ページから武器一覧取得すれば済む話。
linear search と binary search の worst case を考えてみよう 要素3つでいいよ 書くまでもない常識だろうに。
教えて君 「書けないんだろ」 ホモ 「インポじゃないの」 ババア 「いくじなし」
84 :
デフォルトの名無しさん :2014/01/09(木) 17:50:56.86
そもそもそれを高速化することに何の意味があるのか
メリットすら分からず劣化版だのとチャチャ入れるお馬鹿ちゃんがいるから
劣化版って書いた人と線形探索版を書いた人は別の人だよ
というか、
>>69 の用途なら累積分布を求める必要ないんじゃないの
>>86 >劣化版って書いた人と線形探索版を書いた人は別の人だよ
分かるけど100%じゃないよね
アナタがそのどちらかで無い限りw
だったら自分の事を 線形探索版を書いた人 とか言うなよ 気持ちわりい
二部探索の実装まだー
確率が整数でいいのなら
>>57 の方法が一番現実的だと思う
一度表さえ作ってしまえばO(1)で実行出来る
92 :
デフォルトの名無しさん :2014/01/09(木) 18:18:23.37
>>89 何でテメーが気持ちよくなるレスしなきゃならねーんだ
個人的な感想はブログに書いてろ気持ちわりい
>>91 洗練されてない上、非現実的だってば
確率0.01を表すのにどうする?配列を10000個にするんだよ?
そんな馬鹿な方法とる人はいない
0.01%を表す なんて誰がいっているのだろうか。
x11.s11.xrea.com/ff5_algorithms こういうの参考にしたら?
> 例えば、8%、11%、3%、16%、20%のように好きな数だけ好きな確率を指定したいです この文章を読んで ・整数しか選ぶつもりがないのでのみを整数を例示した ・特に深い考えはなくたまたま思いついた例が整数だけだったので整数のみ例示した どちらの解釈を選ぶかって話。 業務のヒアリングなら間違いなく後者の解釈で対応するけど2chの会話ならどっちでもいいんじゃない。
>52 #define PRC (1000) typedef struct {unsigned per,val;}prm_t; typedef struct {unsigned spn;prm_t*prm}sed_t; unsigned xrnd(sed_t*a) { if (a->prm);else return rnd()%a->spn; if (a->prm->per&&rnd()%PRC<(unsigned)((double)a->prm->per/a->spn*PRC)) return --a->spn,--a->prm->per,a->prm->val; unsigned r,t=(a->prm++)->val; while ((r=xrnd(a))==t){} return --a->spn,--a->prm,r; } #define SPN (1000) prm_t prm[]={{SPN*0.19,1},{SPN*0.37,2}},*pprm[]={&prm[0],&prm[1],NULL}; sed_t sed={SPN,pprm}; ... if (sed.spn);else sed.spn=SPN,prm[0].per=SPN*0.19,prm[1].per=SPN*0.37; x=xrnd(&sed);
>>69 それアホほど偏るんだけど?
関数化してsrandの前にSleep(1);入れて1000回ずつやったけど結果はめちゃくちゃ
Sleep(1);入れないと偏りはもっとひどかったけどな
とにかくゲームとして成立しない
高速化よりこっちのほうが重要だろうがゴミ
C:\Users\美奈子\プログラム\テスト>itemdroptest
アイテム[アルティメットソード] => 0 個
アイテム[回復薬] => 0 個
アイテム[魔法の鍵] => 0 個
アイテム[ダイヤモンドシールド] => 0 個
アイテム[何も落とさなかった] => 1000 個
C:\Users\美奈子\プログラム\テスト>itemdroptest
アイテム[アルティメットソード] => 0 個
アイテム[回復薬] => 586 個
アイテム[魔法の鍵] => 0 個
アイテム[ダイヤモンドシールド] => 414 個
アイテム[何も落とさなかった] => 0 個
C:\Users\美奈子\プログラム\テスト>itemdroptest
アイテム[アルティメットソード] => 855 個
アイテム[回復薬] => 0 個
アイテム[魔法の鍵] => 0 個
アイテム[ダイヤモンドシールド] => 145 個
アイテム[何も落とさなかった] => 0 個
101 :
デフォルトの名無しさん :2014/01/09(木) 19:11:57.42
srandにtime入れればそうなるわな。 windows.hオンクルードしてtimeGetTimeにすれば。
シードを毎回与える必要は無い
>>93 そういうことはモンスターが落とすアイテムの確率が1%未満のゲームを見つけてから言え
1%ってかなり高い
シードを毎回与えなければ同じ値が出る たかたがゲームなんだからその必要がないと言われればそれまでなんだけどね
えっ
>>97 ならダブルテーブルを使えよ
一つ目は必要な乱数の種類分をかっ詰めた(packした)ビット配列
二つ目はその得られたビットから目的の値を得るテーブル
C言語はビット演算子があるんだからこういう時に活用しないとな
また造語野郎が出てきた こいつは頭悪いのを自覚して無いからタチが悪い
111 :
デフォルトの名無しさん :2014/01/09(木) 20:44:14.95
この再帰関数使ったプログラムを実行して放置したらos壊れますか? #include<stdio.h> void yobidasudake(void) { yobidasudake(); } int main(void) { yobidasudake(); }
113 :
デフォルトの名無しさん :2014/01/09(木) 20:48:23.24
>>112 windows8
gcc
です。
どうなりますか?無限に関数が呼び出されてフリーズするような気が
するんですが。
スタックがオーバーフローしてプログラムが固まるだけだと思う OSは平気だろ
115 :
デフォルトの名無しさん :2014/01/09(木) 20:53:30.15
>>114 メモリが破壊(物理的にダメになる、取り替えなきゃならない)
って事にはなりませんか?メモリが潰れるようなプログラムは
OSがメモリを管理してるから平気なんでしょうか?
>>110 人を「頭悪い」呼ばわりした所でお前の頭が良くなるわけでもないのにな
だな、ただ造語野郎は害悪だから黙ることを覚えるべきだと思うね
>>117 造語だと?ダブルハッシュとでも言えと?
120 :
デフォルトの名無しさん :2014/01/09(木) 21:03:31.64
>>119 安心していいんですね、メモリを一瞬で壊すって物理的な方法以外では
無理なんですかね、摩耗以外で。
古い本だけど「エキスパートCプログラミング」に当時の古いモニタの垂直同期信号を止めると モニタから火を噴くってのがあって、「これぞ未定義動作だ!」とか書いてあったのを思い出した
>>90 CSTLのlower_boundってのがまさにそれだね
普通に実装するとそうなるだろうから探せば沢山あると思うよ
>>121 IBM PCのモニタですね
フライバックトランスの設計ミス?とかで
>>123 そそ
だから基本的に未定義動作は危険だと自分に言い聞かせている
今のPCのOSとハードウェアではまず滅多な事はないけど
だいたいダイアログ出るかコアダンプ吐いて落ちる
その本の受け売りで実体験は無いから笑って読めるけど もしそれが留守中の出来事だったらと思うと・・・人生落ちますわぁ
モニタは通路に置いてあったって事でおk
「2つの配列」でOK
新しい造語をやたらと使うのは「言語新作症」と言って統合失調症の症状だな
131 :
デフォルトの名無しさん :2014/01/09(木) 22:55:29.63
結局ゲームで使う確率はランダムな数値の入った配列を使うんでしょ?
またゲームかよ
>>131 確率用のテーブルが云々ってきいたことあるだろ。
普通のゲームは最初にrandみたいなやつを一度呼び出して、その後はそのrandで得た値を次のシードにも使う。
つまり最初のrandの値が出た時点で後のrandの値は決まったも同然。
だけどプレイヤーから見れば完全なランダムに見える。
x = x*a + b
フローチャートって何か作るとき、毎回作成するの?
そういう時は頭を指さして「フローチャートはもう出来ている… オレの頭の中に」というのさ
>>135 UML、デザパタ、BDD,分散VCSの使い方覚えろ
cでゲーム作るような入門者は、殆どの場合がQML以外触らない方が幸せ
140 :
デフォルトの名無しさん :2014/01/10(金) 17:04:17.15
CでGUIを備えたゲーム作ろうと思ったら、CからWindowsアプリケーションの開発までの間が高すぎる。 できるようになれば当たり前で何ともないけど、初心者だとウィンドウ出すだけでも大変だろ。 それに加えてウィンドウプロシージャでのメッセージ処理とかいきなり入ってくるし、かなりきつい。
141 :
デフォルトの名無しさん :2014/01/10(金) 17:49:46.29
じゃ何なら低いんだよw ICたたくプログラムをROM焼きならWindowsは出てこないが
GUIを備えてないゲームを作ればいんじゃね?
Windowsならc#だけ触ってりゃ良いでしょ cで玩具作るならunixの方が遥かに楽。 仕事になると途端にハードルが高くなり大量のPHPerが生まれる
Windows上でcを使うならサクラエディタや テラパッドの劣化版ぐらいが最初に目指すとこじゃね?
エディタを甘く見すぎ CでWindowsゲームプログラム初心者なら箱入り娘でもつくっとけ
簡単なゲームならLinux上でSDL+OpenGLが一番に楽。 何かの役に立つか立たないかでいえば、多分、別の選択肢がずっと良い c++でwxWidgetsかQtぐらいしかなくって、商業的に成功してるように見えるのがqt で、そこらのボンクラがc++で開発できるようになるか? ウェブ開発にでも行った方が幸せなので、QMLで遊んで機会を伺うというのが良いと思うの
ゲームを作りたいという人間は、まず本当にcで作る必要があるか 自分自身を疑った方が良いよ
149 :
デフォルトの名無しさん :2014/01/10(金) 18:51:37.22
OpenGLってCGやCADのような高価なアプリに使われてるというので、 DirectXより高級なものだと思っていた。 実際に使ってみると低級だった。
頭が定休?
ちょっとアセンブラちっくだよね
glBegin() glEnd() の入れ子内で glVertex??() を積み上げるんだけど glEnd が漏れると面倒なことがおきる んで、C言語だと入れ子を保障する機構をつくるのが難しいからいやん
153 :
デフォルトの名無しさん :2014/01/10(金) 19:23:37.41
>>148 動作が速いってのがポイントだと思う
ゲームなんて大抵の言語で作れるけど、実行速度はどこかで頭打ちになる
頭打ちになってから実行速度の速い言語を学習しなおすのも面倒だし
だったら最初からCでやったほうがいい
アセンブラのほうが速いけどアセンブラは面倒くさすぎる
>>133 釣りだろ、と思って100万回やってみたら意外に確率通りに分布してくれた
本当なのか?
155 :
デフォルトの名無しさん :2014/01/10(金) 19:38:10.06
質問です。 所持できるアイテムの上限を99個とするとき、アイテ ムを入手するたびにリアロックでアイテムを記憶する メモリを拡張していったほうがいいのでしょうか? それとも最初のマロックで99個分確保してしまったほ うがいいのでしょうか?
マロックってww mallocか getsをゲッツと読むような感覚
昔気になってYoutubeで見たけど ネイティブな外人さんもマロックって言うんだよな
>>159 盛り上げればいいんじゃん
ジャパンエキスポに 寄生する朝鮮人じゃないんだから
上限近くまで使われるのが普通なら最初に全部マロックしてしまうし、 数個程度しか使われないのが普通なら毎回リアロックするし、 間とをって、例えば4の倍数個ずつマロックするとか、そんな感じ。
>>159 だからスレチを見逃せってか
「人の嫌がることをすすんでやります」
の解釈が日本と異なる文化圏の人か
>>158 そうなのか
じゃあゲッツも許されるよな
freopenはフリオープンと読んでいるしgetcはゲッチと読んでいる
charはキャラと呼ばずにチャーと読んでる
getch()もゲッチと読むのか?w まあこれは環境依存の関数だけど
getch() → ゲッチ getc() → ゲック ゲッチは環境依存というよりカーシスの関数だな
>>162 そこまで言うならここでは言語仕様の話は今後一切するなよ。
「〇〇を実現するためのコード」は一切アウトってことでいいな。
いんくるーどすたじおえっち
>>166 こっちはこっちでやるから気にしなくていいよ
170 :
デフォルトの名無しさん :2014/01/10(金) 20:20:39.55
>延々 こういう曖昧な表現でしかモノを言えないのが自治のためだけに住み着いてる基地害w
荒らしのためだけに住み着くよりはマシだな
>>165 ゲックか
これからよう呼ばせてもらうかw
「あのーこのエフゲックなんですけど〜」とか社内で大声出したらどうなるかやってみるかw
Linuxでもあるねゲッチ
甘いな fgetcは「フゲック」だ fgri()なんて関数があったら「ふぐり」と呼べるんだが
175 :
デフォルトの名無しさん :2014/01/10(金) 20:28:21.09
>>161 難しいですね・・・。
開発者である自分自身のテストプレイでは平均40個く
らいまでですが、普通の人がどのくらい持つか分から
ないですし・・・。
リアロックって車の後部ドアをロックするようにも聞こえる そう言えばC++ではnewでrealloc()に相当するような関数はないが(Cのように使えばあるが)、 メモリブロックの調整で済むかコピーするかは実行時に判断出来ないので削ってしまったんだな コンテナ使えば関係ないし コピーコンストラクタと代入演算子の多重定義で相性が悪かったのかもしれんし ってここはC++のスレではなかった これこそスレ違い
ゲープロスレ立てたのってここの自治ゴミだろ テンプレも前スレもいい加減 スレの一つも満足に立ててから言えよゴミが
>>177 だから●持ってるんだけど知っての通り今はスレ立てに使えないだろうが
どれだけ不便してるか
荒らしはいつも偉そうだな まあ謙虚な荒らしなんていないがwww
だよな 気に入らないってだけで荒らし認定する糖質と同じくらい偉そうだよなwww
181 :
デフォルトの名無しさん :2014/01/10(金) 20:43:29.20
>>152 Cならさらっと書いてやるからどんな状況か詳しく
OpenGL使ってるのか 確かにCだと面倒だな
C言語でオシャレにラブレターみたいなの書けるの?
>>183 int main()
{
while(1){ printf("好きだ。愛してる。"); }
return 0;
}
>>183 IOCCCで、おしゃれなラブレターを見た記憶がある
>>181 C++ なら コンストラクタで glBegin デストラクタで glEnd ってやるクラス用意しといて
そのオブジェクトを作れば glBegin 〜 glEnd の入れ子の保障が文法の力で楽できるでしょ
(new 〜 delete は考えないw)
Cでそういう楽できるしくみって無理じゃない? 書く人の注意力に任すしか方法がないという感じなんだけど
188 :
187 :2014/01/10(金) 21:18:45.54
{ と } の数あわせろ ってのと同じ次元かも glBegin() が { に相当 glEnd() が } に相当 インデントするなりして間違いなく開いたら閉じろ ってね
>>187 どこのサンプルみても同じスコープ内でBeginとEndを対にしてるわけだが
>>189 んとね 自分で書いてるときに glEnd を書き漏らした場合にわからない
それを書き漏らさないように工夫できないか? そういう話
>>190 コンストラクタ、デストラクタに分けて書く方が、
begin,endの対を何処に書いたかわからなくなるだろ
fopen,fcloseの対も、glBegin,glEndも、
可能な限り同じスコープに書くもんじゃねーの?
ふむん 俺が特異ということか 同じスコープだよ Begin 数行 (End ここで閉じ忘れ) Begin 数行 End Begin 数行 End Begin 数行 End うまく描画できてなくて 閉じ忘れを見つけるのに苦労したもんでね。。。
>>184 FFにケット・シーとかいうのがいたような記憶が
関係ないけど
OpenGL使ってるとメモリリークの原因探るのに苦労する事ないか?
X11の時点でリークしてるからプロファイラ使ってるわw
196 :
デフォルトの名無しさん :2014/01/10(金) 21:57:05.66
>>188 myBegin()とmyEnd()とmyAllEnd()作って、
myBegin()ではglBegin()すると同時にカウンタを増やす。
myEnd()ではglEnd()すると同時にカウンタを増やす。
最後にmyAllEnd()を必ず1回呼び出すが、ここではカウンタの残り値の数だけglEnd()を呼び出す。
美しい、なんて美しい仕組みなんだ。
例えmyAllEnd()を2回呼んでもバグにならない至高の仕組み。
>>196 違うだろ
>>192 のトラブルを解決するにはBeginのラッパー作ってBeginラッパー内ではまずbeginフラグをチェックして、trueならまずEndしてからBeginしてbeginフラグを立てればよい
EndラッパーではEndすると同時にbeginにfalseをセットすればよい
perlかgrepつかって数えろ
>>196 循環しなければね、循環参照ならそうはいかないが、そのときはどうする?
>>197 ネストができないbegin〜endとか誰得?
201 :
デフォルトの名無しさん :2014/01/10(金) 22:09:36.72
文字列がただのファイル名かフルパスかを判定する方法を教えてってください
lintでOK
[ readlink -f $file = $file ]
それは相対パスであることが条件だな
つうか、glBegin/End とかやるのはもう古いよね。
reallocするはずのところをmallocしてたせいで メモリ上のデータが一部消える不可解なバグに3時間悩まされた 死ねよ
リンクが切れただけで消えてはいないんじゃない?
209 :
デフォルトの名無しさん :2014/01/10(金) 23:23:09.91
うるさいハゲ それくらい知ってるわ
211 :
デフォルトの名無しさん :2014/01/10(金) 23:56:38.77
それがどうしたチビデブ
>>207 自前でデバッグ用アロケータを作るがよい
213 :
201 :2014/01/11(土) 00:45:48.88
ありがとうございます
>>203 さんのを参考に
filename[1]==':'のときにフルパスだと判定することで目的が達成できました
これでマップとモンスターのデータが管理しやすくなります
お前らC言語でコーディングするときに聴いてる音楽教えろ
フィオナアップル
プリキュア連続再生
218 :
デフォルトの名無しさん :2014/01/11(土) 01:07:10.17
:
>>200 DirectXしか使ったことないんだけど、DirectXのBegin〜Endはネストしないぞ
OpenGLはネストするの?
219 :
デフォルトの名無しさん :2014/01/11(土) 01:40:01.05
お前ら未だにrand()使ってんのかよ。 学会によっては禁止されてるほどアレな関数だぞ。
そうかそうか
学会によらず禁止されたら取り込まれるさ
>学会によっては禁止 馬鹿はどうしようもないな。 用途によって禁止されるところがあるのはおかしなことではない。 むしろ標準化されることの重要性や 用途によって要求される乱数性の度合いを度外視して 「俺のすげーライブラリ」を進めてくる奴は迷惑千万
223 :
デフォルトの名無しさん :2014/01/11(土) 05:10:30.25
randをお使わなかったらどうしんだよ ミリ秒を割った」余りにでもするkっか?
禁句: てりやきツイスター
擬似乱数で周期が短いんだっけ? boostにあるmtなんとか推奨されてたな
ゲームプログラミングやってたら乱数ならメルセンヌツイスタとみみにたこができるくらい聞かされるだろ いつまですれ違いを続けてるんだ
ゲームの乱数なんて男女のテーブルで十分 能力的に無理だからそれ以上考えるな いい加減すれ違いやめれ
xorshiftがお手軽でいい
最大最小を求めるやつです ctrl+zで終了したいのですがctrl+z入力すると改行されて入力待ち、もう一回入れると終了します。 文字列に突っ込んでるからまずいのでしょうか? どうなってる%
すいませんm(_ _)m 最大最小を求めるやつです ctrl+zで終了したいのですがctrl+z入力すると改行されて入力待ち、もう一回入れると終了してくれます。 文字列に突っ込んでるからまずいのでしょうか? どうなってるのか教えてください void pr7(void) { int f=0;double max=0,min=0,c=1;char d="1"; char* a=&d; char* enda; printf("数字入れて:"); rewind(stdin); while(scanf("%s",a)!=EOF) { c=strtod(a,&enda); if (f==0){max=c;min=c;f++;} else if (c>=max) {max=c;printf("max");} else if(c<=min){min=c;} printf("%.2f",c); printf("\n数字入れて:"); rewind(stdin);} printf("max=%.2f,min=%.2f\n",max,min); }
UnixかWindowsのキー入力とかシグナルハンドラについて書かれた鈍器でも調べなさい
234 :
デフォルトの名無しさん :2014/01/11(土) 15:03:28.44
C言語を使ってエクセルのファイルを読み込む時に 都道府県名とかの漢字を表示せるやり方教えてくださいな ぐぐってもビットがちがうとかいまいちよくわからんかった ちなみにウインドウズ
何を言ってるか全く分からんがもしかしてバイナリデータを単純にテキストで読もうとしてるのだろうか
printf
さすがにCSVにしてるかパース用ライブラリ使ってるだろw
238 :
デフォルトの名無しさん :2014/01/11(土) 15:12:14.89
エクセルのデータを読み込んでコマンドプロンプトの実行画面で表示したいんだが、 漢字のところが記号とかになったりして困ってる うーん伝わるかな?
239 :
デフォルトの名無しさん :2014/01/11(土) 15:13:54.34
コンシューマーゲームってC言語で作られてるの?
240 :
デフォルトの名無しさん :2014/01/11(土) 15:16:03.81
ファイル閉じてからprintfで出力のとこは大丈夫だと思う char使ってやるのはあってますか?
アイテム画面でアイテムが画面に入りきらないときに カーソルが画面の一番下にきて、さらに下を押すとアイテム画面がスクロールするじゃん? あれってどうやんの?
>>240 カーソルの位置は変えずにアイテムの表示だけを変える。
243 :
234 :2014/01/11(土) 15:30:19.23
csvにしていなかったようだ 解決、ありがとう
>>242 やってみたけどアイテムと表示がずれるようになった
アイテム一覧はスクロールするけど
どれ選んでもスクロール前の一番下にあったアイテムになる
ゲーム制作スレ行くかソース貼りなさいよ
246 :
デフォルトの名無しさん :2014/01/11(土) 16:12:05.86
お前らカウンタ(cnt>=0)が0のときに処理を抜けるときどう書く? if (cnt==0)break; って書く? 俺はカウンタの数値そのものをミスってマイナスになってたら怖いから どうしても if (cnt<=0)break; って書いてしまうんだが
それはバグの発見を遅らせる拙い手だ
>>244 スクロール位置とカーソル位置を保持する
貴殿に差し上げる担々麺は御座いません
そんな丁寧に言われても
情報が古いかも知れないけどエクセルのファイルフォーマットって IStorageインターフェースを使うとファイル内ファイルシステムみたいに 読み込めるんじゃなかったっけ? OLEは言語非依存だからC言語からでも普通に操作できるよ と言うより、プリミティブな操作は大抵C言語で解説されてる
251 :
デフォルトの名無しさん :2014/01/11(土) 17:52:48.71
>>247 サンクス
ではお前らにもう一つ質問だ
不定回数(不定であって無限ではない)のループ処理でwhileを使う場合、無限ループ対策はしてる?
例えば理論上最大でも1000回でbreakするwhileループの場合、
何かの加減で無限ループになったら怖いから1ループごとに本来の処理目的とは関係ない変数cntをインクリメントして、
それが理論上の最大回数を超えた場合でもbreakするようにしたりしてる
cnt=0;
while(1){
//本来の処理
//本来の処理、何らかの条件でbreak
//本来の処理
//本来の処理
cnt++;
if (cnt>=1000)break;
}
本来の処理でメモリ操作ミスってcntがやられたとき(cntが永遠に1000を越えないようなバグ)の対策もしといたほうがいいかな
cnt=0; while (1) { if (cnt == 1000) { break; // 処理1 // 処理2 // … } } ifの位置が違って気持ち悪い 普通ならこう書くけど ループってのは、最初に条件分岐するってわかってる??
まあ無限ループ対策が有効な場合はあるけど メモリ操作云々まで気にするならもはやCなんか窓から投げ捨てろ
スマホで書いたらえらい間違ってるな cnt=0; while (1) { if (cnt == 1000) { break; } // 処理1 // 処理2 // … cnt++; }
このスレ見てるとものすごい勢いでゲーム量産されてるな
>>251 >何かの加減で無限ループになったら
こういうのを対処療法的に解決するのは間違い
無限ループになる原因を取り除かなくては駄目
while (cnt < 1000)にしろよ
if(1000 == cnt){} って、定数を前に置けってバッちゃがいってた
>>255 そして、就活時にDirectXやUnityで作られたゲームを見て絶望する大量の情報システム科
電検三種を持って、制御理論の研究室へ行くの技術者っぽい仕事が出来て、 それ以外は、多分、ぺちぱーになるんだ。
GUIプログラミングに沢山の選択肢があるけど、 swingが一番に枯れてて、多くのツールキットに影響を与えているんだ 今日日、cでゲーム作るってすごい情弱。陸の孤島にでも住んでるの?
既存のフレームワークがないと何もできない情弱が何か言ってるぞw もし世界にフレームワークが1つもなかったらこいつはどうするつもりだろうなw
ありえない仮定に意味は無い
いや俺が気持ちよくなる という重大な意味がある
既存のフレワは汎用性が高い代わりに重い。 まぁ重いと感じるところまでいかないゲームしか作れない奴には 縁のない話かもしれないが。
266 :
デフォルトの名無しさん :2014/01/11(土) 20:53:08.57
C言語でアイテムエディタの作り方教えてくれ コンソールアプリでも構わん
だがアイテムデータのフォーマットはまだ決まっていない(キリッ
フレワwww バね!
269 :
デフォルトの名無しさん :2014/01/11(土) 21:03:57.88
フォーマットは決まってないっつーか決めてない、汎用のだよ ジャンルも自分で剣とか槍とか好きなのを追加して、さらにそれぞれのジャンルに攻撃力とか命中率とか好きなパラメーターを追加して アイテムを登録するときはそれぞれの項目の入力を求められたり、登録したら勝手にユニークなIDを割り振ってくれたりするやつ
270 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/11(土) 21:04:27.51
>>266 MySQLとかSQLiteとか使えば色々便利
どんなゲームのアイテムか知らんけどMMORPGでもない限りデータベース使うのは面倒だろ。
>>269 構造体のポインタの配列でいいだろ。
なにがわからんの?
昔とは違って最近のデータベースは当たり前にGUIが付いてくる。 ユニークID付けるのは自動ででできるし、大規模な設計変更にも対応できる。 SQL勉強したての馬鹿でも使えるよ。使わないのは馬鹿
>>273 はぁ?
いちいちitemid INTEGER UNIQUEとかやんのかよめんどくせー
楽できるようなもん作れとかいってるのかな
>>272 画像、音楽、モーション、AI、セリフ諸々のリソース管理したいって事じゃない?
uniqueにするのも、チェックボックスにチェック入れてボタンを押すだけでできる。 それに多人数での開発でも使える。メリットがこんなにあるのに使わない理由はない
278 :
デフォルトの名無しさん :2014/01/11(土) 21:47:11.30
何でアイテムにセリフが出てくるんだよw
おカネに余裕あるならMicrosoft Accessでも使えば? 入力補完まで付いてくるよ
アクセスなんて使うかよ 無能の象徴じゃん
アクセスはブビ厨御用達の低脳向けツール
LibreOffice Base
filemaker
285 :
デフォルトの名無しさん :2014/01/11(土) 23:17:05.43
すでにGPLという教義にしたがうFSFという新興宗教があってだな
phpmyadmin
>>285 free不要なwindowsは邪神かw
やっぱりアクセス最強
free教: 飼い犬の鎖をはずし ブラのホックをはずし この世のすべてを解放・無料化する
たましいを肉体から解放
このプログラムのおかしいところを教えてください 関数形式マクロでint型とdouble型の差を求めるやつなのですが コンパイルできません・・・ #include <stdio.h> #define diff(x,y) ((x>y) ? (x-y) : (y-x)) { int nx,ny; double dx,dy; puts("二つの整数を入力してください。"); printf("整数A:"); scanf("%d",&nx); printf("整数B:"); scanf("%d",&ny); printf("その差は%dです。\n",diff(nx,ny)); puts("二つの実数を入力してください。"); printf("整数A:"); scanf("%lf",&dx); printf("整数B:"); scanf("%lf",&dy); printf("その差は%fです。\n",diff(dx,dy)); return 0; }
294 :
デフォルトの名無しさん :2014/01/12(日) 02:20:29.17
0以上の整数を引数として受けとる自作関数を呼び出すときに、引数(変数)の値チェックはどこでやる? 俺は心配性だから呼び出す前と呼び出した後の2回やってるんだが if (test<0) return -1; if (TestFunc(test)!=0) return -1; int TestFunc(int x) { if (x<0) return -1; //処理 return 0; }
>>293 #define diff(x,y) ((x>y) ? (x-y) : (y-x))
int main(void)// <- これ
{
296 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/12(日) 02:34:55.77
>>295 うわぁ・・・関数形式マクロの練習だったからそればっかりに気を取られてて完全に忘れてました・・・
恥ずかしい・・・
ありがとうございます、無事コンパイルできました
cなんて使うことないからSQLとPHPでも齧ってろ
なんかしらんけど ピェッチピピェッチピ とダイナマイト四国風に脳内再生された
cでプログラムを書くぐらい無駄な時間ないぞ gtkみたいなミドルウェア書けるレベルまで習熟するか、 言語処理系のコミッタになるか、BSDのコードと寝食を共にするかぐらい Javaかc#かPHPが妥当な選択肢で、Windowsから離れないでc#が最小努力
>>293 マクロは副作用があるので_Genericを使え。
100歩譲って
#define diff(x,y) (((x)>(y)) ? ((x)-(y)) : ((y)-(x)))
大抵の言語の実装なんてCで書いてあるんだし まともにプログラム勉強してる人間でC不要なんて言う奴はあり得ない 実務で使うとかは関係ない 結局どの言語を学ぶにしても、奥深いところではC言語の知識が必要になる に決まってる
老人の妄想もここまで来ると哀れだな。 自分たちが世間から要らないゴミと認識されている事実を どうしても認められないらしい。
>>303 代替え言語はあるの?
それを提示してくれないことには
どっかの国の大統領と同じだぞ
てか、スレタイ見えてる?
気味悪いよ
305 :
デフォルトの名無しさん :2014/01/12(日) 03:45:55.18
時間が時間だしな C#の亡霊か何かだろw
夜な夜な現れてはC言語ユーザーの生き血を求めてさ迷い歩くC#の怨霊。 C言語ユーザーを見つけると 「C#を使え〜」 と呪文を唱えてくる。 捕まるとC#厨にされてしまう。
という夢を毎晩見るのですが、 どうすればいいのでしょうか? 私は正常です。
310 :
デフォルトの名無しさん :2014/01/12(日) 11:01:28.06
ブラのホックを外したら自動でツイートされるやつあったな
ブラ: ブラケット {} ホック: hook
312 :
デフォルトの名無しさん :2014/01/12(日) 13:06:24.94
ダメージ計算の方法を教えてください ダメージ = ( 攻撃力 - 防御力 ) * 弱点属性倍率 にしようかと思ったのですが、攻撃力と防御力が近いとほとんどダメージ出なかったり 防御力のほうが高いとマイナスダメージになります また、最後のほうになるとHPも高くなってきて、ダメージも相対的に高くしないとなかなか死なないのですが 攻撃力も防御力も上がる現状だとダメージがほとんど上がりません
ダメ = 攻撃 * ( 攻撃 / ( 攻撃 + 防御 ) )
314 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/12(日) 13:47:41.87
方眼用紙でダメージのグラフを書いてみたら? float k,m;//係数 int ダメージ計算(int 攻撃力, int 防御力, float 弱点属性倍率) { int n = (攻撃力-(1.0-弱点属性倍率)*防御力*m)*k; if (n<0)n=0; return n }
>>304 c#がcの代わりにならないのと同様に、cはc#の代わりになりえない
cが重要だなんていうのは亡霊たちの妄言
cで何かをしたところで幸せにはなれない
重要かどうかなんてのは俺は知らんが C#でCの代わりにならないんだから Cでやるべきところがあるわけだろ
案件次第だし、ほとんどはc#で済むし、c#の方が幸せになれる 私を信じない人間はプログラミング地獄に堕ちるだけ
C#で済ませられる案件は全体のほんの一部なのに それしか出来ない人なんですね?
釣りだろ? 『まともにプログラム勉強してる人間でC不要なんて言う奴は あ り 得 な い』 『奥深いところではC言語の知識が必要になるに 決 ま っ て る』 常識的な思考を持った人間の発言じゃない。
この世は C#で作ったほうが幸せなシステムと Cでないと作れないシステムと その2つの区別つかない阿呆とが共存する そういう世界である
>>319 自分にcが必要なのかc#が必要なのかすら分かってないんじゃない?
Cをアセンブラに置き換えてみよう! 『まともにプログラム勉強してる人間でアセンブラ不要なんて言う奴は あ り 得 な い』 『奥深いところではアセンブラの知識が必要になるに 決 ま っ て る』 加齢臭がぷんぷんですね。困ったものです。
C#使う人って、ハード寄りのことは全然知らない、分からない人なの?
C#遅いじゃん まぁそれが遅いと感じない程度の規模のものしか作れない奴には縁のない話か
そこに規模は関係ないでしょ
328 :
デフォルトの名無しさん :2014/01/12(日) 19:27:32.42
>>323 煽ってるつもりか知らんが、あまりにもみっともないぞ
加齢臭より小便臭さを気にしたほうがいい
329 :
デフォルトの名無しさん :2014/01/12(日) 19:27:36.14
>>323 はなぜか突然アセンブラに置き換える話を始めたアスペ
いきなりアセンブラに置き換えて加齢臭が云々とかき違い臭がする
数学がよくわからないならエクセルもよくわからないと思った。 アナログ的なのがいいかなと
>>323 はネタで言ってんのに何マジになってんだ。
みんなで色んなものに置き換えてみよう。
『まともにプログラム勉強してる人間で生駒里奈不要なんて言う奴は あ り 得 な い』
『奥深いところでは生駒里奈の知識が必要になるに 決 ま っ て る』
小学四年生でゲーム作ってるってスゴくない? えっへん! みたいな
C/C++で作られたOSの上で C/C++で作られたデバイスドライバを使ってマウスやキーボードを接続し C/C++で作られたIDEを使って C/C++で作られた処理系とライブラリを使って そこまで揃って初めてC#のコードを書いて動かせるわけだ。
>>323 お前のIPは52.175.3.142だな
今からハッキングする
半導体から作れやボケ!
最近、気付いた。プログラミングを勉強するヤツはアホだ
マジスレすると小学生からプログラミングして中学でアプリ売ってる奴見ると そいつに対する悪口って「プログラミングよりもっと他の事あるだろ人生もっと 他に目を向けろ」なんだよな、どう考えたって中学でプログラミングできる奴は 得してるわけで、辛うじてネガティブ意見と相殺して目立たなくなってるけど 内心悔しくて仕方ない、何故、俺は中学高校とインターネットしてたくせにプロ グラミングをしなかったのだと!後悔!!
340 :
デフォルトの名無しさん :2014/01/12(日) 20:31:54.61
グーグル、アップル、フェイスブックの本社勤務プログラマの平均年収は日本円換算で1200〜1300円 使い捨ての日本プログラマと比べて圧倒的な差がある 企業全体の平均年収じゃないからな、プログラマの平均年収だからな つまりCEOや凄腕営業マンの年収は含まずにこれだけの年収を叩き出す まぁそういうところで働いてる奴らは罵声の飛び交う匿名掲示板になんか出入りしてないだろうよw
勉強するアホとしないアホがいる 好きなほうを選べ
平均年収は日本円換算で1200〜1300円
>>340 とにかく戻れるなら中学生に戻りたい、野球部なんて入らずに
コン部入ってBASICいじればよかった、で高校でアプリ作って年収500万で
大学も行かなかったろうな
>>339 このスレにいてこんなこというのはあれだけど
小学校からプログラミングするよりは真面目に勉強していい大学に入るほうがいいよね
まあ一般論だけどさ
346 :
デフォルトの名無しさん :2014/01/12(日) 20:35:08.07
すまん、万が抜けた 1200〜1300万円
>>345 プログラマーになるつもりないし、IT企業の営業が一番やりたいことだけど
趣味で大学時代にアプリで稼げるなら、そんな実りある学生時代は無かったよ
大学入って3年、4年になってようやくプログラミングするとか俺人生設計
読めなさすぎなんだよなー、馬鹿だろ?
>>345 小学生からプログラミングを初めてE欄kkdrぐらいが良いんじゃね?
大学からプログラミング初めても本格的なコードなんて読めねぇよ
>>348 コードは読めないがアプリは作れるじゃん、1000行ものソースコードを
分析とか全く興味無いけど、アプリ作れるじゃん、凄い事じゃない?
どちらかと言えばの話だけど、アプリで年500万稼いでる奴より 株で年1000万稼いでる奴のほうが魅力的に見える
>>349 1000行って何かの冗談?
プログラミングなんて、はじめない方がマシってレベル
>>350 そういう人ってさ、論理的思考よりも直感とか嗅覚がすごいんじゃない?
>>349 担当していたプログラム、各ソースが1万行あった
FOSSのコードを眺めたこともないアホがIT業界へ入る恐ろしさ
関数型(笑)金融工学(笑)
>>355 どう考えてみてもcやJavaのコードを書くより
RとかExcel、Accessを扱う方が明らかに楽
>>355 ファイナンスの分野で関数型が使われてるのは確実でないの?
派生製品の計算が面倒だとか、JaneStreetのOcamlのステマでやってたよ
c/c++、Java、c#やPHPのコードをゴリゴリ書くより楽しそうだし給料よさそう
関数型言語と最適化数学だけ齧って商社マンにでもなる方が、ずっと幸せな人生だと思う
時間を割いてcを学んだり、アンドロイドアプリ作るとか情弱のやることじゃない?
c言語入門なんて、ダメ絶対
359 :
デフォルトの名無しさん :2014/01/12(日) 21:13:32.61
眺めるだけならいけぬまでもうましかでもできる
大学からプログラミング初めて本格的なコードが読めないのは、単にそいつがアホだからだろ
>>359 眺めたことないうましかがIT業界へ参入って、眺めただけのうましかより危険でしょ?
眺めたことないうましかが書くコードの変数名なんて、ちょっと考えたくない
>>360 その本格的なコードって、何さ?何読むべきなの?
363 :
デフォルトの名無しさん :2014/01/12(日) 21:45:42.43
プログラミング言語ツクール作ろうぜ
364 :
デフォルトの名無しさん :2014/01/12(日) 21:56:35.29
>>362 GNU textutils
Linux
Inkscape
GIMP
Emacs
俺が考えてるのはブラウザーの中で動く もう一つのウインドウマネージャー JavaScriptのコードからvar w = CreateWindow() 見たいにして使える奴 HTML5互換で、独自のJavaScriptパーサー持ってて UI拡張できる 最初は無料で配ってシェア拡大したらGoogleかMSに 売っぱらう どう考えてもあいつらより俺たちの方が頭は上だろ
>>364 んなもん全部ながめたわ
コミットするレベルで理解できなきゃ意味ねーだろ
おまえ、ホントにそれ全部、読んだの?
368 :
デフォルトの名無しさん :2014/01/12(日) 22:10:51.22
>>365 俺たちってお前と一緒にされても困る。
お前は上かもしれないが俺は知らん。
どちらにしても行動力のある奴が勝つ。
>>364 初心者にはデカくて、まともに読みきれるサイズじゃないだろ
GNUStepのサイトにおいてあるトイプログラムの方が小粒だし必要な処理かかれてる
今ならgtkみたいに将来さわる可能性があるかないか分からないソースよりは、
Swing製の小さいソフトウェアをしっかり読み込むけど
関数型言語に最適化数学。c/c++なんて、ダメ絶対。 cでアルゴリズムをガリガリ書いたり、FOSSのコードを読むってのが 無意味かつ虚しい努力だって悟りの体験をしたよ
じゃあなにをやれっていうのさ
372 :
デフォルトの名無しさん :2014/01/12(日) 23:36:16.80
すいません、二段ジャンプってどうやって実装するんですか? ジャンプ中にジャンプボタンが効くようにしたら無限段ジャンプできるようになってしまいました。
フラグ立てればいいんじゃないの
>>369 で、読み込んだらJNIてっるとかよくあるパターンだよね
真面目な話
Java屋のおばちゃんやらスクリプタのお兄ちゃんでも
Cが書けない人ってまずいないよ
質問です、ハード屋さん多いから聞いていいですかね 3Dアクセラレーター(グラフィックボード)とGPU(CPUじゃない)の違いって何ですか? どっちもCPUでは不可能な演算できるって事は分かるんですが、何か細かな違いありますか?
まず >3Dアクセラレーター(グラフィックボード)とGPU(CPU この対比が意味不明でスレ違い
377 :
デフォルトの名無しさん :2014/01/13(月) 01:51:43.39
>>361 いや同じだよ
内容に踏み込んだかどうかが肝心だ
変数名なんか案件ごとに決まりがあるし、
クセを自己主張に使う変なやつは公害でしかない
サヨクじみてきましたw 自動車も禁止にしたほうがいいね
379 :
デフォルトの名無しさん :2014/01/13(月) 05:22:30.40
>>373 二段階目かどうかのフラグを新たに用意しました。
結構原始的な感じの解決方法しかないのですね。
原始的な方法すら自分で思いつけなかったことを恥ずかしく思えよw
オブジェクト指向言語だったら、Stateパターンを使ってフラグとか条件分岐無しでスマートに書けるぞ。
ゲームなんか作ってどうするのよ 周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに ゲームプログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ しかも10年も経てば今やってることなんざ時代遅れの何の役にも立たない糞知識と化すの分かってるのに 時間とエネルギーの無駄TOEICの勉強でもしてた方がなんぼかマシ 履歴書に特技ゲームプログラミングとか書くのか世間はキモオタとしか見ないよ残念
自分ができなかったからって他人の足を引っ張ることに一生懸命にならなくてもいいのにw
コピペをわざわざ保存してかまって厨アピールご苦労さまです
>>382 自動化する側と自動化される側のどちらになりたい?
ソルジャーに自動小銃を付きつけられている士業者
コンパイラについて質問です。 forxという変数名があった場合、繰り返しのforとかぶって エラーが出ると思うのですが、コンパイラはエラーを出さないのは 何故ですか?どういう仕組みなんでしょうか? コンパイラの作り方が紹介されてるページが殆ど無いため自分ではわかりません。
単語単位で拾ってるから ある程度の先読みをしないと複数の候補からひとつを選べないというのは多々ある それ以上調べる気があるなら 構文解析でぐぐれ 本気でコンパイラ作る気ならドラゴンブック読め
構文解析って難しいですか?理解に何日かかります?
392 :
デフォルトの名無しさん :2014/01/13(月) 13:19:03.63
ゲーム用の3Dモデラー作ってるんだけど、小数の値がたまにずれる 2進数で管理してるから仕方ないことかもしれないけど何とかずれない方法ない?
393 :
デフォルトの名無しさん :2014/01/13(月) 13:32:01.58
ずれるというのはどういうことだろ? まさかだけど==で比較して合わないとか? 普通合わないよ。
394 :
デフォルトの名無しさん :2014/01/13(月) 13:38:35.84
>>391 早い人はパラパラめくるだけで全部把握するみたいだよ。
俺はドラゴンブック上巻は三回買ったよ。
何回読んだかわからないくらい読んだよ。
実際に一通り実装して初めてなぜそうしてあるのかわかった感じだったよ。
だから個人差が大きいんじゃない?
二チャンネル平均だと2〜3時間くらいじゃないかな。
俺はその100倍かかった。
スクリプトスレ行くと優秀な人が多いよ。
>>394 ありがとうございます、200時間ですか.....
俺もっとかかりそうです
396 :
395 :2014/01/13(月) 13:51:11.41
>>394 後、シンプルな題名でコンパイラって本があるんですが
コンパイラ(湯浅太一著)、これ知ってますか?
397 :
デフォルトの名無しさん :2014/01/13(月) 13:57:21.90
>>397 あー欲しいなー
何でネットはコンパイラの情報が無いんだろう、金無いw
誰か譲ってくれませんか?
399 :
デフォルトの名無しさん :2014/01/13(月) 14:02:14.33
図書館はどうでしょうか。
英語でc言語って何て言うんですか?コンピューターランゲージシーとかですか?
アプリ開発の超初心者の質問です。 アップルアプリを作ろうと思ってます。 Macが無いのでWindowsで作りたいのですがハードル高いですか? 初心者は素直にMac買っといた方がいいですかね? Macが高いので買うのを渋っています。 よろしくお願いします。
Androidの方が将来性がある
ふつうのコンパイラをつくろう、と オライリーから出てる構文解析の本の方が入門に向いてんじゃね?
>>403 iPhoneもAndroidも市場が飽和しているんじゃ?
Windows Phoneって市場の方が競合すくないと思うんだけど
406 :
デフォルトの名無しさん :2014/01/13(月) 18:44:03.89
>>405 iphoneを捨ててまでWindowsPhoneに乗り換える理由が今ひとつ‥‥
この世の中で最も勝ち組の人間=高等専門学校情報学科卒 異論は認めない
だけど、二次元のおっぱいを描いてる人たちの方がもっと幸せそうだよね
配列ってどれくらいまでなら動的にメモリ呼び出さなくてもいいですか? str[10000]くらいですか?
コンパイルオプションでスタックサイズをいくつに指定したかによる
static な配列ならスタックサイズは関係ないのでは?
>>410 個人的には255まで
それ以上を静的に確保する奴は童貞
そもそも実行環境のほうで縛りがあるだろ
static double data[44100]; とかやっちゃ駄目なんですか。
あきまへん!!!!あきまへん!!!!!!!! あ き ま へ ん ! ! !
>>414 256でしょ
その間違いはちと有り得ない
>>415 問題がなければ(←ここ最重要)自由です
関数ポインタって何に使うんですか? int ( *pf )( int ); pf = func; ( *pf )( 5 ); みたいにするなら最初からfunc( 5 );でいいじゃないですか
>>419 sortの比較関数とか想像すればすぐに理解できるんじゃないかな
>>419 signalのハンドラ関数とか想像すればすぐに理解できるんじゃないかな
>>419 関数の配列は作れないけど、関数ポインタの配列なら作れる。
状態遷移テーブル作るとか、色々面白い使い方が出来る。
424 :
デフォルトの名無しさん :2014/01/14(火) 02:09:11.13
>>419 ゲーム作るときに使う
ゲームは戦闘中でもマップでも秒間何十回と描画してるんだけど、その度に
if (戦闘のとき){
Battle();
}else if (マップのとき){
Map();
}else if (タイトル画面){
Title();
}
とか条件分岐やってたら無駄だろ?
だからマップとか戦闘とか切り替わったときに
Runに各関数のアドレスを入れて、毎フレーム条件分岐なしで(*Run)()を呼び出すだけにするんだよ
今時、ゲームをcで書く人たちいたの? c++でリファレンス使った方が速そう c#でUnityさわった方が早そう
426 :
デフォルトの名無しさん :2014/01/14(火) 03:01:33.94
あーそーかい そもそもゲームを「書く」ということが どれほど特殊なことか知らない おめでたいやつだな
427 :
デフォルトの名無しさん :2014/01/14(火) 03:59:54.62
>>425 CAPCOMのMT Framework2.0が何言語で書かれてるか知ってて言ってる?
428 :
デフォルトの名無しさん :2014/01/14(火) 08:48:58.46
C言語で素数判定のプログラムを組んでいますが、上手くいきません ご教授おねがいします google検索ではint main(void)という関数を良く見るのですが、main()以外の関数をまだ使ったことがないのでこちらで教えて頂けると助かります
素数判定に使う関数なんて結果表示用のprintfくらいだろ あと演算子と、素数がどういった数かを調べれば分かる
>>427 そういうマイナーかつレガシーな場面でしか使われてないってことですね
>>431 何でも好きなの使えばいいよ
問題は 出来 だ
>>428 関数の作り方じゃろ
そもそも素数判定が目的じゃなくて関数を作るのが目的の課題なんじゃないか
>>428 素数判定の関数なんてないよ
まず素数が何かを調べたほうが早いんじゃね
素数は、わたしに勇気を与えてくれる
○○の風景の絵を描いてみましょうといわれて 必死に写真を探して提出しようとする姿を妄想
カプコンが何を使おうと俺が最強になることとは何の関係もないからどうでもいい
前も書き込みした記憶あるけどvisual studioってタダで使えて凄い助かるんだけど 企業にとってメリットってあるのかな?開発環境を提供→プログラム開発が盛んになり ライバル増える事にならない?
440 :
デフォルトの名無しさん :2014/01/14(火) 17:39:21.31
学生さんに自分とこの製品で勉強して貰えることに大きなメリットがある 学生さんに限らず、転職を考えている人もそう 本職で他社製品を使っている人に、鞍替えをそそのかすこともできるし
>>439 コンパイラもIDEもタダで手に入る時代だから、
評価版ぐらいタダで配らないと誰も使わない
442 :
デフォルトの名無しさん :2014/01/14(火) 17:59:58.38
開発ツールのベンダにとって有名になることは死活問題だからな 勢力分布には正のフィードバックがかかるから、些細なことが命運を分けるほどの問題になる
visual studio, delphi, eclipse, netbeans, InteliJ ぐらいしか選択肢ないだろ.
445 :
デフォルトの名無しさん :2014/01/14(火) 19:52:57.46
>>444 おまえさ、ぼけるなら自分も何か投下しろよな
色んなことのタイミングや、規格対応のうち無くても別に困らない機能だとか、色々あるやん
>>445 お前のレスが一番抽象的でわけがわからん
447 :
デフォルトの名無しさん :2014/01/14(火) 20:10:45.09
,.,.,.,.,.,.,.,.,__ ,,;f::::::::::::::::::::::ヽ i::::::::/'" ̄ ̄ヾi |:::::::| ,,,,,_ ,,,,,,| |r-==( 。);( 。) ( ヽ :::__)..:: } ,____/ヽ ー== ; ほほう それでそれで? r'"ヽ t、 \___ ! / 、、i ヽ__,,/ / ヽノ j , j |ヽ |⌒`'、__ / / /r | {  ̄''ー-、,,_,ヘ^ | ゝ-,,,_____)--、j / \__ / | "'ー‐‐---''
ベンダにとっちゃ有名になっちゃダメってこと? 開発ツールを広めたいけど、広めすぎてもダメってことか? よくわからん
MSはOS売ってるんだから、OSを使って貰うには沢山ソフトが出ている必要が有るからね。 開発ツールを提供せず、自前のソフトしか無いOSなんて誰も使わないし、 逆に使いやすい開発ツールを提供して沢山作って貰えば、それだけOSも売れるし、 自前のソフトもその分売れるから。
#include <stdio.h> /*
>>419 two3.c */
typedef int (*INT_FUNCTION)(int, int);
int x_function(int a, int b){
int x = a * b;
return x;
}
int sum_function(int a, int b){
int sum = a + b;
return sum;
}
void two_three(INT_FUNCTION p){
printf("answer = %d\n", p(2, 3) );
}
int main(int argc, char *argv[]){
INT_FUNCTION p;
if(argc == 2 && *argv[1] == 'x') {
p = x_function;
} else {
p = sum_function;
}
two_three(p);
return 0;
}
/*
C:\work>two3
answer = 5
C:\work>two3 x
answer = 6
*/
>>450 それで説明したつもりか
コンパイル時には未定で実行時に決められる
と言いたかったのだろうが
ヒントにもならなかっただろうなごくろう
452 :
デフォルトの名無しさん :2014/01/14(火) 22:57:30.98
C言語でフレームワークを作ろう!
railsみたいなWebフレームワーク
webtoolkit2ch.js
456 :
デフォルトの名無しさん :2014/01/14(火) 23:32:09.42
>>454 無理。絶対Ruby,js,C++に勝てない
Cで書いてもあんまり良い事はないんじゃないの? rubyのサブセットを再実装するような作業だと思うよ。
>>456 railsがWebアプリケーションに必要な要素を洗い出したんだから、
俺以外の誰かが本気だせばRailsライクなc製のWebフレームワークぐらい出てきそう
>>458 どこが?
Cの膨大なライブラリを使い放題だから意味あるだろーが
それにCしか使えない場所でも使える。AndroidはJavaかCで開発できる
Rubyは使えない
>>458 文法が簡潔。そして、速い。
PHPを使わなくて済む。
組込み技術者をWebに使える。
>>460 >Cの膨大なライブラリ
体系的にまとまったものでもあるのですかね?
解放が自動化できない、コンパイルが必要な点で負け戦
>>461 どうでもいいmalloc()/free()に気をとられてしまうCで文字列操作とか、何かの罰ゲームですか?
「ガベコレがない言語なんてヤダ!」 もはやWebフレームワークとまったく無関係なゆとり自慢になってワロタ
>>463 スマートポインタかGCみたいな仕組みをフレームワークに導入したら良い
修正は一部のファイルだけだから、そんなに時間かからないと嬉しいな
そこで Boehm GCですよ、と
何言ってるんだこの人
>>467 CでできることをあえてC++/Dでやる必要がない
Perlで、Rubyで、Pythonで、PHPで、 こう書けなんていったベストプラクティスからの開放運動
>>443 Delphiが自ら脱落したからVSとEclipse系しかない
結局、この2社が四半世紀以上に渡って業界を支配してるんだよな
Googleもがんばってるけど、決定打がでない
>>449 Officeで稼いだ金でVSを強化
VSの強みでOSを普及
OSの普及度でOfficeを拡販
無限ループって怖いよね
>>458 apacheとrailsが一体となった新世代の特化型サーバだよ
Cの速度とrailsの利便性が1つになって
速度と開発効率の両方で競争力を持つ
いつまでもapacheの支配下に甘んじている必要があるだろうか?
railsの利便性ってのはrubyみたいな動的な言語によるところが多いと思うんだけど、 それをCで再現しようとすれば、結局rubyがやってるような事をやる必要があって、 ガチガチに書いた融通の利かないものと比べたら速度はずっと落ちるんではないのかしら。
まず書いて晒せば
>>471 C++ でできることを C で書くとか、やっぱりなんかの罰ゲームに違いない‥
あぁこれは需要がないなっての決め打ちで好き勝手やればいいけど おっなかなかいいんじゃない?となればCで書くよね で、他の言語でラップする これはCも例外ではなくお好きなように各種ラッパーが書こうとするだろうけど いかんせん言語仕様上の制限がありマクロベースで臭くなる
ネットワークプログラミングでゲームをつくろうとしています ソケットに色々なデータを詰め込んだ構造体をそのまま渡したいのですがどうすればいいのでしょうか
>>479 >おっなかなかいいんじゃない?となればCで書くよね
いいんじゃない?て思えばC++でかくね
シリアライズすればいい
アライメントにビット環境やエンディアンなんかの問題もあるでしょうね そこでシリアライズです
>>484 いやいや new(nothrow) なんだ、例外の実装をいまいち理解していないからね、setjmp/longjmp らしいんだけど
エラーが発生するのです!(ババーン)
491 :
デフォルトの名無しさん :2014/01/15(水) 02:44:16.40
ゲームつっても色々あるだろ 例えばコンソールの数当てゲームをCではなくC++で書くメリットあんの?
C++でクラスとして作成すれば、数当てゲームをオブジェクトとして扱うことができるようになる。 これにより、何かのときに再利用(RPG中のミニゲームに使う等)することが可能となる。
後からGUIにしたくなった時とか?あと他言語での再利用性
494 :
デフォルトの名無しさん :2014/01/15(水) 03:54:33.96
クラスにしなくても専用の構造体と関数をライブラリにすればすむだろ池沼
496 :
デフォルトの名無しさん :2014/01/15(水) 08:12:57.85
>>495 > もしクラス型のスタティック変数やグローバル変数が必要であれば、main() 関数か
> pthread_once() 関数で(決して free されない)ポインタを初期化することを検討してください。
free必須教の信者はgoogle使わないように
>496 却下 プログラムで割り当てたヒープメモリーは全て プログラム内で明示的に開放しなくてはなりません これは、ヒープトラッキングツールを使用して、メモリーリークが 存在しないことを確認するのが常識ですが、解放されないメモリー の存在を肯定することによってそれが見えないか(見えにくく)なって しまうからです。 上記が2chの標準コーディング規約になります
498 :
デフォルトの名無しさん :2014/01/15(水) 08:28:15.42
>>496 危ない危ない・・・教えてくれてありがと
今後googleの開発には参加しないことにするわ
500 :
デフォルトの名無しさん :2014/01/15(水) 09:38:19.68
んじゃ、狂信者はputenv使わないのか? まさか、全部staticで用意するとか それとも、わざわざ記録しといてfreeするのか? 大変だな w
501 :
デフォルトの名無しさん :2014/01/15(水) 09:50:02.23
putenvって何?
GoogleとかMSに手取り足とり教えてもらわなきゃ 何も書けない奴は言う通りにしたらええ
503 :
デフォルトの名無しさん :2014/01/15(水) 09:56:58.97
putenvはどうすんだよ
mallocしたものをfreeするぐらい息をするのと同じぐらい簡単だろう こんなことも出来ない奴はC使わないほうがいい、には同意だけど
505 :
デフォルトの名無しさん :2014/01/15(水) 13:18:48.50
sprintfでファイルを読み込もうとしているのですが、 data1.txt、data2.txt、data3.txt ではなく、 data21.txt、data44.txt、data111.txt など不連続の場合はどうしたらいいでしょうか? ***.txtなど拡張子のみ指定して読み込む方法はありますか? ちなみに中身はただの数値データ群です。
>>505 MS系ならfindfirstとかunix系ならopendirとか、存在するファイルをリストアップする関数がある。
>>504 100行前後の宿題ならね
>>505 正規表現ライブラリでググる
ナンバーだけ空けといて、ファイルが存在がしたら読み込む
for(i=0; i<100; i++){ char filename[64]; sprintf("%s%d.txt",filename,i); FILE *fp = fopen(filename,"r"); if(fp){ // 適当な処理 } fclose(fp); }
509 :
505 :2014/01/15(水) 13:41:52.48
返信ありがとうございます。 今からやってみます
510 :
デフォルトの名無しさん :2014/01/15(水) 13:51:49.01
質問お願いします なんでcharポインタは deleteで解放しなくても良いの?
Cにdeleteなんてないよ
>>510 const char*はコンパイル時に、たしかBSS領域とか仰々しい場所に置かれるから
関数内のchar[]は、関数スタックに置かれるので関数を出たと同時に開放されるから
で、mallocはコンパイル後、ヒープ領域へ動的にメモリを確保するから ヒープ領域に確保したメモリをfreeで開放しわすれる
エスパーすげー
絶対freeしなきゃいけないって、まぁ最初のころはそう思い込むもんだよ。
>>514 cプログラマを目指したぺちぱーとかなら常識な話
charポインタは、auto変数。 整数型、文字型、浮動小数点型も、auto変数。
518 :
デフォルトの名無しさん :2014/01/15(水) 14:25:32.35
>>512 んなわけねーだろ
static じゃないし delete だか free だかが翻訳時に解決できるわけがない
>>518 void f() {
char c[100];
}
↑こういうやつでしょ?
関数に入るタイミングでスタックフレームが作られて、抜けるタイミングでもとにもどされるって理解でいいんじゃないの。
>>518 delete,freeがヒープ領域で確保したメモリを開放してんだよ
ろくな入門書を読んでないだろ。いや、ろくに入門書も読んでないだろ
>>512 は文字列リテラルで確保された部分のことを言ってんだろうな
charポインタの指す先が動的確保されたメモリであるなら解放した方がいいし そうじゃないなら解放する必要はないし解放できないし
free不要などというバッドノウハウを吹聴して回るかまって厨がこの付近で目撃されたという報告があります 市民の皆様は関わらず放置してください
ろくに入門書を読んでないのがc++は簡単とかいって c++初心者によくあるバグを徹夜でデバッグし、最後にはPHPが大好きになる。 誰か、この現象の名前を知らないでしょうか?
>>518 コンパイルされたプログラムのメモリ配置から理解しなおせ
たぶん
>>518 はポインタと配列の違いを説明できない
529 :
デフォルトの名無しさん :2014/01/15(水) 15:22:16.17
ポインタと配列の区別がつかない奴は議論にならないだろ。
530 :
デフォルトの名無しさん :2014/01/15(水) 15:46:34.34
setenv使えよ馬鹿
532 :
デフォルトの名無しさん :2014/01/15(水) 16:22:37.70
設定する文字列がどこに保存されるか 同じ事だ馬鹿
100円のワインと、すごく高いワインの違いが分からない人って居るよね。 その道の素人なら趣味として楽しめるんだから、君もその道の素人のままで居た方が幸せだよ
535 :
デフォルトの名無しさん :2014/01/15(水) 17:43:27.16
>>519 void f() {
const char* c;
}
↑これがBSSなわけねーだろ
>532 論点ずらしを始めたバカ
>>536 ばかはテメーだ
setenvは内部でmallocするが、それを解放するインターフェイスは無い
すなわち、setenv使えばテメーらが言うところのメモリリーク()が発生する
const char*が文字列リテラル以外を参照するような例って?
541 :
デフォルトの名無しさん :2014/01/15(水) 18:50:55.90
C言語で最強のゲームフレームワーク作ろうぜ!
フレームワークよりもそれを活用した最強のデモアプリの方が重要
ゲーム業界に入りたいならデモアプリ けれど、ゲームエンジンを作る方が潰し効きそう
strdup() とかね
>>539 char *を代入出来るんだからなんだってありだろ
546 :
デフォルトの名無しさん :2014/01/15(水) 21:31:41.47
ゲームのフレームワークってどんなの? くけいの当たり判定してくれるとか?
最近電車乗ってたら皆スマホいじってるのな 高校生なんて8割型いじってる 日本人全員がプログラミングできるようになったらどうしよう...
プログラミングが普及しても実務ノウハウってのは普及しないんじゃないかと 思う、どうだろう?開発概念とかさ
549 :
デフォルトの名無しさん :2014/01/15(水) 21:56:56.10
めちゃくちゃ初心者ですいません。 easyidecで勉強しているのですが下記のプログラム入力後いざ実行し、1つ目の数値を入力してエンター押すと、 0014.exeは動作を停止しましたと出てしまう。 たすけてください
550 :
デフォルトの名無しさん :2014/01/15(水) 21:59:39.78
#include <stdio.h> int main(void) { int vx, vy; puts("2つの整数を入力してください。"); printf("整数vx:"); scanf("%d", vx); printf("整数vy:"); scanf("%d", vy); printf("vx+vy=%d\n", vx+vy); printf("vxーvy=%d\n", vx-vy); printf("vx*vy=%d\n", vx*vy); printf("vx/vy=%d\n", vx/vy); printf("vx%%vy=%d\n", vx%vy); return 0; }
scanf("%d", &vx); scanf("%d", &vx); ;
ゼロ除算回避もやっときな
環境 win7 コンパイラ bcc32 argv[0]には自分のプログラム名がフルパスで 格納されますよね d:\dddd\gggg\hhhh\hogehoge.exe ↑みたいに。 それで最後の\マークの位置を知りたいと思って char *ret; ret = strrchr(argv[0],'\\'); if ( ret != NULL){ printf("\\ の位置は%d\n",ret - argv[0]+1); return -1; } としたんですが、表示されません。エスケープ関係なんだろう?と思って るんですが、どうすれば検索対象に出来ますか?
554 :
デフォルトの名無しさん :2014/01/15(水) 22:07:57.26
>551 すごく初歩的すぎるミスでした。 すいません、ありがとうございました。
>>553 argv[0] の中に検索対象が存在するか確かめた?
>>553 ファイル名やフォルダ名に漢字使ってる?
c:\ドキュソ.exe
>>555 hogehogeが気に喰わないのなら
f:\tinko\manko.exe
にでも置き換えてください
>>556 直前に
printf("argv[0]:%s\n",argv[0]);
で入っているのは確認しています。
>>557 ファイル(プログラム)名には使ってないけどフォルダは、、日本語名があったりしますね
ドットの位置(555の例で言うなら、hogehoge.exe のexeの直前のドット)については
ret = strrchr(argv[0],'.');
で出来たんですが
>日本語名があったりしますね だったら何故、まず日本語無しでも再現するか 試そうとしないんだろうか やっぱりhoge使いって馬鹿なの?
>>560 書いてないだけで試してますよ。ドライブのルートに持って行って
実行してます
んで再現しないから書いてんですけど。
hoge使いは二つ前の自分のレスも覚えてないほど能力が低いのですか?
563 :
561 :2014/01/15(水) 23:59:56.33
あ、間違い ×再現しないから ○やっぱり出てこないから
>>559 がキチガイでワラタw
本当に生きてる価値のない奴っているんだなw
持ってこなくていいからさっさと回線切ってプロバイダ解約しろよ。
>>561 お前最初から他人に頼る前提で事を始めるとか
精神構造に異常でもあるんじゃね
リアルでお前の相手させられてる奴同情するわ
最近は無視しただけでもいじめだの何だの言われるから
お前みたいな異常者でも当たり障りのない対応をしなきゃならないんだよ
迷惑だから家から出るな
d:\dddd\gggg\hhhh\hogehoge.exe
↓
hoge厨は消えろ
↓
hogehogeが気に喰わないのならmankoにでも置き換えてください
類似例
A「いってーなコラ」
>>559 「あ、お構いなく」
気に入らないなら触らなければすむ話なのに
レストランでウンコウンコ叫んでる奴がいて、つまみ出してくれと言う客に「気に入らないなら触らなければすむ話なのに」と言う基地害。 どういう環境で育ったらここまで歪むんだろう。
>>570 >>561 は言われなくてもそのつもりだよ
自分はスルーできるからそれでスレが荒れようが
スレを見た人が嫌な気分になろうがお構い無し
自己中の典型
>>561
>>571 客同士の問題ではなく
客と店との問題だね
>それでスレが荒れようが
>スレを見た人が嫌な気分になろうがお構い無し
これは違うだろ。
お構いなしではなくそれが
>>561 の目的。
レストランでウンコ連呼してるのがどっちもである点には気が付けないのか。。
>>561 現象が発生する最小限のコードが提示されない以上、釣りでいいかい?
違うだろ ウンコを連呼してる人と 何だ貴様は、と感情的になってる人
それを同類と言うね。世間では。
>>576 ゴミの相手はLINEでも交換して個人的にやれ
よくわからないな ・フォルダ名に日本語が入っていたら現象が発生した ・ルートに移動したら再現しなかった ってこと?argv[0] の中身ってフルパスとは限らないんじゃ?
>・ルートに移動したら再現しなかった 直後に訂正してるだろ >argv[0] の中身ってフルパスとは限らないんじゃ? 規格はそうだがWindows環境であることを最初に断ってるだろ
>>580 分からないなら黙ってれば?
自己顕示欲の塊気持ち悪い
全然流れ読めてなかったですねごめんなさい
いつも読めてない低知能が今日はたまたま指摘してもらえただけ、お前迷惑だよ、二度と書き込むな。
>>583 =585
ちょっと君、黙ってなさい
もうすぐで最小限のコードが出てくるから
いやそこまで一般化するのはどうかと
書き込むなよ!絶対に書き込むなよ!
他人に頼る前提でプログラムを始めた
>>553 養護学校通ってたのかね
養護学校なら当たり前のように頼っていいからね
>>559 普通に動いたんだけど、実行ファイルはターミナルから実行してる?
それとも何かしらのファイルを引数に渡して実行してる?
狙い通り荒らせて
>>559 もパソコンの前で大笑いだろう。
こうやって荒らせば
>>559 と一部のスルー力()のある人間以外は寄り付かなくなるからな。
さらに燃料投下くるか見物だ。
>>590 普段誰にも相手にされないからって基地害に媚び売ってると同情されるぞ
595 :
デフォルトの名無しさん :2014/01/16(木) 01:41:18.12
>>591 解答できないなら荒らすな チョーセン人
ここでついにQが登場 そして「553は釣りでした」とドヤ顔のパターン
597 :
デフォルトの名無しさん :2014/01/16(木) 01:45:44.13
>>593 590には同情っつーよりただただ迷惑。
>>582 Windowsでもフルパスとは限らないんじゃないの?
>>599 情報ソースも書かないクズは書き込んじゃいけないんじゃないの?
狙い通り荒らせて
>>559 もパソコンの前で大笑いだろう。
こうやって荒らせば
>>559 と一部のスルー力()のある人間以外は寄り付かなくなるからな。
さらに燃料投下くるか見物だ。
繊細すぎるんだよな
603 :
デフォルトの名無しさん :2014/01/16(木) 03:06:35.89
荒らすなチョーセン人
ここもage荒らしの韓国人にターゲットにされたか
605 :
デフォルトの名無しさん :2014/01/16(木) 03:16:48.76
ウリジナルなhoge禁止ルールで荒らしときながら、本当に図々しい生き物だな。チョーセン人というのは
このage荒らしはコリアンだとバレてからなりふり構わず荒らすようになったなw さすがはコリアンw
607 :
デフォルトの名無しさん :2014/01/16(木) 03:41:00.27
でていけよ、チョーセン人
ここでも大量のあぼーんが入るようになったな。 どうせ例の韓国系二世だろ。 スレが上がってるし。
ここまで再現コード無し もうしばらくお待ち下さい
転職活動の入社試験で自動確保について説明しなさいって出たんだが 自動確保っていう用語は一般的なのか? 俺の知らない概念だと思ってしまって適当なこと書いちゃったんだけど、 これって自動変数(ローカル変数)のことなんだよな?
想定する解答と違っても、間違っていなければ問題ない。 知らないことを知ってるふりするのがまずい。
・用語のすり合わせをします。間違ってたらごめんなさい。 みたいに一言添えておけば評価が上がるかも知れん。 問題作成者が逆切れするリスクもほんの少しあるw
造語野郎くたばれ が正解
>>614 コマンドラインの分解はアプリ(のスタートアップ)がおこなう
bccと言ってるのでMSの処理系のマニュアル探しても無意味
>>600 のスペシャルスタートアップではフルパスを保証してるのだろう w
丁度、CreateProcessを使ってるので調べてみた
CreateProcessは第1引数あるいは第2引数あるいはその両方で
実行ファイルとコマンドラインを指定できる。
Webに転がってるサンプルだとどちらか一方で指定する場合が多いが
CreateProcess("exefile.exe", "hoge hage hige", ...)
と両方指定して起動するとコマンドラインとして「hoge hage hige」が
与えられる
従って、
>>553 の前提
> argv[0]には自分のプログラム名がフルパスで
> 格納されますよね
は間違っている
チョーセン人はレス禁止
試してみたけど bcc 起動時の指定ではなく、プログラムのフルパスがargv[0]に入った vc 起動時のプログラムパス指定がそのままargv[0]に入った gcc vcと同じになった
Cを始めて数週間ほど経ったのですが、ポインタで理解に苦しむところがあるので教えてください int *hensu; *p = 10; primtf("%%d = %d,%%p = %p",*hensu,&hensu); return 0; と int hensu; hensu = 10; printf("%%d = %d,%%p = %p",hensu,&hensu); return 0; この二つのプログラムの実行結果に違いがないんですが、ポインタ変数の使い方ってこれで正しいのですか? ポインタ変数にはアドレスを記憶させるものだと聞いたのですが、イマイチポインタ変数の利用方がわかりません それと演算子としての&について聞きたいのですが、%pでアドレスを表示する場合、変数に&をつける必要ってなんですか? ポインタについて、噛み砕いて教えていただけると嬉しいです。
噛み砕いて説明するには余白が足りない
>>619 ポインタを素人に理解するのは難しいでしょうか……
掲示板で理解させるのは難しい
他人に見せるときはコピペすべし。そこでタイプミスするのは有害
わかりました、ご迷惑おかけしたようですみません もう少し自力で調べて見ることにします
教科書買えよ Webにはウソを教えるクソサイトが沢山ある
int hensu; でスタック領域に変数hensuが確保される hensuで変数hensuに格納されている値にアクセスできるし &hensuで変数hensuが格納されている領域のアドレスにアクセスできる ポインタ変数を利用する目的はポインタ変数に格納されたアドレスを介して そのアドレスに格納されている値にアクセスしたり関数を実行したりできること
>>625 &hensuはアドレスを参照するとか読み込むためのもの
*hensuはアドレスに入ってる数値をいじくる為のもの
っていう考えでしょうか?
>>626 読み込むと言うよりは「&(変数名)」でアドレスに置き換えられます。
「*(変数名)」はその逆です。変数をアドレスだと見なして、その番地にアクセスします。
printfの%pは、実引数に与えたデータがポインタだと仮定して表示するだけです。
%dでも何らかのデータは表示されますが、ポインタとして見づらいだけです。
ポインタ変数もただの変数と同じ値を格納しています。別に特殊な変数ではありません。
馬鹿な話、ポインタをint型(や環境によってはlong long int)に入れても動くようにプログラムできます。
>>616 スレタイも読めない韓国人はレスするな
ここはWin32APIスレではない
>>628 みんなスルーしてるんだからわざわざ構うなよ。
つまりvoid*をキャストして多態性ということになる
631 :
618 :2014/01/16(木) 12:34:46.48
632 :
デフォルトの名無しさん :2014/01/16(木) 12:40:35.43
>>628 実装の詳細に立ち入れば、OSの影響を受けるのは当たり前だ
チョーセン人は知能が低いな
hogeみたいな日本固有の文化に過剰反応するのは要するに そういうことだからスルー推奨
日本の文化でないものを日本の文化とか言い出したぞw 日本の文化を知らない韓国人が日本の文化を語るとこうなるw
ここからのコピペか。
>>632 その恥ずかしい書き込み晒されてますよ。
636 :
デフォルトの名無しさん :2014/01/16(木) 14:31:10.55
hogeを持たないチョーセン人の嫉妬は凄いな
>>632 は完全にネタで書き込んでるのにコピペして喜んでる馬鹿がいるのか
青くなってセルフ擁護かよw
639 :
デフォルトの名無しさん :2014/01/16(木) 14:55:44.87
まさにチョーセン人丸出しの行動 w 世界記憶遺産申請と丸かぶり w
632はガチじゃね? リアル韓国人なら632みたいなことは平気で言うだろ。
641 :
デフォルトの名無しさん :2014/01/16(木) 15:48:36.85
バコナロwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
バコナロwwwwwwwwwwwwは朝鮮起源ニダ
変数名がわかりづらいな int hensu; int * hensu_no_address = &hensu; printf("アドレス=%p\n", hensu_no_address); printf("値=%d\n", *hensu_no_address); (*hensu_no_address) = 123;
644 :
デフォルトの名無しさん :2014/01/16(木) 18:24:26.22
ナコロバ「ルルwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」
何ここ・・・気色わる・・・
>>643 こっちのほうが親切
int * pointer_to_address_of_integer_type_variable_hensu = &hensu;
なんだ、チョーセン人が同類を連れてきたのか 本当に迷惑な生き物だ
韓国人がやっとsageを覚えたようです
南チョンならsageを知らなかったのも無理はないわな。 スレ違いのage投稿とは南チョンらしい。
どんなにクソな相手であっても、チョンとか言うのはいくらなんでもひどすぎるだろ せめてアスペとかキチガイ程度にしとけよ
651 :
デフォルトの名無しさん :2014/01/16(木) 20:49:24.33
黙れよジャップの黄色猿
653 :
デフォルトの名無しさん :2014/01/16(木) 21:10:41.29
hoge禁止だけじゃなくてsageまで強要するつもりか 死ねよ チョーセン人
はい、韓国人による自殺教唆入りましたー
底辺のバカ者どもらしいスレだ
へー、実はその底辺の頂点というか底辺オブ底辺に Qというキチガイコテハンがいるんですよ。 ソイツが多方面でスレを荒らして迷惑なんです。
C++荒らしてた韓国人はこっちも荒らし始めたか
658 :
デフォルトの名無しさん :2014/01/17(金) 02:36:46.21
あわれなチョーセン人
659 :
デフォルトの名無しさん :2014/01/17(金) 12:00:03.77
名無しスレ荒れすぎワロタww
ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアア アアアアアアアアアアアアアアアアアアアアアアアアアアアアアア アアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアップ!!!!!!!!!!!!!!!!!!!!!!
ストレス抱えて睡眠障害に陥った韓国人が夜中の2時3時まで暴れてるからな
質問です。 キャラクターの装備した武器を、戦闘画面でもグラフィックとして反映させる場合、 戦闘画面用の武器のグラフィックはどこで管理するのが適切でしょうか? アイテムとして管理すべきでしょうか、それとも戦闘でエフェクト等と一緒に管理すべきでしょうか?
武器を追加したとする。 あちこちいじるより、1箇所いじればすむ方がいいよな。
質問です。 プリプロセッサを使って以下のように構造体宣言をしたとします。 typedef struct{ a; #if ABC == 1 b; #endif }ST_hoge; この時、マクロABCが定義されていない場合、コンパイルエラーになるでしょうか。 または「a」だけをメンバにもつ構造体ST_hogeができあがるのでしょうか。 よろしくおねがいします。
難問すぎて答えられません><
試してみろよ。 aの型名がないのでエラーになる。 int か何かをつけとけば、エラーにならず、aだけメンバーになる。 が、理由がないなら、通常は #ifdef ABC を使うでしょ。
未定義マクロは0として扱われる(6.10.1/3)
>>664 hoge使うような本使ってるから
そんなことも分からないんだろ屑
hoge嫌いは高確率でhage
それよりもコンパイルエラーになるかどうか試せば済むものを質問してる時点で荒らし確定。
>>666-667 自己顕示欲を満たしたいだけなら他所でやれ。
今回のことは猛省しろ。
673 :
664 :2014/01/17(金) 21:33:49.50
釣りにマジレスする馬鹿とアンチhoge合わせて6匹釣れたwwwwww ここはいい釣り堀ですねwwww 間抜け乙
664です。
動作環境が今ないので質問しました。
場を悪くしてしまいすみません。
>>666 >>667 理解しました、ありがとうございます。
>>674 ノイズは無視していいから、気軽に質問してね
>>674 そうそう、お前が無視して荒らし続ければ人が減るだけだからどんどんやっちゃって
678 :
デフォルトの名無しさん :2014/01/17(金) 22:52:57.35
ここでもあらしてるのかチョーセン人 いい加減に死ね 氏ねじゃなくて死ね
失せろヒトモドキども
int bound[]={0,2,6,14,30,62}; if (x<0 || !x<bound[5]) a=-1; else if (x<bound[1]) a=0,b=x-bound[0]; else if (x<bound[2]) a=1,b=x-bound[1]; else if (x<bound[3]) a=2,b=x-bound[2]; else if (x<bound[4]) a=3,b=x-bound[3]; else a=4,b=x-bound[4]; return (xy_t){a,b}; これ分岐無しに出来んかな?
>>680 bound[]は昇順という前提で
int a = -1;
a += x>=bound[0];
:
a += x>=bound[5];
a -= ((a+1)%6)*6; // 5=>-1
for(i = 2, a = 0, b = x; i <= b; a++,b -= i, i <<= 1);
分岐をなくしたい →繰り返し文 ・・・?
hogehogeが禁止とか言ってる人間に聞きたい。
C言語のスレでしょ、ここは?なんでダメなのか、そしてそこまでダメっていうんだったらて
>>1 にそう載せとけよって
思うんだが違います?
少なくともそのダメっていう理由を教えてよ
NGにしてる人が多いんではないかのう
>>663 ありがとうございます。
ということはグラフィックもアイテムで管理したほうがよいというこですね。
その方向で作ってみます。
11^1500+700!を計算して全桁(1690桁)表示するプログラムなんですが ・多倍長整数を保持するデータ構造をつくり、そのデータ間の演算を定義する ・多倍長整数を表示する関数も作成し、計算結果を画面に表示する ・四則演算のうち*と+のみ定義すればよい ・べき乗、階乗は多倍長整数を用いて計算すること 暇な方いたらお願いします
C言語による実用アルゴリズム入門 サンプルプログラム に拡張桁数による計算例が載ってるからそれでも見たら?
C言語慣れてきたら多次元配列を使わなくなった。 1次元で十分。
691 :
デフォルトの名無しさん :2014/01/18(土) 19:07:23.85
多倍長を作る立場の言語がCだからなあ 作れない時点で終わってる
最強のMMOフレームワークをCで作ろうぜ!
693 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/18(土) 19:38:46.97
694 :
デフォルトの名無しさん :2014/01/18(土) 20:07:51.25
Cはしんどいよ。 C++11にしようよ。
695 :
デフォルトの名無しさん :2014/01/18(土) 21:18:06.09
作ったアプリが落ちるから原因調べようとしたけどなかなか分からず3時間かかった デバッグ用にsprintfに渡してた配列が足りてなかった死ね
696 :
デフォルトの名無しさん :2014/01/18(土) 21:25:36.38
足りてないならそう言え死ね
お前の頭が足りてない
698 :
デフォルトの名無しさん :2014/01/18(土) 21:40:02.76
なんでC言語とか未だに使ってるの 上級者がやむなく使うならまだしも 初心者レベルでCやられてもゴミしか作らねーのに
699 :
デフォルトの名無しさん :2014/01/18(土) 21:42:44.33
ゴミ
700
ゲームなんか作ってどうするのよ 周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに ゲームプログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ しかも10年も経てば今やってることなんざ時代遅れの何の役にも立たない糞知識と化すの分かってるのに 時間とエネルギーの無駄TOEICの勉強でもしてた方がなんぼかマシ 履歴書に特技ゲームプログラミングとか書くのか世間はキモオタとしか見ないよ残念 大体任天堂ですら平均勤続年数10年しかないのに将来どうするのよ 仕事の負荷はMAXで残業代もまともに払われない企業ばかりだよ ゲームを作ると言うことは人生をドブに捨てることに等しい 両親に申し訳ないとか思わないのか 分かったらゲームプログラミングなんて辞めて真っ当な人生を送れ
今のゲームがどうなってるのか知らんくせに
有名なコピペに反応するな
704 :
デフォルトの名無しさん :2014/01/19(日) 06:16:00.71
どうせ人生を何か一つにかけるしかないなら プログラミング以外が良いよな〜って思うよ 早めにリターンする方が後悔しないよw
なんだコピペか 俺、ゲーム作った事無いが ゲームを、自分で手さぐりながら、なんとか自分の 作り上げたなら それはそれで、自ずとスキルが身につくと思うけどな まぁ、CよりはC++で作った方が良いと思うけど
>>704 大学時代にそれに気付いて公務員になりました
今はVBAで簡単なシステム作って遊んでます^_^
707 :
デフォルトの名無しさん :2014/01/19(日) 12:04:19.19
>>701 まだ黎明期なんだよ
チャトランガでもタロットでも歴史の長い遊びに国境はなくなってるだろ
英語を習い始める前からポーカーくらいできたようにな
ルールを説明する本を書く人が英語や日本語ができればおkなわけで
コンピューターゲームで言えば語学はマニュアル屋がやればいい
ゲーハー屋ってのは将棋盤やカードの製造技術を担当する人たちで
憶えることは化学や工場管理といった方面と、プレイヤーとしてのスキルだね
コンピューターゲームではそれに電気電子が加わるわけだ
未開拓が多く残っている業界に生きる気なら負けん気の強さが適性ってことさ
では結論が出たところで映画コンプレックスどもが排泄しつづけるクソゲー群を滅ぼしに参ろう
709 :
デフォルトの名無しさん :2014/01/19(日) 13:57:17.07
最近のゲームって画質のよい派手なエフェクトの必殺技や魔法をバンバン出せるけど、エフェクトはいつロードしてるの? 昔ならその必殺技を出す瞬間に演出としてキャラをアップにして一瞬止めた隙とか、 魔法だったら詠唱中とかにロードしてたと思うんだけど、 最近はそういうのなしでもバンバン出せるよね? ディスクのゲームのくせに読み込み時間が分からない まさか戦闘開始時に全部読み込んでるとか?
マルチスレッドだからタイミングは自由 メモリにも余裕ある死ね
8bit マイコンです #define T0 256*250/430と設定するとコンパイラは253と出力 #define T0 256UL*250/430とすると148と正しく出力します 256*250/430が253となる計算とはコンパイラはどのような計算をしているのか 教えて。8bit以上の部分は切り捨てられているのかと手計算しましたが うまくできません。
マイコンの種類は?
コンパイラの名前は?
714 :
デフォルトの名無しさん :2014/01/19(日) 14:57:26.94
>>711 256*250/430は、sizeof(unsigned long) == 2な環境では
0x100*0xfa/0x1aeで0xfffdとなる
253は0xfd
こうなっちゃいけないんだけどね
715 :
711 :2014/01/19(日) 15:01:15.56
こんな計算をしました。指摘してもらえるとありがたいです 256*250=64000 65535-64000=1535 1535/430=3 3を-3にして16進にすると FFFD→上位切り捨てると0xfdで253に。。。 コンパイラ? WinAVR-20090313
716 :
711 :2014/01/19(日) 15:05:03.22
>>714 さん
ありがとう
0x100*0xfa/0x1aeで0xfffdとなる
どうゆう手順でそう出力されるのか教えてほしいです。。
つWindows電卓
(signed short)256*(signed short)250/(signed short)430 =(signed short)-1536/(signed short)430 =(signed short)-3
719 :
デフォルトの名無しさん :2014/01/19(日) 17:18:29.27
atoiはマイナスの"-"が付いてると数字ではないと判断するようですが、 マイナスかどうかは自分で判断しないといけませんかね? 自分で判断するとしたら一文字目が"-"かどうかを判定して、 "-"だったら2文字目から数値化してマイナスの値にする作業が必要ですよね? そうするとこんな感じで書かなきゃいけないですよね? int atoiex(char *buf) { int x; if (buf[0]=='-') x=0-atoi(&buf[1]); else x=atoi(buf); return x; } 書くのが面倒なのですが何か良い方法はありませんでしょうか?
720 :
デフォルトの名無しさん :2014/01/19(日) 17:24:02.98
>>719 なんで 0 から算術マイナスを使う? 単項マイナスでよいはずだが
>>719 > atoiはマイナスの"-"が付いてると数字ではないと判断するようですが、
しません
標準のatoiは先頭に+,-がつくと符号として変換する キミの環境はかなり特殊なようだね まともな標準ライブラリ用意しなよ
>>719 そのコンパイラはANSIに準拠してない。コンパイラのメーカーに
苦情のメールを千件ほど送ってみたらどうか? お前のコンパイラは糞だってね
square n = n * n map square [1, 2, 3] このHaskellのプログラムをCで実装したいのですが、 #include <stdio.h> #define LENGTH 3 map(f, p) int (*f)(int n); int *p; { int i; for (i = 0; i < LENGTH; i++) { (*f)(*p); p++; } } square(n) int n; { return n * n; } main(argc, argv) int argc; char **argv; { int list[] = {1, 2, 3}; map(square, list); } これでいいのでしょうか
>>724 HaskellとCの両方できるなんてすごいね、珍しい。
関数の仮引数の書き方がちょっと古臭いけど。
IDEのデバッグ機能でステップ実行すると動作を確認できるよ。
>>724 #include <stdio.h>
int** map(int (*f)(int), int src[], int dest[], int len) {
int i;
for(i=0; i<len; i++) {
dest[i] = (*f)(src[i]);
}
return (int**)dest;
}
int square(int n) { return n*n; }
int main() {
int src[]={1,2,3}, dest[3]={0};
int len=sizeof(src)/sizeof(src[0]);
int **p,i;
for(i=0; i<len; i++) { printf("%d ", src[i]); } puts("");
for(i=0; i<len; i++) { printf("%d ", dest[i]); } puts("\n");
p = map(square, src, dest, len);
for(i=0; i<len; i++) { printf("%d ", src[i]); } puts("");
for(i=0; i<len; i++) { printf("%d ", dest[i]); } puts("");
for(i=0; i<len; i++) { printf("%d ", p[i]); } puts("\n");
return 0;
}
いまいちだな
727 :
デフォルトの名無しさん :2014/01/19(日) 22:27:46.99
ペイントソフトのアンドゥってどうなってるんですかね? どんどんメモリ確保してキャンバスごと保存してるんですかね?
728 :
デフォルトの名無しさん :2014/01/19(日) 22:34:28.95
32ビットって何バイトだよ
729 :
デフォルトの名無しさん :2014/01/19(日) 22:37:09.60
ああ4バイトか longと同じだな longで管理してもいいな
>>727 更新前情報と更新後情報をすべてジャーナルに取っていて必要なときにロールバックするんだ。
731 :
デフォルトの名無しさん :2014/01/19(日) 22:41:36.37
>>730 更新前/後情報ってキャンバス全体のことですよね?
732 :
デフォルトの名無しさん :2014/01/19(日) 22:44:19.44
各ピクセル32ビットで512*512ピクセルの画像だと約1MB 1024*1024ピクセルで約4MB これを丸ごと保存していくと、100回分だと100〜400MBってことか 最近のパソコンはメモリ8GBくらい積んでるだろうし大丈夫かな
普通に実装するなら差分&スナップショットの併用じゃない?
734 :
デフォルトの名無しさん :2014/01/19(日) 22:47:42.97
あー背もたれと頭の間にトイレットペーパーをロールごと挟むとちょうどいいわ
ペンの種類、色とか、図形の情報、例えば線分の始点と終点の座標を覚えていくとかじゃないの?
736 :
デフォルトの名無しさん :2014/01/19(日) 22:53:48.96
>>733 差分って変化があったピクセルだけ前後の色を保存するんですよね?
ピクセル情報用の構造体を用意しておいて変化があるたびに、
malloc(sizeof(ピクセル情報用構造体)*変化のあったピクセル数)
とかする感じでいいんですかね
struct ピクセル情報用構造体{
int x , y;
long beforecolor , aftercolor}
みたいな感じですかね
737 :
デフォルトの名無しさん :2014/01/19(日) 23:01:29.61
738 :
デフォルトの名無しさん :2014/01/19(日) 23:06:57.45
>>735 何をやったかを記憶してるだけじゃ元に戻せませんよね?
例えば点Aから点B(A≠B)に線分ABを引いたとき、
A、Bの座標、線の太さ半径4ピクセル、色0xFFEF92A6を記憶していても
線の描かれた場所の元々の色が分からないから戻せませんよね?
739 :
デフォルトの名無しさん :2014/01/19(日) 23:09:31.80
頭使ってたら腹減ってきた
非可逆操作やbranch的操作でスナップショットでいいんじゃないかな
結果を記録しておくんじゃ無くて 方法を記録しておくんよ
742 :
デフォルトの名無しさん :2014/01/19(日) 23:17:16.06
上記のピクセル用情報構造体をpixdataとすると pixdata **pd; int pdnum; としておいて、変更があるたびに、 subpd = (pixdata**)realloc(pd,sizeof(pixdata*)*(pdnum+1)); pd = subpd; temppd = (pixdata*)malloc(sizeof(pixdata)*変更されたピクセル数); //temppdにデータ流し込みpd[pdnum] = temppd; pdnum++; って感じですかね?
743 :
デフォルトの名無しさん :2014/01/19(日) 23:19:00.40
744 :
デフォルトの名無しさん :2014/01/19(日) 23:28:10.85
だめだ、これだとキャンバスサイズを変えたときに対応できない ・・・そこでスナップショット(キャンバスごと保存)か? となると、スナップショットとピクセル変更情報がランダムに出てくることになるから その順番も保存しとかないといけないな struct draworder{ int type;//キャンバス丸ごと情報か変更ピクセルの情報だけか int index;//それぞれの場合の参照ID } こいつの配列を用意して順番を記憶しておかなければならないか typeは定数でDATATYPE_CANVASかDATATYPE_PIXELで、 indexは、例えばピクセルだったらさっきのpdnumをインクリメントする前に入れる感じか
745 :
デフォルトの名無しさん :2014/01/19(日) 23:30:15.81
これしかやり方ないの? ダルくね?
いや、元の画像から保存しておいた描画コマンドを再生すれば いいだけじゃないの? ユーザーがA-Bに線を描画した結果を保存しておくんじゃ無くて ユーザーがA-Bに線を描画したという方法を保存しておけば 最初の画像が残ってれば順番にやり直せるよね
スナップショットから行った方法を順番に記録しておいて、 アンドゥされたらスナップショットから現在の1つ手前まで描画するで良くない?
748 :
デフォルトの名無しさん :2014/01/19(日) 23:36:20.28
>>746 ええと、例えば、101回変更を終えた後、100回目の変更を終えた状態に戻したい(つまり1回アンドゥしたい)場合は、
最初から100回繰り返すということですか?
>748 それは適当なタイミングで途中のスナップショット取って置けよ 必要だと思うならな
750 :
デフォルトの名無しさん :2014/01/19(日) 23:41:51.61
しかしなんでペイントソフトをCなんかで。 オブジェクト指向言語なら描画アイテムをオブジェクトとして扱えて相性いいんだし。 描画方法もコマンドパターンで作れば、コマンドオブジェクトをそのまま保存すれば良いだけなのに。
そもそも、Cで書くぐらいの気概があるならCは当然読めるわけで。 となると、Cで書かれたオープンソースなお手本アプリが沢山あるって話だわな。
>>748 不満なら直近の10ぐらいは保持しておいてもいいんじゃない?
754 :
デフォルトの名無しさん :2014/01/19(日) 23:58:48.47
ちょっと光が見えたので頑張って実装してみます ありがとうございました とりあえず夜食にとんこつラーメンと冷凍ピザ食べます
GCC用に作ったライブラリをClangから使うことはできますか?
使えなかったら大変だわ
758 :
デフォルトの名無しさん :2014/01/20(月) 02:02:44.20
とんこつラーメンとピザ食べてサッパリしたから再開
759 :
デフォルトの名無しさん :2014/01/20(月) 04:32:49.15
intのサイズって環境によって違うって言うけど、 コンパイル時の環境によって違う場合があるの? それとも実行時の環境によって違う場合があるの? 前者ならコンパイル済のバイナリやライブラリ配布するなら安心なんだが
760 :
デフォルトの名無しさん :2014/01/20(月) 06:32:54.28
コンパイラが、あるいはソースコード上で intのサイズを決めて、そのintのサイズが同じOSなら動く 結局PC上で動かすプログラムなら気にしなくて良いよそれ、 intのサイズの違いなんて、OS開発者が互換性もたせて何とかする事だから
>>759 前者についてはクロスコンパイラという存在がある
int のサイズについては、最近は正直言ってポリティカルという印象をぬぐえない、AMD64なら int は64、long は128か256にはなってほしいもの、short は32が妥当か
そんなコンパイラはないものかねえ
VC2010 Expressですけど、ちょっと教えてくださーーい #include <stdio.h> int main() { char str[100]; char moji; printf("半角英数字を入力(100文字以内):"); scanf("%s",str); fflush(stdin); printf("検索対象文字:"); scanf("%c",moji); //************ printf("検索対象文字列:%s\n",str); printf("検索文字 :%c\n",moji); //************ return 0; } コンパイルは出来ても printf("検索対象文字列:%s\n",str); のところで異常終了してしまうのはなぜなんでしょうか?
>scanf("%c",moji); まあそれ直しても改行文字しか入力されないと思うけど。
766 :
デフォルトの名無しさん :2014/01/20(月) 21:35:12.31
前半はいいが、後半は空文字列以外に言えねぇ
>>759 「同じバイナリなのに実行時にintのサイズが変わる事があるのか」
という事を心配しているのかな?
答えは「ありません」です
全てはコンパイル時に決定されます
769 :
デフォルトの名無しさん :2014/01/20(月) 22:23:42.25
NULL NUL "" '\0' nil 常識って言っちゃってる人は何なん?
これは英語の問題なのでnullが正解。 他は全部×。
771 :
デフォルトの名無しさん :2014/01/21(火) 01:08:35.82
ぬるぽ
772 :
デフォルトの名無しさん :2014/01/21(火) 07:26:45.90
空文字列ならemptyが正しい まずNULLと文字列が関係しちゃってるのはC言語のゴミ仕様がそうなってるだけで 殆どの言語において、文字列とNULLはもはや関係ない あと「NUL」もWindowsで使ってる場所ある つまり、ゴミ
773 :
デフォルトの名無しさん :2014/01/21(火) 07:28:52.10
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwww 死ねゴミ
774 :
デフォルトの名無しさん :2014/01/21(火) 07:46:40.73
うちのC言語は NULL と文字列は無関係ですが… どこの地方の方でしょうか
776 :
デフォルトの名無しさん :2014/01/21(火) 08:17:39.77
>>774 何が「だったらまずは」なのか? 死ねゴミ
>>775 死ね初心者
C言語において文字列とはポインタそのもの
ポインタにはNULLの概念がある
(普通の言語の)文字列にはNULLの概念はない
死ねゴミ
こいつ
>>776 はまず、人間としてダメだな
社会では通用しない
778 :
デフォルトの名無しさん :2014/01/21(火) 08:40:31.43
>>777 死ねwwwwwwwwwwゴミwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミ
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミ
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwww
uy in, garbage out
780 :
デフォルトの名無しさん :2014/01/21(火) 10:26:27.08
>>776 > C言語において文字列とはポインタそのもの
ちげーよ、すっとこどっこい
ポインタは文字列の位置情報
配列は文字列の格納領域
どちらも文字列そのものではない
781 :
デフォルトの名無しさん :2014/01/21(火) 10:44:29.36
>>776 >C言語において文字列とはポインタそのもの
ポインタ理解してないゴミ屑はでしゃばるな w
782 :
デフォルトの名無しさん :2014/01/21(火) 10:54:18.70
783 :
デフォルトの名無しさん :2014/01/21(火) 10:57:06.44
>>779 死ねゴミ
>>780 ほら死ねゴミ
>>781 お前もだよ死ねゴミ
【初心者】は【今】すぐ【謝って】【死ね】
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwww↓ゴミwwwwwwwwww
wwwwwwwww
>>780 ゴミ「すっとこどっこい」wwwwwwwwwwwww
↑死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwww
昔ASCIIのC言語3部作にそこを混同してるのがあったな。未だに変な考え持っている人が いたのか。この人が書くプログラムなんか結構読んだら笑えそうだ。
786 :
デフォルトの名無しさん :2014/01/21(火) 11:15:15.04
>>782 うんこページでウソ憶えたんだな
惨めすぎるぞ
787 :
デフォルトの名無しさん :2014/01/21(火) 11:23:04.20
はい反論できないね ゴミと初心者はさっさと死ね あ?死ぬ前に世界に謝って死ねよな 初心者とゴミは世界に謝れ
クイックソートってqsort使わずにできますか? 本当に初心者ですので、検討違いな事でしたらすみません
>文字列とはポインタである これは明らかに間違い。 >文字列はポインタとして扱う 扱いとしては確かにその通り。 >文字列はポインタに化けている 別に化けている訳ではない。 >C言語のchar型文字列ポインタ処理の説明です これだけでは寧ろ文字列とポインタを同一視していないと思われる。 >文字列ポインタ これも同様で、文字列とポインタを同一視していたら文字列ポインタとは言わないだろう。 >文字列のポインタは「文字列型」のように定義することができる 「のように」に注意。 >文字列はポインタが得られる そうだね。
>>788 qsort()はクイックソートアルゴリズムで実装されている保障はありません。
それはさて、質問の意図が分かりません。
>>790 では、qsortなしでクイックソートのプログラミングが出来るのですね
実は授業で、while,for,if文のみでクイックソートのプログラミングをせよと出題されたもので
792 :
デフォルトの名無しさん :2014/01/21(火) 11:36:53.48
793 :
デフォルトの名無しさん :2014/01/21(火) 11:50:28.49
uy人民共和国憲法により 第2条 IT知識不足罪 および 第4条 3項 IT知識曲解流布禁止条例 により 軍事法廷に参じて頂く 情状酌量を望む余地あらば、ここで今すぐに土下座して謝罪の文章を原稿用紙30枚分書き連ね 泣いて謝れゴミ泣いて謝れば貴様等の知識不足を赦す未来を考慮する
質問です... コーディングの事なんですが、元に戻すで前の状態にできるじゃないですか? でその前の状態を完全に記憶できないのがプログラミングがはかどらない原因で 例えばX Zという現在の状態であってこの状態を X Y Zという過去の状態に戻したい時を考えます。
このとき、過程が過去から現在に向かって X Y Z 1 ↓ X W R Z 2 ↓ X Z 3 ↓ X W Y Z 4 ↓ X W W Y Z 5 ↓ X Z 6 (X〜Zは処理) このとき6から1に戻すために戻るコマンドを押し続けるのですが 過程を全て覚えていないのと、途中で6の状態と同じ3のような状態 が存在することによって混乱してしまいます。 同じように困ってるいませんか?どうやって対処してますか?
796 :
デフォルトの名無しさん :2014/01/21(火) 13:51:16.91
s
しねごみ
>>795 Undoに頼るからそうなる。つーか、スレ違い。
雑談スレにでも逝け。
>>791 「 クイックソート 再帰なし」とかでググるといいよ
何故再帰なし?
> while,for,if文のみでクイックソートのプログラミングをせよ の制限で再帰は許されるかどうかは迷う話ではある。
ファイル開いたら、ひらきっぱなし メモリ取得したらプログラム終わるまでそのまま みたいな事は製品ではありえないでしょうか? ×で閉じればOSが何とか強制終了してくれるから、今まで freeとかreturnとかcloseとか書いた事ないんですが よくないですか? またそういった製品があれば欠陥品になりますあk? またばれますか?
1万行くらいのコードで return free close など締めに関するコードを全く書かないと不具合とか生じるんでしょうか?
804 :
デフォルトの名無しさん :2014/01/21(火) 16:33:54.32
問題無い
cでgcが働くとかいってるバカいたな
>>803 コード依存かつ環境依存なので
具体的にその1万行のコードと動作環境を提示しなさい
>>806 いや知らないですが、例えば市販のゲームとかって
malloc()などの処理をしてるのかなーって思っただけです
普通は使い終わったら解放する 意図的にmallocしっぱなしにすることはある 特にゲームとか性能が必要となる場合は…
>>808 へーそうなんですか、素人の僕にはその判断が分からずとりあえず
何もしません
810 :
デフォルトの名無しさん :2014/01/21(火) 17:06:52.61
>>809 解放しないことでOSのメモリを使いつくすようなら解放したほうがいいだろ
メモリ使いつくされてHDDやSSDガリガリされても嫌だし
実際に殴られるまで痛みに無頓着って奴だな
813 :
デフォルトの名無しさん :2014/01/21(火) 18:11:45.17
良心的な俺様がマジレスしとくけど
>>802 については賛否両論
ちなみ俺様はOSが回収してくれるから書かなくてもいいんじゃね?って考え
ほんとにゴミみたいなだなスレは。
特にマルチスレッドとかやってると、終了時の解放でミスってんだろうけど
処理速度遅い時に限ってエラーでるゲームは良くある
プログラム終了時にエラー出すリスクを減らす為にもOSに全部任せちゃって欲しい
いっそのこと自分がCを使う必要性にも疑いの目を向けてくれまいか
815 :
デフォルトの名無しさん :2014/01/21(火) 18:52:58.74
>>813 だろうじゃねえんだよ
一事が万事、雲散霧消ってスタンスだから
ミスったかどうかさえわからないんだよ
2chに厨房しか居なくなっちゃった
817 :
デフォルトの名無しさん :2014/01/21(火) 19:50:09.20
>>813 OSが回収するのはプログラムの終了時だろ
プログラムの実行中にリソースを開きっぱなしなのがマズいんだよ
実行中ずっとつかみ続ける必要があるならそのままでおk。
820 :
デフォルトの名無しさん :2014/01/21(火) 20:09:51.39
このスレのゴミは技術がないどころか文章も読めないゴミか > ×で閉じればOSが何とか強制終了してくれるから、今まで >freeとかreturnとかcloseとか書いた事ないんですが >よくないですか? ゴミみたいなスレだな・・・
Cのメモリ管理でベターというか、定石的な方法ってあるんですか?gotoで制御しているのは見かけますが。 グローバルなアドレスを管理する時はその為の構造を用意するのでしょうか?
822 :
デフォルトの名無しさん :2014/01/21(火) 20:18:33.67
>>821 ないけど行数かさんでくるのなら最低でもスマートポインタとかで管理するべき
823 :
デフォルトの名無しさん :2014/01/21(火) 20:23:09.24
GCも種類によって得手不得手ある 作るアプリに合わせて方法を選ぶ しかし初心者レベルで作るような底辺アプリならどの方法選んでも大差ない
824 :
デフォルトの名無しさん :2014/01/21(火) 20:26:06.78
ちなみにC言語の文字列は4種類のポインタで管理してある 1スタックポインタ 2ヒープポインタ 3マクロポインタ 4ポインタ freeで解放出来るのは2のヒープポインタだけ
管理するアドレスをスタックに積んで置いて、どこかでエラーが出たら終了前に 上から回収して行くとかは・・・現実的じゃないですかね?
>>824 オレオレ用語を使う際には定義を併記しろって教えられなかったのか?
828 :
デフォルトの名無しさん :2014/01/21(火) 20:55:38.63
>>825 まだ例外を使えるC++コンパイラがなかった頃、いくつかのフレームワークが
そういう事やったあとlongjumpするみたいな感じで例外をシミュレートしてた。
830 :
デフォルトの名無しさん :2014/01/21(火) 21:12:39.24
832 :
デフォルトの名無しさん :2014/01/21(火) 21:17:12.65
>>832 初心者に嘘を教えるお前が死ね
社会に迷惑なんだよ、迷惑
834 :
デフォルトの名無しさん :2014/01/21(火) 21:27:45.38
死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww 切腹しる
>>829 そうなんですか。setjump/longjump は使い方わからないんですが
今から覚えるなら大人しくC++の例外覚えたほうが良さそうですね
836 :
デフォルトの名無しさん :2014/01/21(火) 21:50:29.19
謝れ!謝れ!謝れ!謝れ!謝れ!謝れ!謝れ!謝れ!謝れ!謝れ! 初心者土下座しろ!!上級者に逆らってすみませんでしたこれからはひっそりROMりますって言え!! 初心者はひれ伏せ!! 図がたけーんだよカスがあ 初心者だからってなんでも許されると思ってる? ゆるされねーから!!!!初心者とかネット上において関係ないし2ch以外のお前とかしらねーから!! 初心者がきていい場所じゃねーんだよカス謝れ ROMれカス初心者 謝れ!!謝れよ!!!謝罪しろ!!はやく はやく謝って!!ねえ早く謝って!!!俺に謝って! 間に合わなくなんぞ!? 謝ったほうがいいよマジお前 謝れ謝れ謝れ謝れ謝れ!! 間違った事いってさーっせんしったあああでもいいから謝れカス は?まだ?まだ謝れないのか?? じゃいつ謝んの?いつだよはぁ??? 今謝れよ 今やればいいじゃん謝れよ 今からすぐ2chに書き込んで謝れ、全力で全身全霊で謝れ初心者!! 初心者は上級者様である俺に謝れゴラァ!!!!!!!!!!初心者謝れ!!!! さっさしろよ!!!!!!!!!!!!!!!!!!!!!! きいてんの??初心者謝れよ初心者
837 :
デフォルトの名無しさん :2014/01/21(火) 21:51:22.34
>>826 コラ死ねゴミ
>>827 ほら死ねコラゴミ
>>832 お前もだよコラ死ねゴミ
【初心者】は【今】すぐ【謝って】【死ね】
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwww↓ゴミwwwwwwwwww
wwwwwwwww
>>831 ゴミ「オレオレ用語使うんじゃねー 」wwwwwwwwwwwww
↑死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwww
838 :
デフォルトの名無しさん :2014/01/21(火) 21:53:08.98
あの〜、楽しく罵り合ッてる最中すいませんが、どなたか
>>763 の疑問と対処方法をおしえていただけないでしょうか。
839 :
デフォルトの名無しさん :2014/01/21(火) 21:54:58.19
scanf("%c",&moji);
>>839 あ、そうか。文字列と1文字とではまた違ってたんだ。
ありがとです
841 :
デフォルトの名無しさん :2014/01/21(火) 22:13:37.85
ちなみに犬は4種類の名前がついている 1チワワ 2シェパード 3秋田犬 4犬
842 :
デフォルトの名無しさん :2014/01/21(火) 22:19:56.62
ちなみに犬には少なくとも次の三種類ある 1チワワ 2シェパード 3秋田犬
4宮崎犬
5負け犬uy
通信を確立している2つのプログラムで、 片方はsend->recvの順に、もう片方はrecv->sendの順に呼ぶと問題ないのですが、 両方ともsend->recvの順に呼ぶと片方がrecvで固まる(データを受け取れない?)のですが、コーディングの問題なのでしょうか
uyがご迷惑をお掛けして申し訳ありません。 2ちゃんねる運営より
>>846 設定が分かりませんがWinsockのデフォルトの設定であれば正常です
コーディングが間違っていないから正常な動作をしていると考えられます
意味不明な書き込みはご遠慮ください
質問するレベルに達してないゴミだろ 基礎知識すらない初心者未満のゴミ C言語でプログラミングできればあとはサンプル見ながらやれば何でもできると思った? そういうのを思い上がってると言うんだよ どうせソケット通信に関しては本一冊も読んでないんだろ 基礎知識もないゴミは身の程を知れ 基礎知識がない証拠に設定を何一つ晒してない 基礎知識があれば特定の動作を期待した設定をして、期待した通りに動かないなら 設定を併記したうえで質問するだろ Cでプログラミングして単に実行ファイル作るだけならゴミでもできるんだよ 実行ファイル作れちゃったから「ボクチンでもいけるかもぉ〜?」とか思っちゃったんだろ 思い上がるなゴミ
>>840 たぶんもう見ていないだろうけど、「文字列と1文字とで」という違いじゃないんですよ。
値を、入力されたデータに書き換えるために、そのアドレスを渡しているんです。
あと(配列のことを言っているんでしょうけど)文字列を渡しているんじゃないんです。
書き込むメモリの先頭のアドレスを渡しているんです。
焦らずじっくりこの意味を理解された方があとで楽だと思います。
>>835 大人しくC++の例外を覚えるのではなく、大人しくdeleteしたほうが……。
>>813 × OSに全部任せちゃって欲しい
〇 ゴミアプリ作るくらいなら何も作らないで欲しい
メモリ管理すらまともにできない奴が世にソフトウェア公開するな
サイバーテロと同罪
856 :
デフォルトの名無しさん :2014/01/22(水) 00:06:39.39
>>855 へーこの
ゴミ
は
手動メモリ管理で、ソフトウェア作るのか
ゴミはGCすらないゴミ言語でソフトウェア作ってるのが確かにお似合いだからな
そのまま死ねゴミ
857 :
デフォルトの名無しさん :2014/01/22(水) 00:08:08.09
>>854 (・ω・)死ねwwwwwwwwwwゴミwwwwwwwwwwwwwwww
ゴミwwwwwwwwwwww(・ω・)wwwwwwwwwwww
ゴミwwwwwwwwwwゴミwwwwwwwwwwwwwwゴミwwwwwwwwwwwwwww
(・ω・)ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミ
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミ
昔Luaでゲームの実装した時はやたらGCが重くて 足引っ張ってたからGC=重いってイメージがあるんだけど 今は方式変わってマシになってるのかな?
859 :
デフォルトの名無しさん :2014/01/22(水) 02:55:48.65
質問していいレベルにすら達してないゴミのレベル 全自動でGCさせてんなら重くなるの当たり前だし お前みたいにGCに全部メモリ管理任せて自動解放させてたら それはどんだけPC進化したって無理に決まってんだろバカか もう死ねよゴミ 自動解放はオフにしてリアルタイム性が要求されない場所でため込んだメモリ解放させんの当たり前だろ死ねゴミ
860 :
デフォルトの名無しさん :2014/01/22(水) 04:17:27.75
ゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
アクションゲームってジャンプボタンを押す長さでジャンプする高さを調節できますが、あれってどうなってるんですかね? ジャンプする高さは y = -(1/2)gt^2 + vt で与えられると思いますが、これは初速vによって最大の高さが決まってしまいます。 そしてジャンプ後に初速vを変更することはできません。 例えば私たちがジャンプしても足が地面から離れた瞬間に最大の高さは決定しています。 しかし、多くのゲームではそれができているようなのです。 なぜでしょうか? ジャンプ後に初速を変更すれば、その瞬間に上向きに加速したように見えるはずですが、加速しているようには見えません。 ジャンプボタンの押し込みが0.1秒で小ジャンプ、0.2秒で中ジャンプ、0.3秒で大ジャンプというのも考えましたが、 そうするとボタンを押した瞬間にジャンプすることはないはずです。 どうなっているのでしょうか?
>>861 アクションゲームは物理シミュレータじゃないんだからそれっぽければいいの。
それと、鼬害。
その借り物の計算式が本当に必要なのかどうかを考え直すところから
865 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/22(水) 11:40:49.41
int*はvoid*に互換なのにint**がvoid**に互換ではない。 void*が特別なのか?
お前の頭が特殊 ちょっと考えれば互換でないことは明白
>>859 もちろん任意のタイミングで呼び出してたよ、そうじゃないとお話にならないレベルだし
ロード画面とか画面が固まっていいタイミングがなかったからなぁ
868 :
デフォルトの名無しさん :2014/01/22(水) 15:32:25.68
つまりマルチスレッドも使えない低スキルということか ゲームならマルチスレッド必須だろうに
869 :
デフォルトの名無しさん :2014/01/22(水) 15:38:16.51
まくろってなあに?
マルチスレッド環境下でのガベージコレクタを実装するとしたら 必要性の追跡や実開放作業下でスレッド排他をかけるような気がするが。。。 うまく潜り抜けれる方法があるのかもしれない
871 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/22(水) 15:45:47.63
>>869 #define MACRO0 int a = 0
#define MACRO1(x) int b = (x) + 1
int main(void)
{
MACRO0; // int a = 0;に展開させる
MACRO1(2); // int b = (2) + 1;に展開される
printf("%d\n", a); // 0
printf("%d\n", b); // 3
return 0;
}
>>862-864 ありがとうございます。
>>863 さんのが目から鱗です。
初速を小さくするのではなく、初速を最大にしてジャンプを開始しておいて、
ボタンが離された時点で、ボタンが押されていた長さに応じて初速を下方修正するんですね。
確かにこれだと上向きには加速しないので不自然さが抑えられますね。
ゲームって普通のアプリと違って設計が面倒
ゲームが一番に複雑じゃないの?
一番は言い過ぎ ゲームが複雑なのはパフォーマンスを確保するために ハードウェアに合わせた極限の最適化が必要だから 複雑さだけなら医療機器や自動金融取引プログラムの方が遙かに複雑
総称ポインタだけ扱いが違うんだね。 TYPE1がTYPE2に互換だったら、TYPE1*がTYPE2*に互換であってほしい。 D言語でも駄目だった。
>>868 ゲームってもメタバース上への実装だから好き勝手できるわけじゃなかったからな
好き勝手できるなら素直にC++で開発したかったw
ゲームでマルチスレッドって作りにくいんだよな CPUのコア数やスピードで結果が変わるのは避けたいから せいぜい描画スレッドだけ分ける程度しかできない
RPGとかで攻撃を受けたキャラクターの上にダメ出るやつってダメの管理はどうしてるんだろうな 表示してる間(1〜2秒)は値をどこかで持っておかなければならない キャラの構造体にそれ用のメンバを作っておいて攻撃を受けたらそこにダメの値を入れておくのかな
表示するだけならキャラに関連付ける必要はないだろう
882 :
デフォルトの名無しさん :2014/01/22(水) 17:39:35.48
>>878 CPUの性能でマシンガンの連射速度が変わるTPSがあったなw
もともとコンシューマ機で出たやつをPCに移植したからそのときの調整忘れだとは思うが、対戦では泣かされたw
高クロックCPUをOCしてる奴と撃ち合うとこっちの体力が一瞬で削られたw
>>881 でもキャラの上に表示するから、どのキャラのダメージかはっきりさせておく必要があるだろう。
ポインタについてなんですけど、int も float も4バイトですけど 同じものとして考えてOK?
887 :
デフォルトの名無しさん :2014/01/22(水) 17:59:21.57
>>879 多段ヒットする技とかだと複数同時に、しかも位置をずらして表示する必要があるから、位置とダメージ数値と表示開始時間をメンバに持つ構造体の配列をキャラクタの構造体に持たせておく必要がある。
>>887 お前エフェクトとかもキャラに持たせてんの?
エフェクトはキャラだろ
890 :
デフォルトの名無しさん :2014/01/22(水) 18:21:14.34
別に初心者なら初心者で良いけど、
>>889 こういうゴミレス散らかす初心者はネットに自分の考えをばら撒くのをやめて貰いたいな
お前はまずゲーム作れていないのが【 エフェクトはキャラだろ 】この1レスだけで分かる
さっさと死ねゴミ
891 :
デフォルトの名無しさん :2014/01/22(水) 18:31:50.60
2ch上ってアホが多すぎて手遅れになってるwwwwwwww 論外レベルとwwwww初心者レベルwwwwwwwww で、入門書を最後まで読めたレベルがwwwwwww先生気取り出来るレベルwwwwwwwwww それが2chのレベルwwwwwwwwww オワタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
>>875 医療機器も金融自動取引も、ゲームプログラミングに包含されてねぇ?
組込系や金融周りのアルゴリズムだけ必須って印象
>>877 3Dのゲームエンジン作りとか、じゃないのね
>>891 はてなも、twitterも似たようなもんじゃん
>>878 なる程
言われてみればその通りだな
知らなかったわ
896 :
デフォルトの名無しさん :2014/01/22(水) 19:06:04.47
メモリーエラーツールとか使ってる人いる? WindowsならBoundsChecker LinuxならValgrindが有名だけど セカンドオピニオン的に複数使いたい 特にLinuxで動作する個人で買えるくらいの物が欲しい 正直この手のツール無しでまともに動くプログラムが書けないよ
897 :
デフォルトの名無しさん :2014/01/22(水) 19:46:16.38
>>896 > 正直この手のツール無しでまともに動くプログラムが書けないよ
> 正直この手のツール無しでまともに動くプログラムが書けないよ
> 正直この手のツール無しでまともに動くプログラムが書けないよ
知的障害かおまえ・・・
898 :
デフォルトの名無しさん :2014/01/22(水) 19:48:34.56
>>878 意味がわからないしwwwwwwwwwwww
>>895 何に納得したのかも意味がわからないwwwwwwwwwwwwww
なんだこのゴミスレwwwwwwwwwwwww
>>897 まとも=訴訟リスクに耐えうる だろJK
マルチスレッドのプログラムで、CPUのコア数やスピードで結果が変わるってのはバグなんじゃないの? レース状態っていうやつ。
ゲームの話だろ ユーザの環境を見わけて見えないところで頑張ったって売り上げは変わんないw
902 :
デフォルトの名無しさん :2014/01/22(水) 20:13:45.56
>>900 >>901 ゲームだろうがゲームじゃなかろうが
同期取れてないマルチスレッドとか、普通のアプリでもゴミ
いやまぁあるにはあるよ
例えばシーンAとシーンBを高速で行ったり来たりとか
処理速度落としながらシーン移動するとバグるゲームは
でもだからといってこれから新規でプログラム書いても良いよってなってるのに
どうして既存のゴミ設計の上にコードを書かなくてもいいのに、再度そんなゴミ設計のもとで作るぜって話になるかな
903 :
デフォルトの名無しさん :2014/01/22(水) 20:14:53.38
頑張る頑張らないで言ったら バグってない設計の元でゲーム作る方が頑張らなくて済むわ。。。どう考えてもな
904 :
デフォルトの名無しさん :2014/01/22(水) 20:16:26.14
やばすぎるwwwwwwwwwwwwww 人類退化してんじゃねえのwwwwwwwwwwwwwwwwwwww
905 :
デフォルトの名無しさん :2014/01/22(水) 20:17:35.51
ゴミwwwwwwwwwwwwww ゴミwwwwwwwwwwwwwwwwwwwwwwww ゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
低レイヤのミドルウェア書くことが無くなってからプログラマは退化しました
>>896 メモリアロケータを自前でラッピングしている
好きなタイミングでわざとアロケーションエラーを発生させられる点でも重宝している
Valgrindって、gdbとどう違うの?
あのうんこそのもののxmalloc www あれなら机上デバッグの方が10万倍まし
うんこアロックw
GCCの拡張とか無しで、関数の中で匿名関数って書けませんか?
913 :
デフォルトの名無しさん :2014/01/22(水) 23:14:51.63
っC++
Cで書きたいんです。 外の変数にアクセスしたりできなくて構わないです。 qsort(data, length, sizeof(data_t), int (const void* v1, const void* v2){ return v1 < v2 ? 1 : v1 > v2 ? -1 : 0; /* 降順。 */ }); 関数内だけで使う独自ルールを記述するのに、 こんな感じでその場で書けると、便利だし修正も簡単で良いなと思ったもんで。
関数内で関数は定義できないし、別に定義した関数のポインタを渡すしかないな。
919 :
デフォルトの名無しさん :2014/01/23(木) 04:04:08.42
シームレスなマップ移動のゲームとかだとマルチスレッドにして後ろでマッピ読み込んでるだろ
別にマルチスレッドじゃなくてもイベント管理がしっかりしていれば後ろで読み込めるけどな。
mmorpgの通信部分はマルチスレッド。 通信はtcpで非同期。
>沸騰水型原子炉の加圧水型原子炉に対する優位性はどこにあるのでしょうか? 沸騰水型原子炉は、減速材として封入している原子炉格納容器内の軽水を直接加熱、それを蒸気として原子炉格納容器外に引き出しタービンをまわすものです。 放射能を十分に帯びた減速材が一次冷却材を兼ねており、減速材でタービンを回す点が利点にも欠点にもなります。 すなわち効率上昇、仕組みが単純なため建設費が安くすむ一方、設備への放射能汚染が高くなり日常の保守作業における被爆量が高くなる欠点があります。 >沸騰水方原子炉における主蒸気隔離弁の重要性はどのように位置付けられるのでしょうか? 原子炉格納容器からの蒸気流量を調整する役割を担っています。 原子炉緊急停止(原子炉スクラム)の際は、炉内に制御棒を挿入すると同時に主蒸気隔離弁が放射能の濃厚な蒸気を遮断する一連のシーケンスを構成しています。 >主蒸気隔離弁の破断をどのように評価すればいいのでしょうか? 主蒸気隔離弁は、原子炉緊急停止時の安全を保障する装置群の一環でありいかなる場合であっても破断は許されません。 今回破断した炉について安全強度が不足していることを示唆する事例といえます。 なお、日本全国の沸騰水型原子炉すべてについて原子炉緊急停止に必要な強度が不足している懸念を示す解釈も可能です。
923 :
デフォルトの名無しさん :2014/01/23(木) 13:52:30.27
2Dアクションゲームのステージで地面に傾斜が付いてる部分ってどうなってる? 初代マリオみたいに傾斜がなければブロック単位で処理すればいいんだろうけど、傾斜が付いてたらどうすればいいのかと思って やっぱりブロック単位で地面の傾斜情報もたせてキャラの接地点を計算してる? それとも地面に沿って直線引いて、キャラから下向きの直線との交点を接地点にしてる?
後者のそれも傾斜情報が必要だと思うけど
>>924 地面に沿った直線が傾斜情報なんじゃないのかね
いや、角度によってはキャラが滑り落ちたりするだろ それとも75度の傾斜でも普通に立てるゲームか?
928 :
デフォルトの名無しさん :2014/01/23(木) 19:10:56.18
はぁ? じゃぁ3dはどうすんの? 傾斜情報なんてねーだろ 当たり判定用のローポリ地面モデルがあるだけだろーが 当たり判定用のモデルと鉛直方向の直線との交点が接地点 分かる?
既成のゲームエンジンに個人が追いつけるかぐらい考えろよ
>>928 逃げるなよ。
傾斜で滑り落ちるのはどうするの?
box2d.jsのコードを読む
932 :
デフォルトの名無しさん :2014/01/23(木) 20:27:33.30
C言語ってタンジェントも計算できないのか
え?出来ないの?atanから変換するんだっけ
934 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/23(木) 20:33:54.10
そう、atan2で傾斜から角度が得られる。 角度がわかれば垂直抗力も計算できるので、後は力学の問題となる。
935 :
デフォルトの名無しさん :2014/01/23(木) 20:44:30.59
タンジェントは計算するんじゃなくてテーブルから引っ張ってくるだろう女子高生 40cpucycle使うからな
>>915 は?無理って何?初心者に嘘教えんな
死ねゴミ
十六進数にして文字列として埋め込む形の関数定義なら出来る
したらその文字列を関数型でキャストすりゃクロージャに出来るわけで
なんで無理だと思ったのか意味がわからないマジでゴミ
お前みたいな奴は死ねよゴミ
937 :
デフォルトの名無しさん :2014/01/23(木) 21:28:39.84
いや、タンジェントなくてもプレイヤーが立ってる位置の傾斜は計算できる 開発時に紙上で計算して定数とかにして組み込めばいい 滑り落ちる角度が30度なら0.577くらいか これを定数にしてぶちこんでおけ テーブルも不要
938 :
デフォルトの名無しさん :2014/01/23(木) 22:38:22.98
その程度も出来ないとかマジで田植えから始めて文明作り直したほうがマシなレベル
939 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/23(木) 22:43:55.75
現状では無理。C++11使え
943 :
デフォルトの名無しさん :2014/01/24(金) 00:05:59.89
>>942 プレイヤーの接地点から各方向のタンジェントを求めて0.577以上であれば30度以上だと判断できる
プレイヤーの接地点から半径30センチの円の上に等間隔に8点を取り、それぞれの点についての高さを計算する
例えばプレイヤーの接地点を中心とした半径xセンチの円上にある点Aの高さをhセンチ、プレイヤーの接地点の高さをYセンチとすると、
if ( y > Y ){
if ( (y-Y)/x > 0.577 ) printf( "A点へ向かって30度以上の上り坂です" );
}else{
if ( (Y-y)/x > 0.577 ) printf( "A点へ向かって30度以上の下り坂です" );
}
より正確に判定したければ8点だけじゃなく16点とか32点で判定すればよい
944 :
デフォルトの名無しさん :2014/01/24(金) 01:49:03.99
sin cos tanのそこら辺理解してない奴とかマジでゴミがマシに見えてくるレベル ちなみに俺は、学校をサボりすぎた為にsin、cosを習っていない状態でテストを受ける事になったが テストの中の僅か20分でsinとcosを発明して独自の式で問題を解いた実績がある
学校の頃の成績を自慢する大人ってとてもかっこいいと思います
946 :
デフォルトの名無しさん :2014/01/24(金) 05:37:35.56
>>945 ちなみに数学だけはどんだけ学校をサボっても赤点を取った覚えはない
あ、他にも体育はとってないな、
数学、体育以外の教科は、ゼロまたはイチのオンパレード
それが俺様の学生時代
バカにされてるのにさらに続けるってどういう神経してんのw
ageレスは釣り、って近所の小学生が言ってた
949 :
デフォルトの名無しさん :2014/01/24(金) 09:41:26.97
2chでは上げたくない場合にsageと書く つまり上がるのがデフォルト sageを憶えたての初心者は100年ROMってろ
うーん、三角関数は確かに自力で誘導可能だけど、流石に積分公式はなんともならなくて赤点だったなぁ。
void WaitN(uint32_t ticks) { mrt_counter = 0; while(mrt_counter < ticks); } int main(void) { WaitN(500); } このwhileの書き方で500ステップ分のウェイトかかる?
減らせ
聞きたいのは、この書き方で、ticksは減算される?
全体、何がしたいんだ?
955 :
デフォルトの名無しさん :2014/01/24(金) 14:42:30.93
質問に質問で返す間抜け
せめて while(mrt_counter < ticks) ticks--; これぐらい書かないとな コンパイラの最適化で、実際のコードは切えて無くなるかも知れない
957 :
デフォルトの名無しさん :2014/01/24(金) 15:03:30.56
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwww
>>956 逆にticks--;無しで減算されるとは思えんが
959 :
デフォルトの名無しさん :2014/01/24(金) 16:25:04.08
そうだね、これは最適化が問題になる Debug -> Release これだけで氏ねる
960 :
デフォルトの名無しさん :2014/01/24(金) 16:58:38.35
いや、なんか、結論出たみたいな空気になってるけど 質問に対する回答になってないぞ 923:デフォルトの名無しさん :2014/01/23(木) 13:52:30.27 2Dアクションゲームのステージで地面に傾斜が付いてる部分ってどうなってる? 初代マリオみたいに傾斜がなければブロック単位で処理すればいいんだろうけど、傾斜が付いてたらどうすればいいのかと思って やっぱりブロック単位で地面の傾斜情報もたせてキャラの接地点を計算してる? それとも地面に沿って直線引いて、キャラから下向きの直線との交点を接地点にしてる?
mrt_counter のほうが volatile で勝手にカウントアップする何か かもしれないと考える 例えば、直接アドレス指してアクセス。 つながってるボードが勝手にカウントアップとか #define mrt_counter (*(int *)どこぞのアドレス) こういう時 volitile 指定は効くのかな? #define mrt_counter (*(volalite int *)どこぞのアドレス) /* 最適化するなよワレ */
ブロック単位ってめんどくさい。当たり判定が楽な方がいいじゃん
線分と線分の当たり判定を勉強したんだろう? それを応用するだけじゃん
「volatile 使い方」でググれ
965 :
デフォルトの名無しさん :2014/01/24(金) 17:24:36.73
>>961 効くには効くが volatile は遅延を保証はしないので解決にはならない
むしろ、解決したかに見えて誤解したままリリースするのが最悪
おお、まさにこんなスレを探してた…! 初心者ってか今から学び始める準備してるんだけど(ほかの言語勉強したこともない) 「学習用C言語開発環境」ってソフトよさそう?なんか怖くてダウンロードしてない 「.NET framework 2.0」が必要って書いてあるけど、これがなんなのかすらggってもよくわからん。 よくわからんから、なんかどっちも怖くて入れれずにいる…。お察しの通り頭悪いです。 いいものなんだよね?怪しくないよね??スレチだったらごめん
それが何かは知らんが、「苦しんでおぼえる」と書かれているのにいいのか?w
つーか、.Netが必要ってことが理解できない位パソコンの知識がないのに 何かをインストールしようとするなんて、馬鹿を通り越している。
>>967 すこぶる頭悪いからどこみてもどうせ苦しむんだよ…
>>968 そのとおり。だから聞いてみた。
フリーソフトとかほとんどインストールしたことないんだよ…
WindowsならC#辺りから始めた方が良いんじゃないかな 一見同じ様に見えるしむしろCの方が単純に見えるかも 知れないけど、初心者がつまずくポイント山ほどあって イバラの道だぞ
>>970 おお、ありがたい。winです。
ちょっと事情あってCは必須だからまずC覚えてからほかの言語かな〜と
思ってたんだけど… C#→Cの方が簡単なのかな?
あ、
>>966 ,969はわたしです
C#の方が圧倒的に簡単だから、まずはそっちでプログラミングとは どういうものかを学んだ方がいいかもな。
C の方が言語把握する程度なら簡単だろ。 やりたいことの実現が簡単なのはC#だが。
今日日、初心者がcなんて使って何を作るんだよ
975 :
デフォルトの名無しさん :2014/01/25(土) 00:50:34.05
ゲームに決まってるだろ そんなことより、きょうびって活字で見かけることが少ないから違和感感じるな
ゲームならUnityで良いし、業務アプリも.NETで良いし、 やるならデバドラなんかの組込み系ぐらいだろカス。死ねよ
ガチでやろうとしたら15万出してUnity Proとか買わなきゃならないだろ。 C(DirectX用にC++)で十分。 ステマはさっさと消えろ。
相変わらず間違いだらけの糞サイトだな<苦(そ)C
979 :
デフォルトの名無しさん :2014/01/25(土) 01:23:03.56
頼る足場は必ず自分で作って確かめるポリシーには賛同するが そこにいささかでも傷があるとゴミ以外の何物でもなくなる
初心者にCなんか勧めるのはコチコチ脳の老害 困ったときにすぐ相談できる相手がいなければ詰み
982 :
デフォルトの名無しさん :2014/01/25(土) 02:55:43.05
プロよりも同人勢のほうがガチ たまにプログラミングとは関係ない人生歩んでるくせに20歳前後で そこそこのゲーム作っちゃう奴
何故、同人ゲーで、そこそこのものが作られるか?ってのは、 複雑に絡んだ些細な問題を考えずにゲーム開発にだけ専念できるから
>>983 いやそこはやっぱ、代え難い情熱があるから、と言ってあげたいね。
985 :
デフォルトの名無しさん :2014/01/25(土) 04:31:35.22
986 :
デフォルトの名無しさん :2014/01/25(土) 05:45:31.09
というか「仕事」にするなら好きかどうかより、得意ジャンルだよな 好きと得意がイコールじゃないとか良くある
987 :
デフォルトの名無しさん :2014/01/25(土) 11:05:46.17
ゴミゴミゴミゴミゴミゴミゴミwwwwwwwwww
strcat()などのある型へのポインタを返すの使い方がわからないのでおし得てください。 strcat(str1, str2); としてしまえば、str1はstr2の結合された文字列を得られるのに、わざわざcharへのポインタを返すのは何故でしょうか?
識別子の記述回数は無理なく少なければ少ないほどいいんだよ 言語でもライブラリでも
あ
991 :
片山博文MZ無能 ◆T6xkBnTXz7B0 :2014/01/25(土) 13:18:14.72
992 :
デフォルトの名無しさん :2014/01/25(土) 14:45:07.86
>>962 >当たり判定が楽な方がいいじゃん
バカだろ
基準はゲーム開発ツールの開発が楽かどうかだろ
オブジェクト指向なんて必要ないよね?
そりゃぁあれば便利だけどなかったからといって困るということはない。
まったく最近の若いもんときたら、 クラスがどうとか多態性がどうとか継承がどうとか わけの分からんことばっかり言いやがって。 あのなぁ、プログラムってもんは一から一つずつ関数を積み上げていくんじゃ。 それもなぁ、一関数はせいぜい20から25行位内に収めろよってんだ。 老眼の俺には読めないような8ポ9ポのフォントで80行もある関数書いて、 端末一画面に収まるでしょっとか言うんじゃねぇ、ボケが!
996 :
デフォルトの名無しさん :2014/01/25(土) 16:32:42.33
>>995 死ねwwwwwwwwwwwゴミwwwwwwwwwwwwwwwwww
ごみごみごみごみwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
996 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
998 :
デフォルトの名無しさん :2014/01/25(土) 20:45:42.65
997 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
uy発狂
もういいよ。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。