1 :
デフォルトの名無しさん :
2013/12/14(土) 00:04:45.50
2 :
デフォルトの名無しさん :2013/12/14(土) 00:38:11.23
理由が無いのでhogeは禁止されていません あたかも合意事項で有るかのようにhoge禁止を壊れた録音機が如くリピートしている 気違いがいますが無視しましょう
【重要】 hogeはガラパゴス化を助長するため禁止します、使用しないでください。 また、hogeを利用している人は普段からhogeを使用した文書を頻繁に読んでいる可能性が高いと考えられますが、 hogeを使用した文書には誤解を招く情報や間違った情報が書かれている場合がほとんどであるため、 hoge使用者の基礎知識やスキルもそうした誤った情報を元に構築されている可能性が非常に高くなっています。 つまり、話の噛み合わないことが多く、わざと頓珍漢な内容を書き込んで荒そうとしてる荒らしと区別がつきません。 よって、万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。 なお、hogeはNGワードに追加しておくことが強く推奨されています。
995 デフォルトの名無しさん [sage] 2013/12/14(土) 11:45:45.22 ID: Be: M個の一桁の数字(重複なし)からなるM桁の数字を 上位の桁から出来るだけ大きい数を選択する手順で順列にしたとき n番目の数字を出力する関数を作成することは出来ますか? たとえば M = 4 で 数字[2, 3, 5, 7] からなるとき n = 3 は 7532 ← n = 1 7523 ← n = 2 7352 ← n = 3 7325 ← n = 4 ... なので int array[] = {2, 3, 5, 7}; int i = func(array, 4, 3); で i == 7352 となる func() が欲しいです 996 デフォルトの名無しさん [sage] 2013/12/14(土) 11:49:22.52 ID: Be: 関数の中で n 版目が出て来るまでループすると時間がかかるので 出来ればループを使わないで済む方法が知りたいです
5 :
デフォルトの名無しさん :2013/12/14(土) 12:26:51.07
C言語の本でhoge使っててまともなのって一つもないよなw ああいうのつかまされる初心者ってかわいそうw
初心者でも情弱じゃなけりゃhoge本は避けるでしょ
hoge本とかあるんや
猫が好きだったからという理由で猫本から入った俺 正直読みづらかった
hoge使ってる本って見事にまともな本が一冊もないけど、何か共通点ってあるのかね。
10 :
デフォルトの名無しさん :2013/12/14(土) 13:11:44.13
hoge本は読みやすかった 読みやすいだけで価値はなかった 前言撤回 読みやすいだけで変な癖がつきまくったから 価値がないどころかマイナスだった
>>4 nを0番から始めることにして、
n = n3*3! + n2*2! + n1*1!
n3 <= 3, n2 <= 2, n1 <= 1
を満たす n3, n2, n1 >= 0 を探す。
最初の桁は n3 番目に大きい数字、
次の桁は最初の桁を除いた n2 番目に大きい数字、
次はさらに二つ除いた n1 番目に大きい数字、
最後は残った数字。
桁数が増えても同様に。
計算で求めるほうがループで求めるより時間がかかる気がする
階乗進数か
>>12 んなことねぇよ
各階乗で割って商と剰余を求めていくだけ
半年前くらいにサンプルでhoge使ってる本は全部処分した。
foo bar にすりゃいいの?
著者が日本人なら同じくダメ。 ロベールはフランス人だからOK
プログラミング関係じゃないけど、15年位前のFreeBSDか何かの本はhoge使ってたけどいい本だったよ
hogeより接頭辞としてmyを使ってる方がクソだ
MyHogeHoge(foo, var):
26 :
デフォルトの名無しさん :2013/12/15(日) 00:22:31.05
20世紀はまともな本あったが 21世紀になってダメな本が増えた perlのせいだ
それを言うなら PHP だろ
KENTのせいだろw
hoge本に良本なんかないのに
>>23 みたいに理解したつもりになってる奴が一番迷惑。
その知識で会話に入ってこようとするからな。
本人に自覚も悪意もないから尚更始末が悪い。
ちょっとコンピュータの仕組みの話になるんですが データの容量とか配置ってのは物理的な容量、配置になるんですか? それとも論理的な容量、配置になるんですか?
「物理的」って意味が分かりません 何ですか?物理的って
物理的容量、物理的配置、論理的容量は存在するが、論理的配置はない気がする
>>32 プロセスごとにメモリ空間が独立してるのは論理配置じゃね?
物理的容量・・・実際のハードウェアの容量 論理的容量・・・大きさに意味付けをしたうえでの容量
RAIDだと、1TBのハードディスクを使っていても、アプリからは500GBに見えるとかは有るな。
>>35 それUSBでもあるんだけど何でだろ?
HDDに渡したときと、USBにあるときと同じファイルの容量が違う
何故か?これ面接の時、問題で出されたわ
ディレクトリとかも論理的配置だろ
>>36 いやぜんぜん違う話だろ
セクタ長が違うんじゃね
exFatって無駄に容量食い過ぎだよね
43 :
デフォルトの名無しさん :2013/12/16(月) 12:19:19.73
初期値𝑎1を与えると数列の長さと最大値を返す関数collatzを定義せよ。ただし、この関数は数列の長さを関数の返り値とし、数列の最大値はポインタを通して返すものとする。したがって関数プロトタイプは次のようになるだろう。 int collatz(int a1, int *amax) main関数では、初期値を2から100000の範囲で動かして数列を調べ、最長の長さを与える数列の初期値、その長さ、最大値を求めよ。 がわからん。教えてくだされ。
>>43 何が分からんのか分からん。教えて下され。
46 :
デフォルトの名無しさん :2013/12/16(月) 12:49:23.74
47 :
デフォルトの名無しさん :2013/12/16(月) 12:55:44.68
>>45 for(;;)などはそのままでも良いのですか?
>>47 いいよ。
したのstdoutのところが実行結果。
49 :
デフォルトの名無しさん :2013/12/16(月) 13:04:04.11
まちがえた初期値a1を与えたらだ。
50 :
45 :2013/12/16(月) 13:07:51.64
他のスレに貼られてる回答と結果が違うな
>>45 はバグってるかもしれん
int型配列の場合、要素の数を最初指定しても、指定した数を超える添え字で アクセスしても代入とかできますよね? つまり要素の数を指定しても意味がなく、自分で配列の容量を超えたらエラー になるような仕組みを実装しておかなければならないと思うのですが、そういう のってどうやればいいんですか?
mallocとアクセサ
>>51 #define hairetsu(a,b,c) char a_wsz[sizeof(size_t)+sizeof(a)*c];a*b=(a*)((char*)awsz+sizeof(size_t))
#define cksz(b,c) assert(*(size_t*)((char*)b-sizeof(size_t))>c),c
hairetsu(int,x,10);
x[cksz(x,10)]=0; // abort!
cksz のような使い方する場合に必須なんだろうけど カンマ演算子はキモイな
もう一つ疑問なんですが、配列を宣言した時点でサイズが関係ないなら 宣言するだけで膨大な容量を確保してるという事になるんじゃないですか? そうならば、それでも何個も配列を宣言できるのは何故でしょうか?
57 :
デフォルトの名無しさん :2013/12/16(月) 17:06:27.33
いくつかの身長データから 人数、身長の最大、平均身長、身長の標準偏差を求めるプログラム教えてくわさい。
>>54 ちょっと難しいけど使ってみたいと思います
>>58 え!使うの?ソレ代入して無いし
インクリ副作用を無考慮だったわ
#define hairetsu(a,b,c) char b_wsz[sizeof(size_t)*2+sizeof(a)*(c)];a*const b=(a*)(&(*(size_t*)b_wsz=(c))+2)
#define cksz(b,c) assert(*((size_t*)b-2)>(*((size_t*)b-1)=(c))),*((size_t*)b-1)
>>58 難しくて理解できないなら使わないほうが安全です
「関数呼び出しの引数が多すぎます」というのはどういうエラーでしょうか? メニューのプログラムからswitch文でそれぞれ登録、変更、削除、表示のプログラムに 飛ぶように作りたいのですが「関数呼び出しの引数が多すぎます」というメッセージが出てうまくいきません
>>61 関数で指定されてる引数が2つなのに関数呼び出す時に3つ指定するとそんな感じのが出たような
とりあえず引数の数チェックしてみれば?
>>61 ・関数
・引数
こんな用語も分からないゴミには無理
なんで初心者用の書籍も全く読まずにやろうとすんの?
本当にゴミだな
>>61 ここは日本語の入門スレじゃない、失せろ。
>>56 簡潔にいえば、int a[10]と宣言して値を取得するときのa[0],a[1]…a[n]は、「配列のn個目の要素を取り出せ」という意味ではなく、
「アドレスaに4nを加えたアドレスにアクセスせよ」という意味だから(sizeof(int) = 4のとき)
例えばint a[10]に対してaを1000番地とすると、配列のために確保された領域は1000番地〜1039番地
このときa[10]=1040番地はaのために確保された領域ではないが、存在はするのでアクセスできる
当然この1040番地には何のデータが入ってるか分からないし、いつ書き換えられるのかもわからないので非常に危険
まあとりあえずポインタを勉強してみようぜ
メッセージの示す行よりも前に、問題の本質がいたりすることもあるしー
答えてやりゃいーだろそんくらい プロトタイプと宣言の引数が一致しないか宣言と呼び出しが一致しないかのどっちかだと思うけど、どっちで出るエラーだっけか
>>62 ありがとうございます
チェックしてみます
「関数呼び出しの引数が多すぎます」で検索するという知恵は働かないのだろうか? どえりゃー不思議だがね
不思議だけど 馬鹿はハンディキャップ って良い例 検索すらできない奴がプログラミングしようとしてる
最近のム板なんてどこもそんな感じ ググれば一瞬で理解できることを質問してくるから、 回答者はググったページの要点をまとめて答える係になってる
ググってわからねーから聞くんだろ? エラーメッセージだけで検索しても何が原因か特定するのは初心者には難しい 質問する奴はプログラム晒したほうが早いよ 答える方は「なんでこんなこともわからないの?」とか下らない煽り書かなくていいよ ケチつけるのは誰でもできる
73 :
デフォルトの名無しさん :2013/12/17(火) 00:50:09.30
>ググってわからねーから聞く この時点で素質ゼロだよなw ドキュメントの少ない20世紀ならいざ知らずw >質問する奴はプログラム晒したほうが早いよ そうだな、何の力もつかないけど早いよなw 早いとはいえ人として最低限のプライドもない乞食にしかできない芸当だけどw
>>73 >★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
プライドというか
>>1 で推奨されてるけどな
プログラム晒すのは乞食にしかできない!と思うならスレから消えれば?
お前このスレに合ってないよw
>>61 どんな関数をこさえたのか気になるw
いくつかのデータを構造体にまとめろ
cygwinのgccを使っています。 コンパイルエラーが出て、修正をして再度コンパイルしたのですが、 以前と同じエラーを出します。
76です。すいません。勘違いでしたので、忘れてください。
エラーの内容は?
忘れてください
やだ。
いったん質問した以上は エラーの内容と何で解決したのか書くべき。
いらね
>>59 添字のレンジを気にするアホウを皮肉るネタかとおもたら・・・
本気だったのかw
ARDUINOを使ってアナログ入力信号3つを、それぞれの信号の大きさで3段階に分けて3つのピンに出力させたいのですがまったくできません お願いします アナログIN→A/D変換→デジタルOUT この動作を3つのピンでしたいのです A0→D9 A1→D10 A2→D11 このピンになる様にしたいです
>>53 大文字にスネーク記法って、よく使われてるの?
ローマ字のマクロには気持ち悪さしか感じない
特に可読性が落ちているわけでもないし
スネーク記法とキャメル記法の混合みたいな気持ち悪さがある
>>65 ありがとうございます。要素数を指定することは意味があるんですね。
プログラム作るのって納期あるの?作ったらメールでコピペして 上司とかに送るの?
>>90 納期はもちろんある。
週一でミーティングして進捗を報告。
たまに進捗率90%で進まなくなって「先週も90%だっただろ」って責められる。
ソースは共有フォルダにおいてるよ。
ソース管理ツールを導入してるところもあるけど、共有フォルダとの違いが理解できなくて
src_20131210
src_20131212
みたいなフォルダをリポジトリに登録してバージョン管理してる。
>>91 まじですか、納期あるんだやっぱり
プログラムは機能通り動けばいいの?
全く関係無い変なコメント挟んでいても修正はせず?
Subversionすら使ってない現場ってあったの? 素人の集まり以下があつまって、なに作ってる?
>>92 納期があるのは当たり前だろ…
人を働かせればその間は成果があろうとなかろうと会社は給料を支払う義務が発生するんだよ
だから会社側は雇った人間に給料以上の仕事をさせなきゃいけないわけで、
従って納期を決めて成果を出させる必要がある
給料いじょうの働きは、当然、返ってきません
>>94 あることに驚きました。
プログラムのチェックはプログラマーがやるの?
プロジェクトマネージャーやシステムエンジニムーはチェックせず?
エンジニムーわらった
>>97 プロジェクトマネージャーもプログラミング分かってないとダメなのか
かなり厳しい職業だねITって
あはは
コードをかけない人がコードレビューをしてることとかよくある。 ちなみに今俺のPHPのコードをレビューしてる人は、たぶんPHPの入門書の一冊も読んだことがないと思う。
そういえば、gtkの入門書のチェックを大学の教授がしてたなw
カスタマーサポート部門なんて講義で作るようなコンパイラすら書かないよ。MVC何それって人。
自分で仕事とってきた方がマシって業界
>>95 給料いじょうの働きは、公務員がおいしくいただきます。
>>99 マトモな神経ならIT業界のプロジェクトマネージャーなんて誰もやりたがらない
107 :
デフォルトの名無しさん :2013/12/17(火) 23:56:28.52
Cで boolean aaa[8][8] = {略}; boolean bbb[8][8] = {略}; boolean ccc[8][8] = {略}; という二次元配列をつくっていて、 この配列に添字でアクセスしたいと思ってます。 boolean **hairetsu[2] = {aaa, bbb, ccc}; でコンパイルが通らないんですがどーすればいいんでしょうか? hairetsu[0]でaaaにアクセスしたいんです。
hairetsu[3] エラー出力を読めば良いと思います
109 :
デフォルトの名無しさん :2013/12/18(水) 00:14:01.35
boolean(*)[8]をboolean**に変換できないっていう内容のエラーですが、 両方とも二次元のポインタだと思うんですが… エラー内容読んでも少し分からなかったので 質問させて頂いてます…
分割ファイルのメリットって何ですか? C言語で作られたソフトウェアを構成するファイルってCファイル1つじゃなくて 何個もありますよね?1つのcファイルに纏めないんですか?
まず、[2]じゃなくて[3]な。 二次元のポインタっていう概念はない。 ポインタのポインタと、配列へのポインタとは、まったく別物。 boolean (*hairetsu[3])[8] = {aaa, bbb, ccc};
>>110 でかすぎるソースコードは人間には管理しいれない。
>>110 ここは面接の想定質問をするスレじゃないんだ
>>112 データをやり取りせずにCファイル同士でやり取りすることってありますか?
あるかないかは君次第
単一ファイルだとコードセグメントが64kb超えると コンパイルできなくなるよ
>>116 そんなi8086リアルモードライクな縛りが21世紀の今になってもあるとか、どんな呪いですか
118 :
デフォルトの名無しさん :2013/12/18(水) 01:04:06.11
>>111 ありがとうございます!
無事動きました!
…が、この書式は自分の頭だとどうやっても出てこないですね…
結局、どんな型のポインタだろうと、
作った変数に入れるのはアドレスになるので、
hairetsuの中にはaaaの先頭アドレスと、bbbの先頭アドレスと、
cccの先頭アドレスだけですよね。
だったら
boolean *hairetsu[3] ={}
でいいような気がするのですがそうでもないんですよね。。。
この宣言を無理やり日本語に直すと
boolean型の変数のアドレス3つを入れる配列を宣言します、
ってことでいいんですよね。
それだと動かない理由がわからないです。。。
また、(*hairetsu[3])[8]は日本語に直すとどうなるんでしょうか?
ポインタ難しい…
boolean hoge[8] = {}
あ、intじゃなくてbooleanだったね
>>118 >また、(*hairetsu[3])[8]は日本語に直すとどうなるんでしょうか?
>>120 の↓理解しておいて
>hairetsu is an array of pointer to an array of int.
下手に日本語にしない方がいいような気がする。
123 :
デフォルトの名無しさん :2013/12/18(水) 01:58:31.62
>>120 なるほどぉぉぉ!
そうやって理解していけばいいんですね。
ちょっと頭がスッキリしました。
次からは自分で考えていけそうな気がします。
ありがとうございました!
うぜぇ
こういう慇懃無礼なウンコはリアルで相手にしたくないね!
typedef (void)*piyo(int,int) [あってたっけな?] みたいな関数ポインタはわかるんだけど スレ見てると、俺には、ゆっくり見て紙に書かないと 理解できない関数ポインタをよく見るけど 実際の話、そうゆう関数ポインタってよく使うものなんですか?
>>126 qsort() に渡す関数ポインタがそらで出てくればそれで十分だ後その typedef は要らん
>>126 関数ポインタを引数にとる関数をダイナミックロードするなんてのは良くある。
Qzはレス禁止
関数を実行時に定義&インスタンス化したいのですが どんな方法がありますか?
DLL
>>129 system("cc hoge.c");
system("a.out");
>>130 それは既に定義済のものしか使えないですよね?
>>131 ああそうか
FILE *p = fopen("hoge.c", "wb");
fprintf(p, "int main(){return 0;}");
fclose(p);
system("cc hoge.c");
system("a.out");
でいけました
ありがとう
Ruby のメタプログラミングは eval でやってる(キリっ とか言ってた馬鹿か
>>133 再定義のときDLLってアンロード出来るんだっけ?
LLVMでJIT
v8
Ruby
Cython
>>126 signal, signal handler
>>132 よくそんな恥ずかしいコードを晒せるな
さすがです^^
おまいも成長したな
コンピュータの最小単位の動き(機械語による動作)って シフトと反転だけですか?
145 :
デフォルトの名無しさん :2013/12/19(木) 18:40:44.18
乗算が1命令でできても、それは最小単位じゃないのかよ
関数の中に関数のプロトタイプ宣言をするのは何か意味が ありますか?
その関数の中でしか使わないのなら、そのことが明示されるので、 そういうことをするのもアリかと。 でもたいがいは頭に全部並べるかヘッダーを#includeしちゃうよね。
sleep
>>147 >>148 つーかあれだ、c89以前の習慣の名残りとも言えるね。
今だと下請け関数を作ったらそのプロトタイプをヘッダファイルに
書いておいてそれをインクルードするのが当然だけどね。
151 :
デフォルトの名無しさん :2013/12/20(金) 13:36:28.80
n個の実数x(i)をキーボードから読み込み、それらの平均と標準偏差を出力するプログラムを作りなさい。ただし、n個の実数の平均を求める関数mean(size,x[ ])と標準偏差を求める関数stdev(size,x[ ])を定義し、これを用いること。 がわかりませぬ。どなたか教えてください。極力簡単に仕上げて欲しいです・・・
こういうの初心者はすぐに標準入力から読むのを作っちゃうけど それだとキーボードとは限らないから。 マウスとかパイプかもしれないから
こういうの自称中級者はすぐにわけのわからない機能をつけたがるけど そんなもの必要とは限らないから。 おぼえたてのちしきじまんいらないから
154 :
デフォルトの名無しさん :2013/12/20(金) 15:49:54.58
基本情報の勉強してるんですが値を返さないサブルーチンは プロシージャ、返すのを関数(ファンクysん)とかいてありました、これは本当ですか? これはC言語の話ではないのでしょうか?
あえて言えばPASCAL algolとかPL/Iとか言うひともいる
>>154 呼び分ける場合もあるし分けない場合もある
そもそも呼び方や名前は言語によってまちまち
とりあえず試験用と割り切っておぼえるしかあんめぇ
C言語の関数は実際にはすべて戻り値がある 戻り値が無いときはvoid型のアキュムレータ値を返す
158 :
デフォルトの名無しさん :2013/12/20(金) 16:13:21.61
cの時にはvoid型の変数を返してるんですね
C言語では変数を返すのは不可能
160 :
デフォルトの名無しさん :2013/12/20(金) 16:20:52.44
変数を返す?
値を返すわけでもなく 変数への参照を返すわけでもなく 変数を返す
そんなことができる言語あるんですか?
関数の結果が無名変数になるものならあるでしょ
166 :
デフォルトの名無しさん :2013/12/20(金) 16:34:43.57
知らんけど実装としてあっても不思議ではないと思う
>>164 関数型言語ならできるのが当たり前というか
できないと関数型言語ではない
100以上の数の個数が何個あるかを調べるプログラムを作りました #include<stdio.h> main(){ int a[]={98,99,100,101,102,103}; int i,j=0; for(i=0;a[i];i++){ if(a[i]>100)j=j+1; } printf("100以上の数字は%d個です",j); return 0; } としたら「100以上の数字は7個です」 と出るのですがなぜでしょうか
169 :
デフォルトの名無しさん :2013/12/20(金) 16:53:28.28
え? 変数を返す? int foo(){ int bar; bar = 7; return bar; } 例えばこれは変数じゃなくて値を返してるよね? って書いてみたけど 俺が言いたいのはそこじゃない 具体的なコードを出して議論しろ池沼共
170 :
デフォルトの名無しさん :2013/12/20(金) 16:53:57.13
Cは構造体返せなかったんだっけ?
>>167 あれ変数と呼んでいいんですか。
ただのエイリアスだと思ってました。
a[0] = 98 a[1] = 99 a[2] = 100 a[3] = 101 a[4] = 102 a[5] = 103 a[6] = 不明 a[7] = 不明 a[i] が非0 の間ループ回せと書いているが 肝心の終端が設定されてないから たまたま止まっただけ int a[] = { 98,99,100,101,102,103, 0}; にすれば結果はかわるとおもうよ?
174 :
デフォルトの名無しさん :2013/12/20(金) 17:03:39.91
ポインタ返しは変数返しでは? int x(){}; だと確かに変数ではなくて「変数の値」を返していますが ポインタ返しは、「変数の住所」なので変数返しと同値かと。
175 :
デフォルトの名無しさん :2013/12/20(金) 17:14:01.43
if (a[i]>100) で数え上げしてるなら「100を超える数字の数」 「100以上の数字の数」なら if (a[i]>=100) で数え上げる 俺的に
ポインタは無効なアドレスを指してることもある。ヌルポ
この変数はお返しいたします
いえいえ、お引き取り下さい。
倍返しだ!
>>174 ポインタは「変数返し」とは呼べないでしょう。例えば
int *sub(){int a = 5; return &a;}
という関数があったとき、aへのポインタが返り値に渡されるけど
この関数を抜けた時点でaの生存期間が過ぎるので、返されたポインタの参照先は既に変数じゃない
staticなローカル変数への参照を返すなら一応「変数を返す」と言えるかもしれないけど
mallocで確保すればいいじゃん?
>>182 それは「ポインタ返しを使って変数を返す関数を作る」のであって、ポインタ返しの使い方のごく一部でしかないでしょ
「ポインタ返しは変数返し」とは到底呼べない
int *sub() から
戻りが
>>181 なのか
>>182 なのか はたまた static だったのか知る由はない
185 :
デフォルトの名無しさん :2013/12/20(金) 19:03:15.13
static変数とグローバル変数って一緒ですよね? static変数のように関数内に変数があれば分かりにくいのでstatic変数の メリットが分からない。
186 :
デフォルトの名無しさん :2013/12/20(金) 19:12:36.57
static変数とグローバル変数は違うと思いますよ。
static変数は、privateっぽいんだよな。
188 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/20(金) 19:18:02.93
関数の内部にstatic変数があるとき、その関数がどこからも参照されてないときは、その変数は確保されない。
189 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/20(金) 19:20:19.64
static変数は他のコンパイル単位から参照できないという意味でprivate。
190 :
デフォルトの名無しさん :2013/12/20(金) 19:26:11.56
僕の名前は烏賊臭太郎(いかくさたろう)です。よろしくお願いいたします。
>>190 はじめまして。悪臭のするハンドル名でも結構ですよ。
192 :
烏賊臭太郎 :2013/12/20(金) 19:34:12.92
おっぱお、おっぱお、ぽよんぽよん
烏賊臭太郎は死にました
194 :
デフォルトの名無しさん :2013/12/20(金) 22:41:47.44
printfの第一引数に%sなどの変換指定がないのに、第二引数を入れるのは問題ないのですか? ex) printf("hoge", "hello"); // "hoge" また、const変数の中に%sなどの変換指定を入れて、printfの第一引数に入れるのも問題ないのですか? ex) const char *str = "Hello, %s"; printf(str, "World!"); // Hello, World!
196 :
デフォルトの名無しさん :2013/12/20(金) 22:58:03.16
>>170 返せるけど重いから、大体は構造体へのポインタを返す
198 :
デフォルトの名無しさん :2013/12/21(土) 00:22:50.03
オススメの開発環境ってありませんか?
そんなこと聞く馬鹿は、vimとMakefileでシコシコとマスでも書いてた方が幸せでつ
200 :
デフォルトの名無しさん :2013/12/21(土) 16:21:50.67
Visual C++ 2008 Express
201 :
デフォルトの名無しさん :2013/12/21(土) 16:35:22.71
visual studioって機能めちゃくちゃ良いのに無償で提供して大丈夫なのか? 有償だと大規模な開発できるかもしれないけど、無償でも売れるくらいのアプリケーション とかゲーム十分作れるんだけど…
Expressは逆アセンブルできないから中級者以上のプログラミングには全く使えない 動けばそれでOK、デバッグ何それレベルの初心者専用
デバッグとかコード見て自分で直せばいいんじゃないの? 10万行以上のプログラム書いてるの?
#include<stdio.h> main(){ char x[]="abc"; x[0]++; printf("%d\n",x[0]); return 0; } これを実行したら98とでるんですがなぜ98と出るかがわかりません とくにx[0]++;の意味がわかりません 教えてください
97+1=98
aの文字コードが97だから++したら98になるんじゃないだろうか
printf("%d\n",97); だと97が表示されて printf("%c\n",97); だとaが表示される
#include <stdio.h> int main(void) { printf("%d\n",97); printf("%c\n",97); printf("%x\n",97); printf("%o\n",97); printf("%f\n",97); printf("%e\n",97); printf("%s\n",97); return 0; }
211 :
デフォルトの名無しさん :2013/12/21(土) 17:48:49.55
なんだ?
またhoge厨が来てるのか?
>>194 何でこのスレを荒らそうと思ったの?
printf("%h\n", 97); printf("%o\n", 97); printf("%g\n", 97.0); printf("%e\n2, 97.0);
hoge厨みたいな初心者にIDEを勧めるバカの気がしれない
初心者はVSを使うべき なぜならHello,worldまでの障壁が低いから しかも、参考書や資料が多い
初めてVS使ったときはどのテンプレート使えばいいのかわからなくて混乱したわ Win32とかCLRとか色々あってどれを開けばいいのかわからなかった
Express よりもう1ランク下の Visual Studio いちねんせいを作るべき
C言語がC++に勝ってる点ってあるの?
本質的じゃない知識が不要 C++は黒魔術が多すぎる
コンパイラーのバグが少ない プログラムの品質要求が非常に厳しい状況で 生成されるコードの正しさを確認することが可能
C言語のちょっと変わった問題が載っているようなサイトってないですか?
www.hackermeter.com projecteuler.net judge.u-aizu.ac.jp codeiq.jp paiza.jp
>>220 自分が理解できないこと = 黒魔術 (w
自分が理解できること==白魔術?
>>226 リンク先見て
目次の多さだけで、脳の綿アメ機能がはたらいて
すぐ閉じちゃった。
開祖様のお言葉 「C++ はあまりに『熟練者に優しく』なってしまった」
ちょっと知識が古いかもしれないんだけど C++のテンプレートってデバッグする時に 自分のコードとライブラリーのコードがぐちゃぐちゃに 混ざってステップ実行が悪夢みたいにならないの? 昔マイクロソフトがATLってのを出してきたときに 少し使ってみたんだけどライブラリーのコードを ブラックボックスとして扱えなくて、こりゃ品質保証とか 出来ないぞって思った だからSTLとか拒絶反応がある
などと、ステップインとステップアウトの違いもわからないデバッグ初心者がぼやいてます
品質保証はデバッグで行なうものではないので問題無い
品質保証はQAがやるかもしれないけど QAが品質保証して出荷する為にはデバッガーさんに 活躍して貰わなくちゃいけないよね ブラックボックステストやコードカバレッジ、テストスクリプトみたいな 精神安定剤の服用で心が落ち着くならそれで良し
234 :
デフォルトの名無しさん :2013/12/22(日) 19:52:56.81
こいつバグ潰すことを品質保証っていってんの?
特定の人間はバグを埋め込む数が多いので、そいつの書いた部分を重点的にチェックすればより安心
236 :
デフォルトの名無しさん :2013/12/22(日) 20:07:11.42
それを「デバッガーさん」でやるとか? w
Mr.スポック転送してくれ。 ここに知的生命体はいない。
通室不能で転送できません そちらの方がお似合いだと思いますので、そのままそちらにいてください
Visual studioをwin8でうまく動かせません。 Win8にも対応してますか?
対応してるかどうかも調べられないような奴には Visual Studio なんて無駄じゃ...
2013で動かしてみたんですけど。 使い方が書いてあるサイトに書いてある 項目が見当たりません。
サーバーにも寿命があると思うんだけど、30年経過したサーバーを 新品のサーバーに入れ替えるときデータを移さないといけないじゃないですか? 古いサーバーから確実に新しいサーバーにデータを入れ替える方法って存在 するんですか?何か欠落しませんか?
古いサーバーと新しいサーバーを繋ぐプロトコルが無い場合はどうするんでしょう?
30年も先のことなんて考えなくていいよ 死んでるかもしれないんだから
245 :
デフォルトの名無しさん :2013/12/22(日) 21:29:50.85
デバッガーさんが全部解決してくれます
>>242 仮想化、もしくはメーカー提供の通信ソフト
USBメモリ 外付けハードディスク
何をもって30年といってるのかわからんが データさえコピーできれば後は何とでもなる あまり隔たりがあると8インチディスク?なにそれおいしいの? みたいになりかねんけどw
>>226 なんで virtual destructor がないんだよ!
"More"じゃないから
if (0) label: うっ、目が腐りそうだ…
253 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/23(月) 00:05:14.88
お暇な方で結構ですから 2次元配列を動的に確保して、その中に文字列(char*)を セット/リセットするコードを教えて。
>252 無理な最適化オプション付けなくてもちゃんとjmpになるのかねぇ?
>>252 まぁ、C言語のgoto文はアセンブラ関係上、あっても
仕方ないけど、javaのラベル付きcontinue文を見ると
吐き気がする。
*(LONG*) & object = 1; なにをしてんの考えさせられちゃったじゃん 理解するのに5秒以上かかる人はポインタが理解できていないんだろうね
なに、一種のイデオムだから でも union を使うのが本当かな
タイプ数は減っても余計わかりにくくなるunionの罠
>>257 みたいなのにunionは無いんじゃないかなぁ
char4つをintにするような場合は、unionでやるけど
本当にポインタって難しいな ここに居る奴らはみんなわかって無いじゃん お ば か さ ん ↓
262 :
↑ :2013/12/23(月) 13:25:12.08
うんこ
objectのポインタをlong型のポインタにキャストして、objectに1を代入。
そりゃそんだけ考えれば誰だってわかるだろ
ルネサスのレジスタ定義とか、こんなんだな union port0_st { unsigned char BYTE; struct { reserved:7; b0:1; } BIT; }; #define PORT0 (*((union port0_st)0x40000000))
いみがわかりません
本当はこんな感じですよ↓ #define PORT0 (*((volatile union port0_st *)0x40000000))
本当はって。。。 嘘をいう理由がわかりません
るねさすさわったことない俺でも
>>265 はおかしい思たで
C言語をやってから、c++をやったほうが良いでしょうか?
272 :
デフォルトの名無しさん :2013/12/23(月) 23:58:40.44
>>271 何で命令口調なんだよコミュ障
お前にきいてないから黙ってろ
>>271 自分が気に入らない作法を変な癖呼ばわりしないほうがいいよ。
274 :
デフォルトの名無しさん :2013/12/24(火) 00:08:33.59
>>271 int width;
memcpy(&width,"Ultimate Position")
>>270 最終的に何を作りたいかによるけど、
入門には「ふつうのLinuxプログラミング」が一番に分かりやすかったよ
>>228 1つ1つのページの内容は少ないし、cでオレオレOOPで実装されたコード読むより遥かに楽
277 :
デフォルトの名無しさん :2013/12/24(火) 00:34:01.60
>>273 どうもすいませんでした
ちょうど不採用の通知が来てイライラしていたのです
今後は充分に気を付けて書き込みます
教えてください Cでは何で"for"がループ文を示すことになったのでしょうか? 他の言語ではwhileやuntil、foreachといったループ文であることが わかる語を使っているので疑問に思った次第です
>>279 C言語にもそれらのループはあるけど・・・
>>279 basic とか for i = 0 to 10 step 2; next i;
昔は1バイトが貴重だったから5バイトとか7バイトの キーワドは使えなかったんよ
283 :
デフォルトの名無しさん :2013/12/24(火) 02:20:23.28
条件分岐で3種類の動作に分かれるようなコードが質問させてくださいあったとして、 その中の2種類がほとんど同じ処理の場合の最適なコードの書き方はどのようになりますでしょうか ■今はこう書いてます if ( 条件A ){ ************************************* ** 共通の10〜20行の処理 ************************************* 共通ではない処理 }else if ( 条件B ){ ************************************* ** 共通の10〜20行の処理 ************************************* 共通ではない処理 }else if ( 条件C ){ 共通ではない処理 } ■このほうがいいのでしょうか if ( ( 条件A )||( 条件B ) ){ ************************************* ** 共通の10〜20行の処理 ************************************* if ( 条件A ){ 共通ではない処理 }else if ( 条件B ){ 共通ではない処理 } }else if ( 条件C ){ 共通ではない処理 }
>>280 foreachやuntilはC言語にあるのでしょうか?
foreachをマクロで実現している環境はあるようですが
>>281 BASICのfor文を拝見してCのfor文は
for A while Bなのかもしれないと思いました
なんとなくスッキリしました
ありがとうございます
>>283 上にして共通処理を関数化かな。
下はif文のネストのしかたが変。
処理コストは 上 < 下 < 関数化
なんだけど、普通は問題にならないレベルだろ。
>>283 Cじゃなかった場合に共通部分を実行してからAかBの判定じゃだめなの?
>>284 c言語にwhileはあるだろ。無いものを挙げてどうする。
あとc言語のforはBCPL由来と思う
そのもとはfortlanのdoループ
>>283 基本的に同じことを複数書かないほうがいい
なので、下の方がいい。
自分ならこう書くかな
if(A || B) {
共通処理
}
if(A) {
共通ではない処理
} else if (B) {
共通ではない処理
} else if (C) {
共通ではない処理
}
最適化しすぎると後で改変する必要が出た場合に逆に面倒になる場合も
if (A) { 共通処理AB(); 非共通処理A(); } else if (B) { 共通処理AB(); 非共通処理B(); } else if (C) { 非共通処理C(); } else { // assertかなんかしとけよ。 }
20年前のPCで要素100万個のデータをクイックソートしたら実行時間は どのくらいかかりますか?今だと1秒ですが。
試せば?
20年前のPCもう持ってないので…
20年前のPCは100万個のデータなんてオンメモリで処理できないんじゃないのって おもってググったら1993年のPCはもうメガ単位でメモリをもってたんだな。 macとかメモリ8Mか。
でも20年前でもゲームとかあったしそれなりに高速な処理できたんじゃないのでしょうか?
例えばストリートファイター、キャラクターを自由自在に動かすには 相当なメモリとCPUの性能が必要なはず、25年前でも相当PCは進化していたのでは?
そのゲームに特化しているんだからZ80で十分
X68000でスト2ダッシュが出てたかと
300 :
デフォルトの名無しさん :2013/12/24(火) 20:19:26.97
たうんずHRがちょうど20年ほど前で4MのSIMM2枚増設してたわ
>>292 100万個ということは当然要素も32bitを想定してるよな…
メモリ4MB…
Win95以前に32bitプログラミングしてた奴がいったい何人いると…
16bitプログラミングならそもそも比較する意味が…
Win32s ...
x68とかTOWNSとか あとGCCは昔からintが32bitでうらやましかった
そもそも何が知りたいのか 友達との世間話程度の面白話か 学校の課題か何かか
ムーアの法則によると約10000倍だから約1/8日
>>301 当時はMS-DOS上で動かす djgpp go32 っていうのがあったよ
farって正確にはどんな環境だと不要なんでしょうか? 必要な環境は想像できるんですが、絶対に不要な環境の正確な条件がわかりません。 ポインタのサイズでメモリ空間をすべて表せる場合? ジャンプ命令でメモリ空間すべてに飛べる場合? CPUの命令やレジスタのサイズとメモリ空間を表現するbit数が同じ場合?
>>301 汎用機とかワークステーションとか 30年前から 32bit 使ってた奴もいるだろ。
PC に限定しても BSD/386 とかの Unix も動いていたんだし。
>>307 > ポインタのサイズでメモリ空間をすべて表せる場合?
そんなことより知り合いのスーパーハカーに頼んで
>>292 を救ってもらうべき
312 :
デフォルトの名無しさん :2013/12/25(水) 12:46:19.75
>>307 farとは何か、調べれば答えは簡単に出るよ
下3行から察するにセグメントと分岐命令のレンジを混同しているようだし
即値とリテラルについてもかなりあやふやだろ
313 :
デフォルトの名無しさん :2013/12/25(水) 20:25:23.99
二次元配列を引数にするとき、宣言では int x[10][10];なのに 関数の宣言で二次元配列を受け取るときは int returnx(int x[]) { int i; return i; } と1次配列と区別がつかないのは何故ですか? 後、二次元配列の添え字を返す関数ってどうやって作ればいいですか? int returnx(int x[],int i) { return i } returnx(x[3],3); みたいな方法以外でどうやればいいですか?
314 :
313 :2013/12/25(水) 20:38:42.79
二次配列までは int x(int x[]) { } というポインタを使わない形で書けますが、3次元以上になると ポインタ以外の方法で引数に取る事は無理ですか? int x(int x[][]) { }
コンピュータないでは未だに1次元の直線状にアドレスが振られているだけです。 多次元の配列は作れません。
>>314 C言語では無理だから
別の言語をつかえばいいよ
317 :
313 :2013/12/25(水) 20:58:07.27
>>315 「*」この記号を使わない方法は3次元以上では無理ですか?
>>313-314 >関数の宣言で二次元配列を受け取るときは1次配列と区別がつかないのは何故ですか?
int x[] = int *x
だから。なお、int[10][10]を渡す場合、受け取る関数側ではint[][10]とするのが一般的ではないかと思います。一次元配列と同じ方法で渡すとコンパイラが警告を出しませんか?
>後、二次元配列の添え字を返す関数ってどうやって作ればいいですか?
何次元かが決まってるなら構造体を返せばいいでしょう
>二次配列まではポインタを使わない形で書けますが
改めて言いますが、
int x[] = int *x
です。きっちりポインタを使っています
#define X 10 #define Y 20 int x(int x[][Y][X]);
320 :
デフォルトの名無しさん :2013/12/25(水) 21:03:36.57
釣り針でかすぎw
321 :
313 :2013/12/25(水) 21:06:01.87
>>318 int x[10][10];
returnx(x[10]);
エラーでませんよ?
>構造体で返す
?????
サイズ固定でいいなら typedef int Array[10][10][10]; 普通配列のポインタで渡すけどな。 void test(Array *a)
323 :
313 :2013/12/25(水) 21:11:13.38
>>319 それめっちゃ便利ですね。
4次元も同じ要領ですか?
#include<stdio.h>
int y(int x[][10][10])
{
return x[][3][3];
}
int main(void)
{
int x[10][10][10];
x[3][3][3]=100;
printf("%d\n",y(x[][10][10]));
}
codepadでやったところエラーでした。
どうすればいいですか?
>>321 >returnx(x[10]);
x[10]は一次元配列です
>>構造体で返す
>?????
typedef struct subscr{
int one;
int two;
int three;
}Subscr;
Subscr sub(int x[][5][6]){
Subscr s;
/*3重ループでx[l][m][n]=1であるような添え字の組を探す処理*/
s.one = l;
s.two = m;
s.three = n;
return s;
}
int main(void){
int x[4][5][6]={0};
x[1][2][3] = 1;
Subscr s = sub(x);
}
325 :
313 :2013/12/25(水) 21:19:13.35
#include<stdio.h> int y(int x[][10][10]) { return x[3][3][3]; } int main(void) { int x[10][10][10]; x[3][3][3]=100; } これだけならエラーでません、渡し方が間違ってるんでしょうか。 どうやって渡せばいいでしょう。
326 :
313 :2013/12/25(水) 21:21:50.66
printf("%d\n",y(x[][][])); ダメ printf("%d\n",y(x[][10][10]));ダメ printf("%d\n",y(x[]));ダメ printf("%d\n",y(x));成功 何故???
327 :
313 :2013/12/25(水) 21:25:15.75
>>324 return(x[10])ってのは
x[10]は配列の要素ではなくて、配列そのものなんですね。
だからx[10]という引数は可能なんですか。
添え字を探すのはやはり探す処理が必要、もしくは添え字を引数で
渡すしかないんですね。
ポインタと配列に関する箇所だけでも 入門書を読んでから出直したほうが良いような 引数で値を渡す記述で 326 の上3つを書くようだとね
>>327 >x[10]は配列の要素ではなくて、配列そのものなんですね。
ちがう。変数xを"int x[10][10];"と宣言した時、
"x"はint [10][10]型の変数
"x[n]"はint [10]型の変数
"x[m][n]"はint型の変数
になる。
だから
>returnx(x[10])
と書いたら渡してるのはint[10]型、つまり一次元配列。
二次元配列を渡したいなら
returnx(x)
でないとだめ
330 :
313 :2013/12/25(水) 21:36:05.18
>>329 x[10]が配列の一つ一つの要素ではなくて、x[10]という名前の配列という意味で
言ったのですよ。
return(x)は配列そのものを渡してるから、全ての次元を弄れるんですね。
return(x[10])だとx[10]の子分、x[10][3]とかしか返せないんですね。
なるほど、良くわかりました。
ただ何故 int x(x[][10][10])のような書き方をするんでしょうか。
mainから呼び出す形と同じ型にすればいいのに int x(int x)じゃだめなのか
>>330 >return(x)は配列そのものを渡してるから、全ての次元を弄れるんですね。
>return(x[10])だとx[10]の子分、x[10][3]とかしか返せないんですね。
その認識ならあってる。
>何故int x(x[][10][10])のような書き方をするんでしょうか。
何度も言うけど、"int x[] = int *x"だ。
C言語では、配列を渡すのは「配列の先頭へのポインタを渡す」という形で実現してる。
つまり一次元配列を引数に持つ時は本来なら
int func(int* x)
と書くのが正しい。だけど、それだと渡されたポインタが「ただのポインタ」なのか「配列の先頭へのポインタ」なのか分かりづらいので、
int func(int x[])
と書くことで、「引数xは配列ですよ」と明示できるようになってる(プログラマにとって分かりやすいというだけで、内部的な処理はどちらも同じ)
>int x(int x)じゃだめなのか
「引数に渡す」という動作は、代入とほぼ同じ。
int x[10][10] = {0};
int y = 5;
と宣言した時、
y=x;
という代入が成立しないのは直感的にわかるでしょ
あと、ずっとやってるけど
int x[n]
と書いたとき、xの要素はx[n-1]までだからな。int x[10][10]ならx[9][9]までしかアクセスしちゃだめよ
332 :
デフォルトの名無しさん :2013/12/25(水) 21:56:15.21
初歩の初歩かもしれないんですけど戻り値とはなんですか?本を読んでも、ネットで調べてもわかりません。誰かわかる人ハンバーガーとかにでも例えて教えてください。
注文したらハンバーガーが出る ハンバーガーが戻り値 そういうことだ
334 :
313 :2013/12/25(水) 22:01:08.76
>>331 なるほど良くわかりました、でも最初からポインタで配列を宣言する
事は無理ですよね?
335 :
デフォルトの名無しさん :2013/12/25(水) 22:01:09.51
336 :
デフォルトの名無しさん :2013/12/25(水) 22:03:39.59
>>333 間違えたごめんなさい。
return 0;の時、何が0に当たるのでしょうか?
スマイル
338 :
デフォルトの名無しさん :2013/12/25(水) 22:12:47.03
>>337 何の意味もないってことですね。よくわかりました。ありがとう。
>>334 >最初からポインタで配列を宣言する事は無理ですよね。
もちろんできない。malloc関数やcalloc関数を使えば実現できるけどな
あと多次元配列を関数の引数にするときは、「1番目の要素だけ省略し、2番目以降は元通りに書く」。例えば
int x[2][3][4][5]
というような4次元配列を引数に持つ関数funcを定義するときは
void func(int x[][3][4][5])
と書く。
>>319 みたいにひっくり返すなよ
340 :
313 :2013/12/25(水) 22:24:21.79
ひっくり返すなとは?
341 :
デフォルトの名無しさん :2013/12/25(水) 22:26:14.89
マクドナルドから ダブルてりやきマックバーガーと ダブルフィレオフィッシュが出たぞ
>>340 #define X 10
#define Y 20
#define Z 30
としたら、普通は
int x[X][Y][Z]
と宣言するだろ?それだとこのxを引数に取る関数は
void func(int x[][Y][Z])
と書くのが正しいってことだ。まあ
>>319 は
int x[Z][Y][X]
であるような配列を引数に受け取りたかったのかもしれないが
>>342 C言語に慣れた人の普通ってのは
x[Z][Y][X]
の順だべ
まあ普通とかみんなとか言い出すやつは、普通じゃないことのほうが多いけどなwww
344 :
313 :2013/12/25(水) 22:41:09.23
>>342 次元の順番と、アルファベットの順番は一致しといたほうがいいんですね
ちなみに次元の順番はビットマップの行、列の順番と対応してるんですが
紙とか画像とかって横×高さで逆ってのが一般的ですよね、何故高さ×横
にしないのか?と思います。
>>343 そうか、言われてみればそうかもしれん。すまんかった
>>339 あほー x,y,zの3次元というのは
0,0,0
1,0,0
2,0,0
...
0,1,0
...
と並んでいる事が期待されている
従って
>>319 が正しい
>>337 関数の型で決まる。
int y(...)なら 0 というint型の数値。
349 :
デフォルトの名無しさん :2013/12/25(水) 23:12:30.38
マックの最強に旨い組み合わせを教えてやろう。 てりやきマックバーガー ポテトL ホットコーヒー チキンナゲット この食べ合わせがめちゃくちゃ旨い。 食ったことのない奴は試してみろ。
約 467,000 件 (0.29 秒) "マックの最強に旨い組み合わせを教えてやろう。"との一致はありません。
チキンフィレオとチキンクリスプ両方食べてみたけど違いが分からん 安いほうでいい
352 :
デフォルトの名無しさん :2013/12/25(水) 23:33:08.00
それはお前が普段旨いものを食ってないだけ。 舌が肥えていればチキンフィレオのほうが旨く感じる。
>>334 配列を宣言したときは、その分のメモリーが確保されるが、
ポインタ変数を宣言しても、アドレスを表現できる分の
メモリーしか確保されない。
何らかの方法で必要なメモリ領域を確保して、先頭アドレスを
ポインター変数に入れてやれば良い。
その後は、配列と同様に扱える。
354 :
313 :2013/12/26(木) 00:01:33.95
>>353 理かいしました。
でも[]という記号を使わずに、3次元配列とか無理ですよね?
もしかしてできるとか?
Cやめたほうがよさげ
Cのソースの中でc++って使えるんですか? c++を記述してる箇所があるんですが・・・
それはcのソースではなくc++のソースです 次の方どうぞ
359 :
デフォルトの名無しさん :2013/12/26(木) 00:33:12.30
C言語検定試験って受けといたほうがいいかな? 1級受けたいんだけど、目指してる人いますか?
ゴミ試験 試験問題はデタラメなので勉強する価値はない、持っていてもなんの役にも立たない、受ける意味は全くない
361 :
デフォルトの名無しさん :2013/12/26(木) 01:18:32.15
結構難しいし面白い試験だよ、全くないってことは有りえないだろ
2級ってどれくらいの難しさ? 受けようと思ってるんだけど勉強方法がよくわからん
>>361 ない
その試験自体の存在が知られておらず、したがって誰にも評価されない
調べればすぐ分かることだよなあ
>>363 ゲストコメントの無知ぶりがひどいな
これぐらい無知でないと検定取れないのかもしれない
会社の査定指針で資格ならナンでもって事で資格詐欺っぽいの取らされる場合が結構あるからね 実績のない若手とか主戦場失ったVBマとかが
うちの会社の悪口言うなよ
IPAの何とかスペシャリストの方がハッタリ利くよ
それを取れない池沼対象の資格だろ
イソプロピルアルコール?
373 :
デフォルトの名無しさん :2013/12/26(木) 13:48:12.78
マックから古き良き時代のアメリカをイメージしたハンバーガーが出るらしいぞ
先住民にとってもいい時代なのかね
シェアポテトってどのくらいの量なの?
C言語をちゃんと覚えてからJAVAとかに手を出したいと思ってるんだけど どれくらいのレベルならC言語できるって言っていいの?
>>376 Cコンパイラを作れるようになったら「Cができる」って言っていいってのが業界の共通認識。
yaccとか使わないでパーサージェネレーターの段階から作れないとダメだからな。
他人の突っ込んだバグを直せるようになったらおk
>>376 自分でその判断ができるほどのレベルだったら
C++へ進むつもりがなければテキトーでいい その場合「ぼくはCができます」と人前で言ってはならない
381 :
デフォルトの名無しさん :2013/12/26(木) 14:54:54.74
makeでファイルをコンパイルしたいのですが上手くいきません。 main.c /*始まり*/ #include<stdio.h> int main(void) {int i,j,k;scanf("%d %d %d",&i,&j,&k);printf("%\n",max(i,j,k));} /*終わり*/ sub.c /*始まり*/ #include<stdio.h> int main(void) int sub(int i,int j,int k){int max;max=i;if(max<j)max=j; if(max<k)max=k; return k;} {return 0;} /*終わり*/ makefile /*始まり*/ #include<stdio.h> main.c sub.c /*終わり*/
382 :
デフォルトの名無しさん :2013/12/26(木) 14:57:08.57
端末で実行 /*始まり*/ ]make makefile ]error どうしたらいいでしょうか?
383 :
デフォルトの名無しさん :2013/12/26(木) 15:01:23.22
根本的に間違ってると思うので、どこが間違ってるか指摘して頂くと嬉しいです。
>>381 makefileは
cc -c main.c
cc -c sub.c
cc main.o sub.o
みたいな感じじゃないの。
(コンパイルオプションは忘れたから適当)
A : B C A と B の時刻を比較して B が新しいようなら C を実行する 拡張子決め打ちの推測規則の書き方は。。。 どうだっけか? .c.o : cc -c <ここの引数 .c 側の名前を置き換えるようなのが怪しい>
makefileの書き方なんかCをひととおり使えるようになってからで十分と思うのだが
prog: main.c sub.c cc -o prog main.c sub.c
#ifdef XXX と #if defined(XXX) って同じ意味ですか?
389 :
デフォルトの名無しさん :2013/12/26(木) 16:33:59.42
はい
規格で言えばhogeからだよ ってなかっこいい答えが欲しいッス
>>390 hogeというのが規格とどう関係するのか判りませんが、
>388の質問に関してならば少なくともc89では同じ意味として書かれているはずです。
>>391 そんな事言わずに
じじいのクダ巻きが聞きたいッス
>>392 はhoge荒らしの相手をしてスレを荒らそうとしてるから以後スルーで
395 :
デフォルトの名無しさん :2013/12/26(木) 19:55:12.34
Cのコンパイラ作っていますが、実行文の格納形式はスタックのほうがいいですか? それともキューがいいですか?
計算は逆ポーランドであることはインタプリタでも変わらないと思いますが 文法の生成規則は何がお勧めですか? 文脈自由文法でしょうか?
コンパイラ自体せいぜい1000行前後、100キロバイトくらいなのに 何故軽量なcygwinですら結構容量あるんだろう?
cygwinはコンパイラじゃないからね。 勿論、ビルド環境だけでもないし。
C言語検定1級が割と難しい件、受かるか自身無い。
>>376 JAVA や C++からで良いと思う。
組み込み屋さんや、ドライバー屋さんやるんで無ければ
Cは必要ないし。
>>400 Cってもう需要ないのかな・・・
javaやhtmlやったほうがいいのかね
html…?
Cと何かスクリプト言語でいいよ Javaは…まあ趣味だろうね。ニッチな
Javaはめっちゃ使われてる。 サーバーサイドでは、PHPとJavaがツートップなんじゃないの。
Javaはやっておいて損はない。 C++もいいかもしれない。
javaくらい難しい言語になると体系的に学べるサイトが一気に減る。 マルチスレッドとかむずすぎワロタ
いくつかの32bit符号無し整数の変数を使った演算の結果がとても大きい値になるため 演算結果を上位32bitと下位32bitの2つの数に分けたいのですが、どういうやり方がありますか?
>>407 long longとか64bitの型はないの?
>>376 標準関数の qsort() を、とりあえず実装できたら自分の中だけでなら納得していいと思う
>>377 それはちと厳しい
>>380 extern は要らない子っ!
>>410 a.cとb.cで使用したい変数がある場合はどうするんですか?
>>400-401 あの〜、C++ は今着目している領域がスタックにあるのかそれともヒープなのかをきっちし意識しないと、とてもとても
java の「参照」とかいいかげんだし
>>376 追加、malloc()/free() を自在に使えるのも大事だね
>>412 malloc()/free()のなにが難しいんだ?
free(malloc(1));
deOK
その1バイトが確保できなかったらと思うと安心してリリースできないコードだな
free(NULL);
free(NULL) はセーフ fclose(NULL) はアウト
>>417 × free(NULL) はセーフ
⚪︎free(NULL) はセーフな場合もある
>>401 今時だったらC#やるのがいいかも。
標準ライブラリがかなり充実していてアプリが簡単に作れるから。
それから、CとかC++とか他の言語を勉強するのがいいと思う。
420 :
デフォルトの名無しさん :2013/12/27(金) 10:52:01.81
C#は具体的に何が楽なんですか、グラフィック関係? 例えば、円の周りを円が回るみたいなプログラムはどんなコードになりますか?
RoundCircle(Circle)
422 :
デフォルトの名無しさん :2013/12/27(金) 11:15:36.94
C#は.NET Framworkで動くアプリっていうけど、ネットに繋がってないと 遊べないゲームを作るってことですか?良くわからないので教えて下さい。
424 :
デフォルトの名無しさん :2013/12/27(金) 11:49:41.68
Cは開発効率は悪いが、低級言語に近いから痒いところに手が届く。 とりあえずCが使えれば作れないものはほとんどない。 それにCは割と難しいほうに入るらしいから、Cが使えれば他の言語の習得も容易。 CやってからJS、Perl、PHP辺りをやると簡単すぎて失禁しそうになる。 プログラミング言語ではないが、HTMLも使えるようになっておくと何かと便利。
てか、他の言語を書くにもCは必須だしね
> とりあえずCが使えれば作れないものはほとんどない。 ドライバや組み込みなど低レイヤに関してはその通りだが、 業務アプリケーションはむしろCでは作れない。 フレームワークが存在しないから。
× 簡単すぎて ○ 簡単に実現できて
諸々の事情含め "Cだけでは" ってのが正確じゃないかな
無人島で生き延びるためには非常に有効だが 文明人にはその価値がわからない
Cは難しいというより、そのコードは俺が数十年前にもっと良いものを書いた というものが多過ぎるのが問題なんじゃないの?w
>>424 >Cが使えれば作れないものはほとんどない。
それはごく一部の方だけです。
カーネルの開発者達がそのレベルかもしれません。
大抵の人はなにも作れません。所詮お遊び程度のアプリ
>>426 フレワがないと何もできないんだろ
そしてそのフレワはCで作るんだろ
フレワが膨大な量だから、ゼロからフレワは作らんわな。 既存のフレワの上位レイヤーとして自作フレワを作るってのはある。
435 :
デフォルトの名無しさん :2013/12/27(金) 12:40:18.30
有名なフレワって何があるの? ジャンルを問わず知名度のあるフレワって何があるの?
ライブラリとフレームワークとAPIとミドルウェアの違いが分からないんだけど 全部一緒ですか?
437 :
デフォルトの名無しさん :2013/12/27(金) 12:45:20.31
>>436 フレワは何らかの機能を持った骨組み
その機能にアクセスするためのインタフェがAPI
APIはどんな形で提供してもいいけど、提供するときの形態の一つとしてライブラリがある
ミドウェは?
>>437 DirectXはライブラリ?フレームワーク?
440 :
デフォルトの名無しさん :2013/12/27(金) 13:43:16.67
ファームウェアをファ〜と略そう(提案
実体はAPIなんですね。ライブラリは提供形態ですね。
ライブラは提供形態
ライブラってドラクエの技じゃんwwww
FFじゃね?
使い方 ライブラリ・・・ライブラリが関数を公開しているので、自分のプログラムからそれを使う フレームワーク・・・プログラムの流れは実装済みで、決まった条件でフック関数が呼び出されるので、そのフックの中身を実装する
>>426 >>432 これは痛い。。
適材適所の言語を使うのは勿論だが、Cでも手間がかかるだけで
作れないことはないだろう。
Cの良いところは低水準だがソースレベルの互換性が高いところだな。
彼らは可能性の話はしてないでしょ
int b[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; これに対して **(b+2) これってなんですか?
7だ
>>448 プロの仕事は手間をかけちゃいかんのですよ
納期が存在しないアマチュアならアセンブリなりC言語なり好きなもの使えばいいだろうけど
b[2][0]
>>448 だったら、OS作ってみろよ
作れたら、「Cならなんでも作れる」と胸張っていってよし
100m9台で走れるよって言ってるようなもの
走れる人がいるってだけだろ
>>454 実用的なOSは無理だが最低限のOSなら作れちゃうだろ
例えミスっちゃったパターンだな
457 :
デフォルトの名無しさん :2013/12/27(金) 17:31:13.63
難易度でどうこう言っちゃってる時点で失笑しかできねえんだが
b[2][0]
>>458 b(配列の先頭アドレス)のアドレスを進めた要素の値
いろいろやってみ
int a = **(b+2);
printf("%d¥n", a);
int c = *(*(b+1)+2);
printf("%d¥n", c);
int d = *(b[0]+2);
printf("%d¥n", d);
>>458 int a[3]={0,1,2};
a[2] は *(a+2) と全く同じ意味(いわゆるシンタックスシュガー)
int b[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
同じように考えると
**(b+2)
= *(*(b+2))
= *(*(b+2)+0)
= *(b[2]+0)
= b[2][0]
= 7
462 :
デフォルトの名無しさん :2013/12/27(金) 20:21:27.43
ところが a[3] は *(a+3) じゃないんだよなー、これが
はい? int a[4] = {1,2,3,4}; printf("%d¥n", a[3]); printf("%d¥n", *(a+3));
int a[3]; a[3]; *(a+3); これどうなるの?
どうもならん
どうもならんかった
467 :
デフォルトの名無しさん :2013/12/27(金) 21:11:35.03
#include <stdio.h> int main () { int a[3]; printf("%p\n", (a)); printf("%p\n", (a+1)); printf("%p\n", (a+2)); printf("%p\n", (a+3)); } 0x7fffa9383ac4 0x7fffa9383ac8 0x7fffa9383acc 0x7fffa9383ad0
>>418 ,
>>430 ISO/IEC 9899:1999 7.20.3.2.1
void free(void *ptr);
ISO/IEC 9899:1999 7.20.3.2.1.2
If ptr is a null pointer, no action occurs.
△free(NULL) はセーフな場合もある
○ANSI 準拠ならfree(NULL) は問題なし
マジかひどいな 圧力団体に配慮したのかね
規格の美しさを鑑賞し世に広める美術館を作れ
オプションで対処できるだろうに
ごく一部のおかしな人の為に NULLチェックとかあほらしすぎる
>>469 英語の規格書読めるとかお前意外とすごい奴だったんだな
俺なんて規格書読むこと自体でじんましん出るのに英語なんて無理だ
非互換の指摘はありがたいね
>>470 未定義な部分を勝手に決め付けてひどいとか言い出すな
いまどきのOSのmalloc()はNULLを返さないから、NULLチェックとかいらんだろ
>>476 ん?
規格化されていたものが未定義になったってことでしょ?
日本語大丈夫か?
>>477 え?
確保時にすらNULLチェックしないの?
ここで話してるのは開放時のNULLチェックの話デスヨ
つーかよく見たら If ptr is a null pointer, no action occurs. だから 同じじゃん NULLならノーアクション
>>480 確保できない場合は、隣のPCのメモリを借りてくるOSとかw
>>482 とりあえずアドレスを返して、実際にアクセスされたときにメモリがなかったら死ぬOS
>>483 それだと、
「最小限の作業領域を予め配列で確保しておいて、
mallocで確保できない時は最小限の作業領域で処理する」
なんてことはできなくなるね。
ま、なんにせよ ◆QZaw55cn4c さん待ちですね
>>484 まあメモリが足らなくなったら潔く死ぬしかないね
487 :
デフォルトの名無しさん :2013/12/28(土) 13:16:01.21
>>469 そういう誰でも知ってることを得意そうにレスすんな
誰も知らなかった ls -lでプログラムのメモリサイズを調べる方法とかレスしてりゃ良いんだよ ド底辺ゴミクズ野郎
メモリーが足りなくなったら謝罪と賠償を要求する。
プログラムのメモリサイズ なにそれ?
敢えて言おう。ポインタ演算なんぞ役に立たないと 学ぶだけ時間の浪費である。
>>487 リストラにあったプロマネかしら?ざまぁwww
>>490 実際に使うかどうかは別として、知識として持ってるのは大切だと思うが
493 :
デフォルトの名無しさん :2013/12/28(土) 14:14:16.27
ソフトウェアやハードウェア、マルウェアというけど、言語ウェアと言わないのは何故でしょうか? Cウェアとかいう言葉聞いたことないですよね。
え
495 :
デフォルトの名無しさん :2013/12/28(土) 14:36:21.04
身代金の支払いには50%の贈与税が掛かりますが、取り立てられた人はいますか? また、身代金を受け取ると所得税がかかりますが、支払った人はいますか?
何の言語で作られてるかっていうのは重要な要素じゃないからだろ
>>490 学ぶ必要なんかないだろ、算数は義務教育だし
#include<stdio.h> int main(void) { printf("%d\n",(((((((((3+4)))))*(((((5))))-(((((3))))))))))); } これがエラーが出ないのは何故ですか? #include<stdio.h> int main(void) { printf("%d\n",3*{1+2}); } こっちはエラーが出るのは何故ですか?
>>499 中カッコは複合型の初期化子やブロックとして使うものであって、式の結合を表すものではないから
上は普通に式だから
>>495 あ、ひょっとして狂言誘拐って節税に使えるんだな
保釈金の間違いでした。すいません
Cで書いたプログラムを1行ずつjavaの文法に変えてクラスファイルにするという アプリをCで作った場合、このアプリはコンパイラという事にはならないですか?
>>504 高級言語から高級言語への返還はトランスレーターかな。
初期のC++コンパイラはCへのトランスレーターだったから、コンパイラといっても間違いではないかもしれない。
そんなことを出来るような人がこの日本にいるとは思えんが・・・
そんなことできるの?ポインタとかどうすんの
508 :
デフォルトの名無しさん :2013/12/29(日) 01:16:19.35
上っ面だけJavaで、実装全部JNIってのなら、そうでもなさそう
>>507 ポインタ=巨大なグローバルchar配列のインデックス
510 :
デフォルトの名無しさん :2013/12/29(日) 01:38:26.64
中学の内からプログラミングの賞とか取ってる子いるけど、そういう子って 将来プログラマーとして大成しまくるんだろうな、中学でプログラミングや ろうって思わないから、どうして俺は大学入ってからやっとやり出したんだ 悔やんでも悔やみきれない。
そんなことで悔やむなw 俺は40過ぎてからCを始めたが、まったく悔やんでない。
>>511 どーせ、簡単なもんしか書かないんだろ
見る世界が全然、違う
難しいもんって、例えばどんなの?
シミュレーティドエボリューション等のメタアルゴリズム等
俺は中学の頃からやってたけど一度挫折した 本格的にやりはじめたのは大学から
516 :
デフォルトの名無しさん :2013/12/29(日) 02:27:46.67
リファレンスボード用に、Linuxカーネルの改造とか
517 :
デフォルトの名無しさん :2013/12/29(日) 02:41:30.30
>>510 世の中そんなに単純じゃない
仕事で使えるレベルの英語ができなければ日本で働くことになるが、日本のプログラマはITドカタ
納期までにバグなくコーディングが終わればよし、終わらなければ怒られる
雇われドカタが嫌なら自分で起業でもするか?
起業するならそれなりのアイデアとコネが必要
アイデアのない凄腕プログラマと、大学出てからプログラムやり始めた革新的なアイデアの湧いてくる奴を比べれば
どっちが大成するか分かるよな
Windows作った人も、Google作った人も、Facebook作った人も、Twitter作った人も、
プログラミングコンテストで賞を取ったという話は聞いたことがない
まぁそういうことだから大成したければアンテナ広げて色々考えろ
Windows作った人か・・・
519 :
デフォルトの名無しさん :2013/12/29(日) 02:46:47.85
派遣は人の生き方ができないからプログラマはやめといたほうが良いよ。
521 :
デフォルトの名無しさん :2013/12/29(日) 02:52:04.69
>プログラマーとして大成しまくる この大成ってどういう状態か想像つかない。 大手ゲーム会社のチーフプログラマーとか?
522 :
デフォルトの名無しさん :2013/12/29(日) 02:53:21.70
江添さんみたいに言語の文法を極めることじゃない?
おれおれフレワを作ること
>>522 文法だけできても意味が無い
あの手の連中はちっちゃなサンプルプログラムはかけるが
大規模なアプリケ−ションは作れない
525 :
デフォルトの名無しさん :2013/12/29(日) 03:06:15.40
派遣は大きな応用を作るけど、派遣は人間関係悪いからやめたほうが良いよ。 出来るだけいい会社に入ったほうが良いのは、そこにいる人間が優秀で 人間関係もいいからだよ。
>>521 この業界が糞だと早めに悟り別の業界に進み、プログラミングは趣味にw
常駐先企業の人件費抑制に利用されただけの人生だったな残念
文法覚えてコピペコーダーになるだけなら大して労力かからんだろ Fラン文系私大卒でそういう就職した知り合いいるし
プログラマーは金儲けの道具 壊れたら交換すりゃいいだけ
>>517 ビルゲイツなどは起業家
テリー伊藤などはアイデアマン
どちらも、企業が欲しがる自立・提案型、
プロデューサー型人間
自分でアイデアを出して、実行してもうける人
企業がいらないのは、言われたことだけやる、
考えない、依存型、スタッフ型人間
とにかく企業は、自分らをもうけさせる人間が欲しいのよ
それが出来ないから、奴隷階級から搾取しよる
人材の採用がおかしい。まともな人をとってない
ザッカーバーグも起業家だしラリーペイジも起業家 書いてみて思ったけどそりゃ創設者なら起業家だわな つまり成功するには起業するしかない
532 :
デフォルトの名無しさん :2013/12/29(日) 04:20:12.33
と派遣が申しております。
533 :
デフォルトの名無しさん :2013/12/29(日) 04:39:44.20
プログラミング始めて10年以上経つけどBCCとGCCしか使ったことがない
for文のカウント変数を後置か前置かでインクリメントするのって好みなんですか? for (i=0; i<max; ++i) とか for (i=0; i<max; i++) とか
535 :
デフォルトの名無しさん :2013/12/29(日) 06:31:30.92
好みですが後置を薦める人が多いです。
Cなら好み
好みなんですね ありがとうおはようございます
538 :
デフォルトの名無しさん :2013/12/29(日) 07:44:19.15
>>530 スタッフ型は必要だよ、練度の高い現業がいなければ企業は回らない
プロデューサー型でありさえすれば良いわけでもなく、反乱分子は毒饅頭
おまえみたいのこそ、お偉いさんのスピーチを消化しきれず
言われたことを額面どおりオウム返ししてるだけの無能だろうが
539 :
デフォルトの名無しさん :2013/12/29(日) 08:18:11.91
プログラミングが必要なくなる時代って来ますか? そんな時代がきたら怖いんですけど。
>>540 どんな形やレベルであれ、プログラミングという要素はなくならない、将来的には EXCEL の VBA/VB6 みたいになるかもしれないが
ちっぽけな技術で差別化が図れなくなる時代のことではないか
>>534 C++ の後置はコストが高いのだが、C だったら別に
そのくらい最強オプティマイザ様がなんとかしてくれるだろ してくれないの?
>>545 別々の意味があるから勝手に最適化されても困る
>>544 そういえばC++ のコードでよく見かけるような・・・
でも何だってそんなことに・・・言語名は後置なのに・・・
549 :
デフォルトの名無しさん :2013/12/29(日) 12:18:49.74
>>545 そーゆーことは聞かないでやってみれ
実験できない人は黙ってなきゃいけないことだよ
実際にやって見なきゃわからない奴はだまっとけよ。 やれば誰でもわかるだろw
返り値を捨てる後置++という黒魔術を追加すりゃ良いだけ
int c; for (c = 0; c < 10000000000; c++) {} printf("%d",c);
カウンタで c は使わない 大半の int 4bit 環境ではあふれる {} は ; でいい
>>309 ,310
だいたい認識はあっていたようでした
ありがとうございます
>>312 自分も分かっていないのに返信をいただき
ありがとうございました
>>510 関係無い
俺、ヤンマガに一度、新人賞取って、一時期、漫画家を目指してた
(編集と、うまがあわず諦めたが)
俺は、昔から落書きとか好きだったけど、美術で
良い成績取ったことは無いし
漫画自体を描いてみようと思ったのも、大学受験も終わって
漫画ってのを描いてみようと思ったのがきっかけだった。
ちなみにアインシュタインは、特許事務所で働きながら
独学で物理を勉強していた。
気軽に++したら毎回システムコールしたますたとかサラッと有りえるからな C++だと
それ++がオーバーロードされてたらってことでそ? intや生ポインタの++がオーバーロードされてたらそっちのほうが問題だわ
foreachが標準になったからendで止めないと御節介に領域拡張するユトリコンテナとか普通に溢れてくると思うよ
じゃintのi++にダメだししてるのはナンクセってことか
プリミティブ型には後置++を使う 何となく
562 :
デフォルトの名無しさん :2013/12/29(日) 20:40:49.32
スマホの発達で日本人全員がプログラマー化しないか心配 大丈夫かな?皆、ITに強くなりすぎてない?
そこら中のOLがOfficeつかう感じでRubyでWebアプリとか 作るようにななるかもしれないが、その人達がC言語を使う 様になるとは思わない ゴールドラッシュの金山で金を探すより、金の採掘者に スコップを売ろうぜ
564 :
デフォルトの名無しさん :2013/12/29(日) 20:51:31.98
iOSはUNIXだしAndroidはLinuxだし、Windowsしか選択肢が無かった頃より 確実にプログラマ化が進むだろね。
iOSはUNIX? なにをいってんの?
566 :
デフォルトの名無しさん :2013/12/29(日) 21:21:22.55
567 :
デフォルトの名無しさん :2013/12/29(日) 21:22:08.23
Windowsより優れているとも言ってる。
よく読めよw
569 :
デフォルトの名無しさん :2013/12/30(月) 02:38:58.58
冬休み中にアールピージーを作ろうと思います 夏休みにアールピージーツクールで作ったゲームを友達に見せたらシステムにオリジナリティーがないとバカにされたのでプログラミングで作ろうと思います 先輩にお願いしたら僕のパソコンでC言語だけは使えるようにしてくれたらしいです 先輩はお正月はおばあさんの実家で過ごすらしくて今は近くにいません 時間があまりとれないのでファイナルファンタジー14のようなクオリティは難しいと思うのでファイナルファンタジー6ぐらいのクオリティで我慢します 作り方を教えてください よろしくお願いします
ウィンドウを表示する 画像を読み込んでウィンドウに表示する キー入力で表示する絵を切り替える 満足の行くレベルまで表示される絵のパターンを増やす 以上
571 :
デフォルトの名無しさん :2013/12/30(月) 03:02:43.21
世界の終わり
572 :
デフォルトの名無しさん :2013/12/30(月) 06:32:12.33
まずはメインループからだろ。 メインループ内にifでタイトルとメニュー画面と マップと戦闘画面の分岐を作成する。 そしてそれぞれ関数を呼び、 関数はそれぞれ外部ファイルにする。
まずはローグとかウィザードリィとかを目指したほうが良いと思うのだが
釣り針でか過ぎってやつだろ
575 :
デフォルトの名無しさん :2013/12/30(月) 13:51:25.30
お前たちのような小物は眼中にない!って意味だと思います。 大物狙い!
576 :
デフォルトの名無しさん :2013/12/30(月) 14:31:35.03
>>572 それは関数ポインタにするべきでは?
毎フレームそんな条件分岐させるの?
毎秒60回もの高負荷な条件分岐がおんどれらを襲う!!!
分岐自体はそんな負荷ないでしょ。 そっから先の処理のが重い。
そういえばメニュー画面出したときにメニュー画面の背景がマップのままになってるゲームって結構あるけど、 あれってマップを管理してる中にメニューの管理も入ってるのかね
画面を重ねてスクリーンに描画してるんだよ。 画面ごとに別のオブジェクト。
つか、その辺はOSが用意してるフレワだから、ゼロから作らない。 プレステもiPhoneもAndroidも。
フレームワーク抜きでいきなり言われても ダブルバッファリングから説明が要るかも知れんのにw
583 :
デフォルトの名無しさん :2013/12/30(月) 15:31:25.24
頭痛によく効きそうだと思いました。
584 :
デフォルトの名無しさん :2013/12/30(月) 15:49:49.73
プログラマなら俺様フレワから作るだろ
初心者がゲーム作りに良いframeworkって何よ? curses?SDL?
586 :
デフォルトの名無しさん :2013/12/30(月) 18:39:26.39
初心者なら MT Framework 2.0 一択
>>586 すまないが初心者未満は帰ってくれないか
fpsって固定のほうがいいの?
固定は無理でしょ
590 :
デフォルトの名無しさん :2013/12/30(月) 18:49:23.76
60fps固定でいいんじゃないの
591 :
デフォルトの名無しさん :2013/12/30(月) 18:56:16.67
普通はユーザーが選べるようにする 15fps 30fps 60fps 120fps 辺りで
120fpsって違いわかるの?
>>530 日本の教育がおかしいんだよ
奴隷生産工場になってる
最近は品質低下も起こってる
>>563 金属(金じゃなくて)探知機つけたらバカ売れするだろうね
595 :
デフォルトの名無しさん :2013/12/30(月) 19:34:46.56
金鉱脈を探すにはエル字型の棒を二本使います。
顧客に「攻撃を受けたのでシステムダウンしました」と虚偽の報告をする三菱 インフォメーションシステムズのSEの方が孫請けのベテランPGより給料良い こんな腐った業界にはクズしか集まらない
597 :
デフォルトの名無しさん :2013/12/30(月) 20:05:01.59
598 :
デフォルトの名無しさん :2013/12/30(月) 20:29:05.99
だが臨場感とやらを実現するにはもっともっともっと手間がかかる
601 :
デフォルトの名無しさん :2013/12/30(月) 20:52:15.65
YouTube自体が60fpsもなくなかったか?
html5プレーヤとかいうのを有効にすればぬるっと動くみたい
603 :
デフォルトの名無しさん :2013/12/30(月) 21:37:48.28
格闘ゲームのコマンド入力ってどうやって処理するの? 普通は毎フレーム、キーの入力状態を調べるから、 コマンドの判定が難しいと思うんだけど 例えば↓→Aというコマンドがあったら、入力はこんな感じで取得してしまうだろ ↓↓↓→→AAAA
>>603 入力状態が前のフレームと変化したタイミングで押下、押上って判断したらいいんじゃないの。
実際のゲームはどうしてるか知らんけど。
え?
↓↓↓→→AAAA って入力が ↓→A って正規化できればいいんでしょ? どこが難しいかわからないくらい簡単な処理だのような気がするけど、素人目には わからない落とし穴でもあるのかな。
それで←→→Aはいけるの?
>>607 え、そのパターンだとなんか難しいことがあるの?
→→って二回入力の間が一フレーム以下の短い間隔で行われるとか?
609 :
デフォルトの名無しさん :2013/12/30(月) 22:08:18.02
>>606 バーチャファイターという格闘ゲームは
→Pと、→(長押し)Pで違う技が出たりするが
それはどう対応するつもりだろう
>>609 →の入力のフレーム数をカウントすればいいだけなんじゃないの。
割り込みじゃなくてポーリングでしょ 立ったままスクリューパイルドライバーとかブレイクスパイラル出せるのはそのせい
612 :
18 :2013/12/30(月) 22:19:51.40
>>603 スイッチって離したことも検出できるんだよ...
613 :
デフォルトの名無しさん :2013/12/30(月) 22:31:20.86
何回もスーパードンキーコングの話してすいませんが、ドンキーコングって 例えばジャングルの面だと、地面がでこぼこしてるけど、地面に合わせてドンキー が上がったり下がったりするじゃないですか、あのリアル感どうやって出すんですか? 障害物が無い時はふつうに平らな面みたいなのでもいいですけど物足りないので。
614 :
デフォルトの名無しさん :2013/12/30(月) 22:34:58.94
マリオワールドの斜めの高低差をもっと細かくしてあるだけだろ。
大抵のゲームエンジンは当たり判定を勝手にやってくれる
617 :
デフォルトの名無しさん :2013/12/30(月) 23:13:38.72
適当に高さを持たせて線形補完してるだけだろ
618 :
デフォルトの名無しさん :2013/12/30(月) 23:17:26.35
>>616 大抵の?
俺の作ったゲームエンジンは当たり判定なんかしてくれないよ
619 :
デフォルトの名無しさん :2013/12/30(月) 23:21:58.53
リソースマネージャの作り方を教えてください
何の?
621 :
デフォルトの名無しさん :2013/12/31(火) 01:03:00.33
ゲームの
622 :
デフォルトの名無しさん :2013/12/31(火) 03:50:09.15
当たり判定は、各自で工夫します
当たり判定どころか、基本的な衝突処理はエンジンがやるだろ
624 :
デフォルトの名無しさん :2013/12/31(火) 04:15:44.05
基本的なってどこまでが基本的なんだよ
626 :
デフォルトの名無しさん :2013/12/31(火) 05:50:21.46
2DRPGについて質問です マス単位で管理してる2DRPGのマップで、 道が立体交差してる部分はどうすればよいのでしょうか? 今は各マスに歩けるかどうかのフラグを持たせていますが、立体交差の部分をどうすればよいか分かりません ┃┃ ━┫┣━ ━┫┣━ ┃┃ 今の歩けるかどうかのフラグだと、上の道と下の道が重なっている部分で自由に移動できてしまいます
高さ情報をもたせる
どうしても白黒マップにしたけりゃ手前のマスに扉イベント付けりゃいいじゃん
入ってきた方向を保存して出ることが可能な方向を限定するだけじゃん
cをお勉強するためイクリプスやらコンパイラのminGWなど入れてハローワールドが実行できるようにまではいきました ですが外部実行でプロンプトで実行結果がでるようにしたかったりで色々いじくったんですがcIコマンドが使えなかったり使えるようにするためのコンパイラのファイルがどこにあるのか ひっちゃかめっちゃかでわかりません cやcぷら開発ってビジアルスタジオのほうが便利で簡単なのでしょうか
>>626 > 今は各マスに歩けるかどうかのフラグを持たせていますが、立体交差の部分をどうすればよいか分かりません
縦に歩ける、横に歩けるの2ビットで管理する
>>626 見た目が同じ2枚のマップを用意してこっそり入れ替えるw
2Dマップをやめて3Dマップにする
635 :
デフォルトの名無しさん :2013/12/31(火) 10:12:23.34
>>530 優秀な人たちは、企業のジジイたちの介護なんか選ばないだろ
637 :
デフォルトの名無しさん :2013/12/31(火) 13:40:11.52
>>632 それだと同じマップ内に階段があって上って立体交差ってのができなくなりますぜ旦那
テスト
yrdy
640 :
デフォルトの名無しさん :2013/12/31(火) 13:58:44.28
データの量は大きくなるけど、マップをレイヤー構造にするのがベストかと。 レイヤーごとに高さが決まっていて、高さの数字の隣り合ってるレイヤー間は移動可能にする。 レイヤー2からレイヤー1と3には移動可能、レイヤー2からレイヤー4には移動不可みたいな。 階段上って立体交差する場合は、下の通路をレイヤー1、階段をレイヤー2、上の通路をレイヤー3にする。
チップのしたをくぐれるようにしたうえで
>>632 でいいんじゃないの
エディタとかまで考えるとやたらめんどくさい
>>630 俺はイクリプスクソと判断してVS使って利よ
643 :
デフォルトの名無しさん :2013/12/31(火) 16:04:37.72
悪いが お前の面倒を見る余裕は
AMDのCPUのKaveriが出る前にGPGPUの勉強しときたいんだけど、 CとC++どっち勉強したらいい?
C
>>646 ありがとう、昔ポインタでつまづいてたけど
今は概念わかったので頑張るよ〜(なんで当時わかんなかったのかは謎)
時の力は偉大だね
初心者にありがちだと思いますが、メモリの中身なんて想像もしてなかったから・・・・
ゲームのカメラワークはなくていいよ 3d酔いするから
651 :
デフォルトの名無しさん :2013/12/31(火) 21:01:56.43
2Dでも、普通はキャラを中心カメラが追従するけど、狭いマップだとカメラ固定の場合があるよね あれってどうすんの?
スレチ
ワールド座標で位置を管理しといて ・常時キャラ位置=描画中心位置: 中心追従型 ・キャラ位置とは無関係に描画中心位置を固定する: 固定表示 ・描画中心位置を キャラ位置から少しだけ計算する: 半固定表示(テキストウィンドウのスクロール風) ※ 描画中心から半画面ほどキャラ位置が離れた時だけ 描画中心位置を加減算する
654 :
デフォルトの名無しさん :2013/12/31(火) 21:46:14.63
BOOL camSolid; struct POSITIONDATA{ int x, y; }charaDrawPos, camLookAtPos; if ( camSolid ){ //カメラ固定時 charaDrawPos = GetCharactorPos(); camLookAtPos = MakePosition( 0, 0 ); }else{ //カメラ非固定時 charaDrawPos = MakePosition( 0, 0 ); camLookAtPos = GetCharactorPos(); } //描画 DrawMap( &charaDrawPos, &camLookAtPos ); DrawCharactor( &charaDrawPos, &camLookAtPos );
656 :
デフォルトの名無しさん :2014/01/01(水) 00:24:59.04
カメラは固定でマップとかキャラを動かすんだろ。
データが無ければスクロールしないようにしてあれば 狭いマップはスクロールしようにも出来ないだけでは
658 :
デフォルトの名無しさん :2014/01/01(水) 02:41:00.78
マップチップを2次元配列で管理してると左上のほうに行ったときにxかyの要素が-1になってその瞬間に落ちる
そういえば昔、3DMMORPGを作ろうと思って設計してたんだけど、
マップを立方体で空間分割して配列で管理しようとして詰んだことがある。
>>658 とほぼ同じ内容。
最初のマップがmap[0][0][0]で、
追加するマップがそれよりマイナスの方向になると詰む。
MMORPGでは後からどんどんマップが追加されるのが普通だからこの方法は不可。
もちろんプラスの方向にしか追加しないのであればこれでも構わないが、
地球は丸いのに出発点が隅っこというのは不自然。
余裕を持たせてmap[1000][1000][1000]を出発点にするという方法も考えられるが、
所詮は1000が限界。
プラス側にはメモリの許す限り拡張できるのに、
マイナス側は1000までというのは気持ちが悪い。
ベースとオフセットで分離すればおk
あけましておめでとうございます 今年もよろしくお願いします
664 :
デフォルトの名無しさん :2014/01/01(水) 15:59:52.71
簡単のために平面で説明するけど、要は現在のマップ(ブロック・範囲)の周囲のマップがわかればいいんだろ ■を現在いるマップだとすると、こんな感じで周囲がわかればよい □□□ □■□ □□□ これをプログラムに落とし込むために番号を振ると 012 3 4 567 この情報を持っていればよいから struct MAP { int myid;//真ん中(自分)のID int inheritid[8]; }; マップの数だけこれを配列にでもして用意すればよい 調べるときは最初からmyidを検索していって、現在いるマップのidが見つかったらその周囲のマップを取得する マップ間移動時以外には調べることもほとんどないだろうし負荷的にも問題ない これで全範囲拡張可能
ありえないよw
画面の左上と右下の座標だけ分かってたら他いらないじゃん
>>659 メモリを連続させるからマイナスを扱えないだけ
mapをブロック単位に分割して
前後左右上下のブロックのアドレスを真ん中のブロックに持たせるといくらでも拡張できる
読み込むときはパケットのTTL的な感じでロードしていけばいい
>>651 {_[__@__]_}
{[__@__]__}
{[_@___]__}
{[@___]___}
{[_@___]__}
{[__@__]__}
{_[__@__]_}
{__[__@__]}
{__[___@_]}
{__[____@]}
{__[___@_]}
{__[__@__]}
{_[__@__]_}
単純化すればこんなイメージ。
wikiを見ればなんとなくニュアンスがつかめると思うけど プレイヤーの位置をマップのインデックスに直に対応させるのがだめ 例えばプレイヤーが(-1,-1)座標にいたらあるマップの(100,100)に対応させる その為にはプレイヤーの座標をマップのインデックスに変換させる仕組みが必要
あ ごめん
>>664 と
>>669 が言ってることは全くやってないわw
でも意図していることは多分同じだと思う
読み込みたい座標をうまいことマップのインデックスにしましょう
>>659 んなアホなデータ構造をつかう奴が完成させられるとは、とうてい思えない
上のプログラムだとtableって関数でロードしたい座標をマップのインデックスに変換してる。
if文つかってるからマップが増えれば増えるほどif文を増やさないといけない糞コードだけど
>>664 と
>>669 のやり方だとマップ自身に隣のマップが何かって情報を持たせているから拡張しやすいのかな
>>675 それはもう本当に設計から考えなおせ
どう考えてもゲームを作れるような基礎すらできてない
俺はゲームつくらねえよ
プログラミング自体たまーにやる程度だ
ただ
>>659 が変なこと言ったから自分なりに説明しただけだ
ffみたいなゲームも基本的にはパラパラ漫画なんですか? とてもそうは思えませんが。
高速なパラパラ漫画 一秒間に三十枚とか六十枚
そもそもモニター自体が一秒間に静止画を何枚も表示する装置だ
681 :
デフォルトの名無しさん :2014/01/01(水) 20:06:06.52
>>678 画面で動くものは全てパラパラ漫画だと思ってていいよ。
FF、映画、エロ動画、テレビ、変態ビデオ、ゲーム、etc
嘘だと思うなら「テレビ fps」とかでググってみればいい。
682 :
デフォルトの名無しさん :2014/01/01(水) 20:13:30.41
固定fpsでゲーム作ろうかと思うんだけど、30と60どっちがいいだろう ポンコツPC使ってる人にもプレイして欲しがったら30fpsかな
そうだねプロテインだね
人間の目はどういう風に捉えてるの?
宇宙の外には何があるの?
インフレーション状態の宇宙の外には何があるの?
>>682 宮崎駿アニメとかfps高くてリアリティ出そうとしているけど
俺はfpsに頼るの嫌いなんだよね。
あしたのジョーとかタイガーマスクとかみたいに劇画に線で動きを出したり、
ボカシで補間する方が人間の感覚に近くて良いと思うんだ。
そもそもC言語でゲーム作ろうってのが間違い
1秒に1億回以上も計算できるCだとゲーム作ったら安定しまくりじゃないの?
例えばジャンプするという動作は 20飛ぶとして、キャラのビット数が100*100としたら 1万×20=20万 ジャンプして着地するまで2秒だから、Cの計算回数20億回 と20万を比べると、19億1980万回余分に処理できることになる。 Cは最強といっても過言ではないだろう。
間違えた19億9980万回だね、キャラが飛んでる間に19億回9980回分の 違う処理ができる。これは凄すぎるんじゃないだろうか。
え
これがかの有名なフェルミ推定か
695 :
デフォルトの名無しさん :2014/01/01(水) 23:27:09.19
ガチでハードわかんねーやつのようだ
696 :
デフォルトの名無しさん :2014/01/02(木) 00:08:42.81
>>691 そんなに計算しないでしょ
キャラグラフィックの足の位置だけでしょ
あとはGPUに丸投げでしょ
かんせいまでの道のりを安定させるのが先だろ
699 :
デフォルトの名無しさん :2014/01/02(木) 12:01:56.67
700 :
デフォルトの名無しさん :2014/01/02(木) 21:02:21.91
3Dゲームじゃないのに異常にメモリ使うのは何故なんだろう? 2Dの同人アクションゲームです。
C言語検定試験ってどうなん?
702 :
デフォルトの名無しさん :2014/01/02(木) 21:17:30.46
渋谷
703 :
デフォルトの名無しさん :2014/01/02(木) 21:23:50.29
>>700 □画像がBMPでしかも異常に解像度が高くビット数も32
□アホみたいにたくさん音声ファイルを使っている
□しかもその音声ファイルがビットレートを無駄に高くしたWAVEやMP3
□画像や音声ファイルのロード/アンロードが面倒だからと最初に全部読み込んでいる
□まともなリソースマネージャを作ってないから同じグラフィックのモンスターでもモンスターの数だけ画像を読み込んでいる
□音声ファイルもモンスターの数だけ読み込んでいる
新宿
705 :
デフォルトの名無しさん :2014/01/02(木) 21:27:28.71
GATO みたいに5億ブロックとかあるやつを、ロード時間ゼロでやろうとすると簡単に・・
706 :
デフォルトの名無しさん :2014/01/02(木) 21:32:07.45
銀座
707 :
デフォルトの名無しさん :2014/01/02(木) 21:39:19.66
>>703 やっぱりマルチメディア関連なんですね
ありがとう!
>>700 画像だろうね
一般的なソフトなら設定で変更できると思うよ
strcpyで上書きするにはどうしたらいいですか? char s[10]="abcd" strcpy(s,"efg"); sがefgdじゃなくて abcdefgになってありたいです。
710 :
デフォルトの名無しさん :2014/01/02(木) 21:45:05.94
C言語検定試験なんてあるんだ 知らなかった
711 :
デフォルトの名無しさん :2014/01/02(木) 21:47:11.45
>>709 strcpyじゃなくてstrcatを使うべし
どういても strcpy でなければいけないのであれば strcpy(s+4,"efg"); 連結できれば良いのなら strcat(s, "efg");
713 :
709 :2014/01/02(木) 22:14:02.33
>711-712 ありがとうございます。 今、RPGを作ろうと思ってて、 王様「よく来たな、〇〇 の〇〇の部分にプレイヤーが自分で決めた名前を入れたかったのです。 これで開発が進みます。 感謝します。
string無しで文字とか扱いたくねぇ
715 :
デフォルトの名無しさん :2014/01/02(木) 22:18:34.45
俺も、一番やりたくないわ。 仕方ないからやるけど、注意深くやるから疲れるし
716 :
デフォルトの名無しさん :2014/01/02(木) 22:27:12.92
確かにstring無しは辛い やっぱりC++か……いや、Cも原始的で良いかも……
CとJAVAの文字列の扱いやすさってどっちが勝ってる? 具体的に教えて下さい。
718 :
デフォルトの名無しさん :2014/01/02(木) 22:33:49.03
>>717 明らかにJava
Cは文字列と言っても文字の集まりとしてしか考えられないけど、Javaには専用のString型がある
>>718 CにできなくてJAVAにできる事ってなにがあります?
連結、結合、1文字単位のアクセス
全て両方できると思いますが。
処理系にデフォルトで組み込まれているGCが無いだろ 不要になった文字列を回収しなくてよいのはスゲー楽
連結や結合操作を演算子で記述できるところかなぁ
722 :
デフォルトの名無しさん :2014/01/02(木) 22:39:36.76
>>719 mallocとかfreeは使った事ある?
723 :
デフォルトの名無しさん :2014/01/02(木) 22:40:15.18
正規表現かな? Cのみの正規表現ライブラリ おすすめありますか
724 :
デフォルトの名無しさん :2014/01/02(木) 22:44:28.62
鬼車
725 :
デフォルトの名無しさん :2014/01/02(木) 22:48:20.84
なまえは、きいたことあります。
726 :
18 :2014/01/02(木) 22:51:29.41
>>719 できる、できないだとできないことはない。
ただ、同じことするにも楽かどうかは段違いに違う。
>>720 不要になった文字列は放置すればいいのでは?
何故GCが必要なの?
>>727 チリも積もれば山となる
メモリリークも積もればOSのハングアップ
729 :
デフォルトの名無しさん :2014/01/02(木) 22:57:58.02
コーディング能力とアプリケーションの設計能力は全く別物だということがよく分かるスレだな C言語には精通していても設計能力は全くないボンクラがこのスレには多い
731 :
デフォルトの名無しさん :2014/01/02(木) 23:00:30.48
>>726 この人の言ってる事がおそらく一番正しい
必殺技!スラッシグン!
733 :
デフォルトの名無しさん :2014/01/02(木) 23:11:04.03
パリイ
無敵配列奥義 LIFOLIFOアタック!!!!
C言語最終奥義 オールマロック!!!!!!!!!!!!
mallocなんてランタイムの実装信用出来ないから OSのヒープ関数直接使うだろ。Cプログラマーなら
使わねーよ ばか
C言語最終奥義!! OSアタック!!! while(∞) { malloc(int 100^100) }
Cじゃねーよそれ
740 :
デフォルトの名無しさん :2014/01/02(木) 23:55:32.91
赤坂
741 :
デフォルトの名無しさん :2014/01/03(金) 00:41:52.30
while(∞) これ見て、何かを悟った気がする
742 :
デフォルトの名無しさん :2014/01/03(金) 00:52:44.68
質問です 東京自体行ったことないのですが、赤坂とはどんな場所なのでしょうか? 赤坂サカスと呼ばれる商業施設があることくらいしか知りません 赤坂サカスと呼ばれる施設が何なのかも知りません
誤爆
>>736 その”OSのヒープ関数”というもの内部で
mallocなわけだが・・・
745 :
デフォルトの名無しさん :2014/01/03(金) 04:44:24.65
んなこたーない
昔のRPGはただ敵をぬっ殺せばよかったのに、 最近のRPGは得点だのランクだの1戦おきに表示してくるな。 そんなにあちこち気が回るかボケ。
747 :
デフォルトの名無しさん :2014/01/03(金) 09:38:24.92
全力で暴れても fork 爆弾すら出てこない雑魚か
749 :
デフォルトの名無しさん :2014/01/03(金) 13:21:18.97
アイテム画面で十字キーを押すとカーソルが目にも止まらぬ速さで動くのですがどうしたらいいですか? 前フレームの入力と比較して、前フレームと今フレームのどちらも押下されてる場合は動かないようにしてみたのですが、 そうすると今度はキー押しっぱなしでカーソル移動ができなくなりました。 一般的なゲームのアイテム画面のように、押下すると1アイテムだけ動き、そのまま0.5秒くらい押しっぱなしにすると、0.2秒/アイテムくらいのスピードでカーソルが動くようにしたいです。
どのフレームワークを使ってるかしらないけど repeat delay interval この辺りのキーワードで探せば見つかるかと
>>729 コーディング能力と設計能力が別だって思ってる人間のほうが開発を理解できてないわ。
いきがるんじゃねえFラン、専門出の土方ども。、
>>749 キーを押してからの時間を測ればいいんじゃない
fps 固定ならフレーム数か
>>751 別だろ
建築の設計者と現場の大工の能力を比較するのかおバカさん
755 :
デフォルトの名無しさん :2014/01/03(金) 14:42:14.18
ゲームプログラミングに興味持ったのが21性器以降だから 1ビット単位で節約してた時代を想像できない
いくら21世紀だとしても、例えば登場キャラが100万人いるとして、 100万人の顔画像を1人づつシコシコ作らないだろ。 モンタージュで生成とか考えるだろ。
アイテムってみんなどうやって管理してるんだろ #define TYPE_WEAPON 1000 #define TYPE_ARMOR 2000 struct WEAPONDB{ int atpow; char name[32]; }; struct ARMORDB{ int defpow; char name[32]; }; struct MYITEM{ int type; int itemid; int num; }; こんな感じ?
>>754 ソフトウエア開発と建築の区別がつかないほうが馬鹿だろ。
下流の工程はできないけど上流はできるって言ってるやつは、上流もろくにできてないな。
761 :
デフォルトの名無しさん :2014/01/03(金) 15:25:12.49
>>757 ゲーム開発ならCよりC++の方が楽かな
>>754 コードとは設計である
http://www.atmarkit.co.jp/news/200904/10/matz.html ソフトウェア産業界では、よくエンジニアが何十万人足りないということが言われる。しかし、まつもと氏は、
これは工業生産と同じ方法論を当てはめることから来る誤解だという。ソフトウェアは大量生産するもので
もなければ、部品の組み立てのような工程もないからだ。
「ソフトウェア工場はうまくいかないんですね。なぜなら部品の組み立てに相当するものが、アップロード
とかDVDに焼くといった工程ぐらいしか存在せず、効率化しようないからです」。
コード(ソフトウェア)を書くというのは、組み立てのことではなく、製造業でいう「設計」に相当するという。
「クルマを作るときに、まず形や強度の設計をしますよね。それこそがソフトウェア作りです。ソフトウェア
作りは、最初から最後まで工業製品でいう設計に当たるんです」。
>>762 モジュールを画面上で組み合わせるだけの作業は紛れもなく組立だろう
何とかレポートとかで数十枚、数百枚の帳票をポトペタしてればそりゃコーダーが足りなくもなるわな。 でもそれは、単に方法論を知らない人間が仕切ってるに過ぎない。 工場のベルトコンベア方式みたいな単純作業は、メタプログラミングやコードジェネレータで片づけようと考えるのがまっとうなエンジニア。
言語だけはやたら詳しいが、実際のプロジェクトの中では全く使えないやついるよな 実際のプロジェクトは全体を見通せる力がないと、いくらC/C++の知識が豊富でも 使いものにならない
C/C++の豊富な知識を生かして最下流で仕事してもらえばいいと思う
下流の工程をできない人間が、自分は上流ならできる、下流だけの人間より上だって思ってるのもありがちだな。 その上流もろくにできてないのに。
769 :
デフォルトの名無しさん :2014/01/03(金) 17:30:41.50
就職率も,男子58.9%,女子70.2%で, 女の方が高いしな
>>762 Rubyが成功してるんなら、まだしも説得力が有ったんだけどね。
772 :
デフォルトの名無しさん :2014/01/03(金) 17:39:26.18
FF6のデジョンのような表現はどうやっているのだ?
描画の深度的には画面に近いほうから、魔法エフェクト→モンスター→背景だと思ってたけど
それでは説明がつかない
http://www.youtube.com/watch?v=49LvniUUuPc#t=7m5s モンスター→エフェクト→背景かと思ったけど
モンスターがエフェクトの境界を境に背景に消えてるから
背景に魔法エフェクトサイズの穴を空けて、その下にモンスター→魔法エフェクトの順に描画してるように見える
でもそうすると魔法発動前はモンスターが背景に隠れてしまう
どうなってるんだ?
穴を開けてるんじゃなくて、魔法エフェクトの形状でモンスターをクリップしてる。 クリップをどう実現するかはフレワによるが、かなりスレ違いだと思う。
774 :
デフォルトの名無しさん :2014/01/03(金) 18:11:14.99
775 :
デフォルトの名無しさん :2014/01/03(金) 18:50:05.13
776 :
デフォルトの名無しさん :2014/01/03(金) 18:59:44.17
こんなに就職率低いのか。 こんなところへ賃上げさせたらさらに就職率下がるんじゃないか? 賃上げさせられ、解雇も難しい、となれば後は雇わないくらいしかできない。 そして人員増やさないから一人当たりの労働量は増え、過労がさらに加速するんじゃないか?
778 :
デフォルトの名無しさん :2014/01/03(金) 20:03:07.56
ゲーム業界の就職率ってどうなんだろうな
むしろ離職率とか
ゲーム会社への就職率0のゲーム専門学校の話とかあるからな。 そういうの考えたらすごい就職率低そう。 (最初からあきらめてゲームメーカーには応募してないかもしれないけど)
781 :
デフォルトの名無しさん :2014/01/03(金) 20:20:17.74
Javaの話ですいませんが スレッドってゲーム作るときに絶対必要ですか? javaでスレッドを使わずにテトリス(音楽無し)とか作れますか? メインループでブロックを移動させたらいいだけなのに スレッドを作る理由が分かりません。
>>781 Cとかでゲームを作るときはスレッド使わないから、Javaでも同じように作ったらいいんじゃないの。
必要になるまで使わなくてヨシ。それだけ。
784 :
デフォルトの名無しさん :2014/01/03(金) 20:25:10.05
JavaのスレッドはWin32のファイバに相当、あるいはLinuxのプロセスに 相当するくらい速いので、使わない理由がない。
785 :
デフォルトの名無しさん :2014/01/03(金) 20:26:27.40
>>784 そもそもスレッドを使う理由が分かりません、スレッドって何ですか?
プロセスという事は分かるのですが詳しくは分からなくて…
むしろスレッドはGUIとかでよく使う
プライマリスレッドは使う
ネット対戦テトリスならスレッド使う
UNIXってなんですか? どこでUNIXを使うんですか?どこで手に入れるんですか? あと今C言語を勉強してるんですけどこの延長でできますか?
790 :
デフォルトの名無しさん :2014/01/03(金) 20:30:46.83
>>786 そうですテトリスはGUIです、何故GUIでスレッドを使うんですか?
GUIで必要なのはグラフィック描画クラスだけだと思います。
791 :
デフォルトの名無しさん :2014/01/03(金) 20:34:02.22
>>785 ああ、すいません。
>>784 は忘れてください。
プロセスが一つのマシン内で同時に処理が走るものだとすると、
スレッドは、一つのプロセス内で同時に処理が走るものです。
少なくともそう見えます。
プロセス間ではメモリーの読み書きがお互いにめんどくさいし遅いですが、
スレッド間では同じメモリーを読み書きできます。
ということで、スレッド間では情報を軽く共有できます。
同じ変数を読み書きするだけですから。
これが一番大きな違いです。
>>790 グラフィックスを表示するまでの計算に時間が掛かるとOSはプログラムが停止したと判断しただろ?
793 :
デフォルトの名無しさん :2014/01/03(金) 20:36:34.99
>>789 UNIXは駅前の果物屋で売ってました。
ちょっとかじってあったので買いませんでしたが。
794 :
デフォルトの名無しさん :2014/01/03(金) 20:39:12.90
プログラミングが得意じゃない俺には以下のプログラムが理解できません。 ext-web.edu.sgu.ac.jp/nikku/nikkunisemi/nikkunisotuken2003/03_study/03_product/03_nishiduka/java4_4.html paintというメソッドが発動するのはいつでしょうか? 引数がイベントリスナーなら、イベントが発生したときに発動するメソッド と分かりますが、この場合paintの引数はGraphics gです。 どうやったらpainメソッドが発動するのでしょう? paintという文字列で検索しましたが、repaintが2個、paintが1個だけでした。
795 :
デフォルトの名無しさん :2014/01/03(金) 20:41:46.50
>>794 ソースが長すぎるので3行にまとめてください。
読む気がしないです。
お正月なんで。
みかんがおいしいです。
796 :
デフォルトの名無しさん :2014/01/03(金) 20:42:51.05
>>795 想像でも構いません。paintは描画ですよね。
何故他のメソッドでpaintが見当たらないんでしょうか…
797 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/03(金) 20:44:01.54
>>789 UNIXはC言語で記述されたOSの一種。商標。
UNIXは多分有料だが、無料のLinuxというOSでだいたい同じことができる。
Linuxにも色々種類があってUbuntuというのが人気ある。
Ubuntuのイメージをダウンロードしてvirtualboxという仮想マシンにインストールして試してみるといい。
もちろんイメージを焼いたCD/DVDがあれば、本物のパソコン(実機)にもインストールできる。
798 :
デフォルトの名無しさん :2014/01/03(金) 20:45:02.99
>>797 片山さんお願いします。
1週間
>>794 のコードを見つめて解読したのですが全然わかりません。
paintはいつ発生するんでしょうか?
799 :
デフォルトの名無しさん :2014/01/03(金) 20:45:21.34
UNIXはMac。 他のUNIXは高いので見ちゃいけません。 そんなの常識。
Ubuntu もスパイウェア
javaのソースコードの難しさは異常
802 :
デフォルトの名無しさん :2014/01/03(金) 20:48:58.61
Debian 系は、糞
803 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/03(金) 20:52:05.31
>>798 インターフェイスがメソッドへのポインタを所有しているから、
アプレットのインターフェイスの所有者が、再描画したいときにpaintメソッドを呼ぶ。
804 :
デフォルトの名無しさん :2014/01/03(金) 21:00:06.70
>>803 ご返事ありがとうございます
描画のタイミングはスレッドってことか、うん?分からないぞ
805 :
デフォルトの名無しさん :2014/01/03(金) 21:02:14.50
分からない、分からないぞ、何故スレッドを使うんだ、 ループの中に処理を書くじゃだめなのか??
ソフトってどうやって作るんですか
807 :
デフォルトの名無しさん :2014/01/03(金) 21:09:08.69
808 :
デフォルトの名無しさん :2014/01/03(金) 21:10:36.92
ゲームの作り方を教えてください
まずはMASMというプログラムを入手して下さい
スレッドを使うとどうやって時間制御したらいいんだろう?
本読め
813 :
デフォルトの名無しさん :2014/01/03(金) 21:16:13.62
アメリカのPRISMみたいなシステムってC言語で作れますか?
814 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/03(金) 21:20:00.78
>>807 OSやGUIの仕組みを勉強するとわかると思うが、ウィンドウが隠れたりしたときや新しく作成したときなどに再描画が
必要だと判断されて、OSから再描画メッセージがウィンドウのスレッドに渡される。スレッドはすぐに描画できるとは限らないので、
イベント駆動方式でメッセージを、メッセージキューに溜め込んでメッセージフローを緩衝させる。
スレッドが描画したら再描画メッセージを取り除く。
815 :
デフォルトの名無しさん :2014/01/03(金) 21:21:49.39
>>813 どれだけ苦労するかは別としてCに出来ない事などない!
816 :
デフォルトの名無しさん :2014/01/03(金) 21:26:14.55
817 :
デフォルトの名無しさん :2014/01/03(金) 21:32:08.61
Cで最強のシステム作ろうぜ!
818 :
デフォルトの名無しさん :2014/01/03(金) 21:33:55.93
>>806 1.コンピュータにわかる形式で手順を記述する(コーディング)。
2.コンピュータに手順を処理させる(コンパイル・インタプリト)。
3.実行手順を確認して間違いを修正する(デバッグ)。
4.配付できる形式に変換し、配付する(リリース)。
じゃぁ俺が叩き台書いてみる int main() { while(0){ //do something; } exit(0); }
820 :
デフォルトの名無しさん :2014/01/03(金) 21:40:26.57
821 :
デフォルトの名無しさん :2014/01/03(金) 22:02:40.23
>>814 おっ、つまりrepaint()ですかね?
repaint→paintですか?
何か分かったきがする^-^;
>>816 sleepじゃないんですか?
ロック、ロック、デッドロック! イカした野郎のヘビーロック!
823 :
デフォルトの名無しさん :2014/01/03(金) 22:10:42.91
そんなに気になるなら、JDK 5.0 のソースコードでも見とけ
2次元配列に2バイト文字(ひらがな)を入れ、printfで出力したいのですが、どのように宣言し、出力すればよろしいのでしょうか?
825 :
デフォルトの名無しさん :2014/01/03(金) 22:47:37.85
char *aa[] = {"あいうえお", "かきくけこ", "さしすせそ"}; int i; for (i = 0; i < 3; ++i) printf("%s\n", aa[i]);
>>821 Javaはアプリがpaint();を持っていたらウィンドウ描画時にpaint();がコールされるのだろう。
自分でウィンドウ内のアイテムを書き換えたら再描画したいのでrepaint();をコールすると
repaint(); → Java → OS → Java → paint();
アプリのウィンドウが今まで隠れていたけど表に出された、という時は
OS → Java → paint();
とコールされる感じだろう。
>>825 ありがとうございます。
このような感じで、入力した位置で2バイト文字を表示したいのですが、その場合はどのようにすればよろしいでしょうか??
a[1][3]='あ';
printf("%s%s%s%s%s\n",a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]);
printf("%s%s%s%s%s\n",a[1][0],a[1][1],a[1][2],a[1][3],a[1][4]);
int i; int j; for(i=0;i<2;i++){ for(j=0;j<5;j++){ printf("%s",a[i][j]); } printf("\n"); }
>>827 エスパーするとglibやicuを使うといい
'a'と"a"
%s %c
NULL終端
文字コード
input-charset exec-charset
このあたりの基本的な事が分かっていないようだから
入門書の1冊ぐらいには目を通したほうがいいと思う
あとencodingも
#include <stdio.h> int main(void) { printf("Hello World!\n"); return 0; }
833 :
デフォルトの名無しさん :2014/01/03(金) 23:38:59.75
マルチバイト文字を文字列単位で扱う const char *a[2][5] = {{"あ","い","う","え","お"},{"か","き","く","け","こ"}}; a[1][3]="あ"; printf("%s%s%s%s%s\n",a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]); printf("%s%s%s%s%s\n",a[1][0],a[1][1],a[1][2],a[1][3],a[1][4]);
wchar_t a[] = {L'あ',L'い',L'う',L'え',L'お', L'\0'}; int i = 0; while(a[i]) putwchar(a[i++]);
>>835 wchar_t a[] = {L'あ', L'a', L'\0'};
でもok
>>836 通じなかったかな
sizeof(wchar_t)
そもそもC言語の名前の由来って何? Bの次だから?
知ってるなら言うな
840 :
デフォルトの名無しさん :2014/01/04(土) 03:45:39.44
そんなことより「C言語」の「言語」って余計じゃね? Cだろ
困ったらデニスに聞こうぜ!
COBOL開発者は女性 女性はろくな仕事をしない事がまた証明されてしまった
wcharとかドライバ弄るときに使ったけど二度と使いたくないな
844 :
デフォルトの名無しさん :2014/01/04(土) 05:06:05.22
むかーし、むかし、SJIS⇔JIS⇔EUCの相互変換ライブラリ作ったなぁ 標準のstdio.hとstring.hだけで
おしゃべりだから冗長な設計をした。
>>846 このコテも流出で信用出来なくなってしまったから他のコテにしたら?
後で責任回避するときに便利だから使い分けると言ってた
なりすまさなくてもバカを晒す奴にわざわざなりすますかよw
荒らすのに便利だけれどもム板以外では知名度がいまいち
>>840 元々、日本語とか英語とかの意味での「言語」ではないから問題ない。
「表記」の方が正しいが、「言語」で定着してしまった。
852 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/04(土) 11:35:09.30
「C」だけだと、検索が難しい。短けりゃいいって訳ではない。 人工言語の一種だからC言語で正しい
「English語」とか「Japanese語」とかおかしいだろ。 「C言語」もおかしい。
cは大体引っかかるけどDはlanguage D にしないとダメだな
原題は「The C Programming Language」ですから 文句なら石田晴久に言え
おかしい。だが便利だから使い続ける。以上
>>855 あの爺、遠の昔に死んだわ
大学でちょっとした黙祷なんてやらされていい迷惑だった
リッチーは生とる?
それとK
デスリッチーに進化したよ
デスリッチー
デス●ッキー
しーしーこいこい、シー言語。
検索結果に C++はC#、Javaノイズ CはPHPノイズ が目立つな
>>863 いや「English語」や「Japanese語」を「イングリッシュ語」とか「ジャパニーズ語」って書いても変じゃん。
検索カテゴリーを絞るのとは別の話だ。
>>866 じゃあアルファベットで3番目だから「う言語」?
869 :
デフォルトの名無しさん :2014/01/04(土) 14:06:51.47
FacebookだかTwitterだかが使ってるscalaって言語について調べてみたんだけど、 Javaの資産を使って高速で開発できる言語って認識でいいのかな
Javaは糞重いイメージしかない。
871 :
デフォルトの名無しさん :2014/01/04(土) 14:19:21.02
規格では英語でも日本語でも C だね 検索ワードを「C」だけなんて現実にはない Cとは何かならWikiで探せるし ふつー調べたいことに関係するワードがなにかしらある それより、小文字で c はガイキチ臭がただようね 拡張子の .c はともかく
872 :
デフォルトの名無しさん :2014/01/04(土) 14:21:42.37
ゲームにC++使うメリットが分からない 余程複雑なAIでも搭載するのか? 普通の2DRPG程度ならCで十分
ゲームはむちゃくちゃオブジェクト指向向きの題材だな
>>872 逆に俺はおまえの理屈がわからん
>余程複雑なAIでも搭載するのか?
YESならC++なの?
875 :
デフォルトの名無しさん :2014/01/04(土) 14:40:30.67
CHARACTORCLASS chara; MAPCLASS map; chara.Draw(); map.Draw(); ってできるって意味? CHARACTORSTRUCT chara; MAPSTRUCT map; CharaDraw( &chara ); MapDraw( &map ); で十分じゃん。
876 :
デフォルトの名無しさん :2014/01/04(土) 14:47:22.37
RPGの戦闘でダメージ計算をするときってどうやって計算する? int DamageCalc( 攻撃者の攻撃力, 命中率, クリティカル率, 属性, 付加ステータス(毒とか), 被害者の防御力, 被害者の回避率, 被害者の弱点属性, 被害者の耐性属性, 被害者の耐性ステータス ); みたいな感じ?
>>875 普通のGUIプログラミングでも、描画する要素は、windowとかwidgetとかルートの
クラスをもっていて、描画に共通する要素をまとめてるじゃん。
だから、ボタンとかラベルとかボタンも同じロジックで扱える。
ゲームだって、おんなじなんじゃないの。
STLの焼き直しの部分が汚くなるんだよなぁ
昔はゲームだとC++をベターCで使うのが多かった 今はC++としてちゃんと使えてるのかな
>>875 十分って言えば十分だけど
それ、呼び出し側はあんまり変わらなくても
クラス(構造体)の実装側はCで書くと大変だろ
仮想関数とかと同じように機能する処理が必要ならCは悪夢だは
ポータビリティ考えなくて良いならC++の方が良い
単にC+オブジェクト指向の範囲で使えばいい
でもチーム開発でC++採用すると「おまえはその言語の全ての機能を
使わないと死ぬ病気にでもかかってるのか?」って聞きたくなる
様な奴が必ず現れるんだよな
きもPerlうざうざ きもPerlうざい
例えば2Dアクションゲームでモンスターが100匹出てくるとするじゃん? C++でクラス使えばそれぞれの動作も for(i=0;i<100;i++) { mobObj[i].Run(); } ってやるだけでいけるし、 例えば詠唱に時間がかかるが狙ったmobに確実に当たる魔法とかだったら mobObj[targetID].magichit(magicID); とかでいけるわけよ
正直、そのやり方はオブジェクト指向の悪い例だと思ってる モンスターの動きなんて、フィールドやプレイヤーの状態、コンフィグ、その他あらゆる状況で変化するもので たかが monster.cpp があらゆるヘッダを参照するハメになる スイッチ1個増えるだけで全コンパイルだ モンスターとかは構造体に止めといて for(i=0;i<100;i++) if(Config.xxx){ monster[i].x += 1; } else{ monster[i].x += 2; } } みたいにしないと、依存関係が一瞬で破綻するよ
>>886 それ、同じようなswitchがコード中にちらばってるっていう、オブジェクト指向の悪い例にでてくるコードじゃん。
>>888 pimpl くらいはしってるよ
monster,h がいろいろ参照して〜なら pimpl 使えば解決だけど、
monster.cpp 自体がいろいろ参照するのは解決できないでしょ
>>889 確かにそこはデメリットだけど
>>886 のデメリットと比較するとまだマシって感じ
聞くけどさ、じゃあそのモンスターが、壁にぶつかったときに音を鳴らす場合はどうする?
まさかモンスタークラスが、(おそらく唯一の)サウンド管理オブジェクトまでアクセスする?
891 :
デフォルトの名無しさん :2014/01/05(日) 11:48:47.62
>>885 for(i=0;i<100;i++){
mobRun(&mobdata[i]);
}
mobmagichit(&mobdata[targetID],magicID);
はい論破
モンスターの種類が今後ぬるぬる増える可能性が高くて なおかつ担当者ごとに分担するようなケース ↑でなければいらないんじゃねw
分担でもそんなに問題ないだろ。 モンスターのAIとかはスクリプトとかで実装するだろうし。
>>886 お前のヘッダの作り方がおかしいだけだと思う
895 :
デフォルトの名無しさん :2014/01/05(日) 12:14:10.36
ディスクで提供されるコンシューマー機のゲームのRPGと呼ばれるジャンルのソフトウェアは魔法を使うときだけ魔法エフェクトとか読み込んでる? 本体に耳を付けてゲームしてて気付いたんだけど、魔法とか選択したら、キャラが魔法使う直前にディスクがギュインって音立ててるんだよ、敵でも同様
>>895 なんでC言語スレで聞くの?
ググれないの?
知らないなら黙ってればいいのにw
ゲームにもよるだろうけど 最近のFFみたいに派手なエフェクトだったら 戦闘開始時にいちいち全部読み込まないだろ
>>897 ググりかたも知らないのかよ
黙ってろカス
900 :
デフォルトの名無しさん :2014/01/05(日) 13:12:30.92
一度使った魔法はキャッシュしとくだろ普通。
メモリと工数に余裕があれば
902 :
デフォルトの名無しさん :2014/01/05(日) 13:30:34.42
魔法3個くらいキャッシュする余裕あるんじゃない? エフェクトデータ3個と全魔法の使用回数を保持しておいて、 その戦闘での使用回数の多いものからエフェクトをキャッシュ
>>895 具体名を出しましょう。
世界、アジア、東アジア、北東アジアなんじゃそら?
ガキのおねだりじゃないんだから相手してられませんよ
音声データもでしょ 最近のゲームは普通の会話でも音声入ってたりするけど あれも再生する直前に1区切りずつ音声読み込んでながしてる
905 :
デフォルトの名無しさん :2014/01/05(日) 19:13:02.07
なにいってんだこいつ
ソースコードに配列でデータを記録しておくとコンパイルに時間かかりますか? 例えば10万人分の身長と体重を配列で保存するみたいなのを、ソースコードの中に 書きます。10万行になりますが大丈夫ですか?
100メガバイトのCファイルって問題ありますか? コンパイル失敗しそうじゃないですか?
908 :
デフォルトの名無しさん :2014/01/05(日) 21:53:49.28
そんなもんハードコーディングしてるやつ見かけたら全力で逃げる
>>906 なんでそんな事すんの?
exeが肥大するだけなんだけど
別にやりたけりゃ反対する理由もないけどデータ変わったりしたらどう対応する
つもりなのかみものだ
釣り針でか過ぎ
ドットアニメで使うキャラクターが決まってるんで 二次元配列でキャラの位置情報を確保しておきたいんです。 データファイルにしたほうがいいですか?
>>912 データファイルにした方が、細かい修正掛けたりするとき楽だろうと思う
そうですかねー
915 :
デフォルトの名無しさん :2014/01/05(日) 23:27:30.02
未来永劫そのデータの変更は一切ないってんなら止めないけど、 どちらがいいかときかれたらデータファイルをおすすめする。
RPGか? 昔ゲ製板でRPGのデータをハードコーディングしてた奴がいたけど収拾つかなくてエターなってたな
それはエターに理由付けしたかっただけ
918 :
デフォルトの名無しさん :2014/01/05(日) 23:43:30.00
どうせ画像とか音声は外部データにするんだろ 位置情報もついでに外部データにしてしまえよ
個人で作るならデータファイルにしてもハードコーディングでも大差ないさ 面倒なのはバランス調整で値を変えるたびにビルドしなければならない時ぐらい
920 :
デフォルトの名無しさん :2014/01/05(日) 23:57:22.04
STL使うかどうかは別として、データの管理としては
>>757 でいいの?
921 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 00:04:59.55
すべてのアイテムに名前がつくなら処理もデータ構造も共通化した方がいいな
>>921 お前はアイテムに名前付けなくていいから引っ込んでろ
ケツからウンコ垂れる池沼が
923 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 00:10:57.41
さらにすべてのアイテムにイメージもあるとしたら、それを描画する処理も共通化した方がいいな
>>923 お前はアイテムのイメージ作らなくていいから引っ込んでろ
鼻毛の生えてる池沼が
925 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 00:16:49.08
アイテム共通の構造体ITEMを作る。 typedef struct ITEM { char name[32]; char image_name[32]; void *image; } ITEM;
926 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 00:26:24.43
すべてのアイテムには種類があるから種類IDで区別できた方がいいな 構造体ITEMにint type_id;を追加 武器、防具、道具の構造体を用意する typedef struct ITEM_BUKI { ITEM item; float kougeki_ryoku; } ITEM_BUKI;
928 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 00:31:41.69
実行時のアイテムはポインタで管理する。ロード/セーブ時のアイテムデータは圧縮する。 共通化した処理を行う関数はアイテムをvoid*で受け取る(型の共通化のため)。
929 :
デフォルトの名無しさん :2014/01/06(月) 00:38:56.59
>>925-926 何その糞構造体
RPGは武器防具アクセサリだけじゃねーんだよ
世界地図、松明、鍵、モンスター図鑑、色々あるんだよ
世界地図はいちいち世界地図用構造体作るの?松明はいちいち松明構造体作るの?バカなの?
あとそれ個数の管理はできてないし
他にも世の中にはセットオプションってシステムを実装してるゲームがあってだな、
例えば、冥王の剣、冥王の盾、冥王の兜、冥王の鎧、の冥王セット4つを同時に装備すると攻撃力が1割増しになるとか、
そういうのもあるんだよ
そのゴミみたいな構造体でそれをどうやって管理する気だ
世界地図は世界地図モードに移行する道具。 松明ははマップ上での特殊効果を起こす道具。 鍵もマップ上で扉を開ける道具。 モンスター図鑑も図鑑モードに移行する道具。
手本となるゲームプログラムのソース無いのか?
932 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 00:51:21.48
ITEMに個数をあらわすint count;を追加。モード移行のためのint mode_id;を追加
933 :
デフォルトの名無しさん :2014/01/06(月) 00:54:00.08
プログラミング得意な人に限ってゲーム作らないのは何故だろう? 質問して、あその方法あるんだって思うような回答どんどんしてくれるのに。 何故作ろうとしないのか、業務に関係ないからか?
ゲーム屋じゃないからだろ。
>>933 ゲームに全く興味ないから
ゲームって非生産的だし(っていうと釣り針でかすぎかな?)
という訳で実行時のアイテムデータ構造体は次のようになる。 typedef struct ITEM { int item_type_id; int count; char name[32]; void *image; int mode_id; int map_effect_id; float map_factors[3]; int battle_effect_id; float battle_factors[3]; } ITEM;
ここでやるな バカども
続きはゲームスレで
セットオプションの話を華麗にスルーして遁走したバカ山の脳ミソが残念すぎるw
940 :
デフォルトの名無しさん :2014/01/06(月) 02:19:46.48
5つ買うと2shotチェキ的な
ここで続けてる奴はバカ
942 :
デフォルトの名無しさん :2014/01/06(月) 02:33:45.91
セットオプションって何? たぶん見たことない気がする
見たことなくても分かるだろ。
検索してもでてこない… セッティングオプションの略? だったら追加的設定って日本語で言ってほしいよな
セッティングオプションって何? たぶん見たことない気がする
>セッティングオプションって何? セッティングは英語で座り込みの意味。オプションはイタリア語で運動会のこと。
1+1=3
948 :
デフォルトの名無しさん :2014/01/06(月) 05:34:13.42
仕様をきいた限りでは if ( ( equip.weapon == 冥王の剣 ) && ( equip.shield == 冥王の盾 ) && ( equip.helmet == 冥王の兜 ) && ( equip.armor == 冥王の鎧 ) ){ charactor.attack = charactor.attack * 11 / 10; } とかでいいんじゃね?って気がする
949 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 05:42:45.39
それだと付けたり外したりを繰り返すとどんどん攻撃力が増える。 係数として扱うのが妥当
それ以前にアイテムと組み合わせを考えると地獄のようにifが増えるわけですが
装備の付け外しを繰り返すことでどんどん攻撃力の上がるバグw 無敵の9999999999999999999999999999999999ダメージでラスボス瞬殺も夢じゃない!
またハードコーディング厨か
953 :
デフォルトの名無しさん :2014/01/06(月) 06:33:19.74
なるほど。ならばフラグ群のビットフィールドを付けよう。 struct ITEM { union { unsigned long flags; struct { unsigned long bit0 : 1; unsigned long bit1 : 1; unsigned long bit2 : 1; ... };};}; これならいくつもメンバー変数はいらないし、組合せも計算しやすい
ゲームシナリオきちんと決めとけば構造体のメンバなんか自ずと決まる
959 :
デフォルトの名無しさん :2014/01/06(月) 09:08:59.10
ダメージの大きさは、大きいと配列に分ければよくね? 1無量大数〜1兆 a[100] 1超〜1億 b[100] 1億〜1 c[100]
960 :
デフォルトの名無しさん :2014/01/06(月) 09:11:50.59
ドラクエとかでたまに、会心の一撃とか与える時あるけど あのタイミングってアルゴリズム的にどうなってんの?
ドラクエはただのサイコロだろ 某大作RPGはアルゴリズム()を使ってたと聞いたが
ただの乱数だと偏りひどいし精神衛生上悪いわ 一定間隔内に必ず当たりが出るようガラガラ形式にした方がいい気がする
移動時のランダムエンカウントは偏らないように相当凝ったことしてたらしいな
964 :
デフォルトの名無しさん :2014/01/06(月) 09:44:06.57
ダンジョンによってモンスターが出る頻度が違うけど、あれはどういう アルゴリズム、やっぱりゲーム作るなら遺伝的アルゴリズとか勉強する 必要あるのかな
釣り針でか過ぎ
966 :
デフォルトの名無しさん :2014/01/06(月) 09:55:36.18
>>965 いやでも微妙に頻度違うよ、ああいう調整ってどうやってるんだろうか
やたらRPGの話題でるね
ゲー専のやつらって最初にC学ぶのかな。
969 :
デフォルトの名無しさん :2014/01/06(月) 10:08:16.17
IT離れって最近顕著らしいけど、パズドラみたいなのはやってるのに 本当にIT離れしてるの?
釣り針でか過ぎ
971 :
デフォルトの名無しさん :2014/01/06(月) 10:10:38.82
>>970 IT離れっていう項目はwikiにもあるよ
情報志望が4割減ってる大学も多いとか
女の人はwebデザインとか得意なのに、減ってるってちょっとやばくね?
困っています助けてください
乱数が偏るってなんだよw 乱れてねーじゃんw なんなら偏数じゃねw
>>960 たまに変わった攻撃を出したいなら乱数みてるんだろう
会心の一撃のような一発逆転はピンチのときに発生確率あげたほうが盛り上がるだろうな
ドラクエがどうやってるかは知らん
>>963 初期ドラクエは連続であたる事が多かったのに改良されたね
>>964 それこそガラガラ方式じゃないかな
>>968 Cから初めてC++/DirectXやUnityやるらしいよ
2年しかないからオチこぼれは拾わないだろうな
>>969 携帯やスマホの普及でパソコンほとんど触らないらしい
>>971 そういう意味のIT離れなら
ただ単純に条件が悪いから若者に見捨てられただけ
給料安くて長時間労働というイメージが広がった為
ITバブル後から落ち込んでるからずっと前からだよ
アメリカも厳しいらしいな
当時はよくニュースになってた
>>974 仕事とかでパソコン使わないならスマホで十分だしなあ
タブレットの普及もあるだろうけど
PSのハード自体は変わってないのに、初期と後期ではCGのクオリティの差が 天と地ほどの差があるのは何故ですか? 1994年頃の3Dゲームとかでかい四角いポリゴンの連続で凄く荒かったですが 1999年のFF9では、ムービーシーンが実写と思うくらい綺麗です。 言語の発達でしょうか?
ヒント: ムービーの内容は PSで再生しようと 今現在の最新PCで再生しようと まったくいっしょ
昔はハードの性能をフルに引き出すデータが作れなかった。
そうなんですか、じゃぁPSのハードを最大限引き出すデータを作れば PS4並になりますか?
スレチ
いや板違い
イタチ
プログラミングなんかやったってメーカーの人件費抑制に利用されるだけ 技術を提供するのでなく人件費抑制というサービスを提供するのが日本のIT企業 この国のIT技術者は正社員なのに派遣
ここでやるな 足りないにもほどがある
足りないからIT関連なんて土方やってんだろw
ネット無関係のプログラ民具の仕事もあるが…
988 :
デフォルトの名無しさん :2014/01/06(月) 13:01:17.56
スマホ対応
989 :
デフォルトの名無しさん :2014/01/06(月) 13:03:42.26
スマホ対応
990 :
デフォルトの名無しさん :2014/01/06(月) 13:05:43.78
プログラミング大好き
991 :
デフォルトの名無しさん :2014/01/06(月) 13:10:07.29
プロラミグング大好き
992 :
デフォルトの名無しさん :2014/01/06(月) 13:12:15.12
システムエンジニアになりたい 何故ならかっこいから
993 :
デフォルトの名無しさん :2014/01/06(月) 13:29:58.78
自由に歩けるrpgのエンカウントってどうなってるのかね マス単位で歩ける2drpgならエンカウント率を1マス2%とかにすればいいんだろうけど マス単位でなく自由に歩ける2d/3drpgはどうやってるんだろう
994 :
デフォルトの名無しさん :2014/01/06(月) 13:52:15.68
aaa
995 :
デフォルトの名無しさん :2014/01/06(月) 13:55:17.16
次スレでその話しようぜ! 取り敢えず埋めるわ
シームレスな地図切り替えのときに均質な密度で敵キャラを配置する。
次スレでは程度の低い板違いネタはもういい加減やめてくれ
ゲームプログラミングスレあるだろ
専用スレがあるって何度も言われてるのにやめないのって 嫌がらせをしてるのかと思われても仕方がないぞ
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。