- 1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.net]
- C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 C言語なら俺に聞け 144 https://mevius.5ch.net/test/read.cgi/tech/1514025223/ 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 159 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:49:55.49 ID:KRl4xBEA0.net]
- >>151
もともと標準mallocやfreeを使って自前realloc作るならという話の流れだっただろ
- 160 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:57:50.74 ID:Z8+ASG310.net]
- >>152
CSVファイルを読み込むプログラムは作った事ありますが CSVの仕様をどの位受け入れるかで複雑さも変わると思います。 この辺は汎用的に作るか、自分が処理したいCSVの仕様の範囲にするかで違うとは思います。 scanf系の処理はとても癖が強く、 よっぽど仕様に精通していないと填まります 私ならその道を行くのはやめます
- 161 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 00:01:01.54 ID:uYnnRgds0.net]
- >>152
grepでおk、マジで そんなことをCでやる馬鹿はいないから、ろくな参考情報がないのも当たり前。
- 162 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 00:04:33.43 ID:vDZ6bRaj0.net]
- "と , のエスケープと 1要素の中に改行を含む文字列周辺 RFCみて頭いたくなった
- 163 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 00:13:39.83 ID:euQ4hghrM.net]
- >>152
俺なら間違いなくpythonつかうね https://qiita.com/okadate/items/c36f4eb9506b358fb608
- 164 名前:デフォルトの名無しさん [2018/02/27(火) 07:16:02.83 ID:pdRg+OHax.net]
- 配列とかポインタとか難しいと聞いていたから心配していたけど
とりあえず基礎の解説書レベルなら分かった。やれやれ。
- 165 名前:デフォルトの名無しさん mailto:sage釣 [2018/02/27(火) 09:21:35.76 ID:uskldtVs0.net]
- 指定したサイズの2次元配列を確保する関数を設計してくれまいか?
- 166 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 10:07:05.72 ID:XfJ/ct090.net]
- >>159
無理じゃね? char (*dim_alloc(size_t width, size_t height))[width]; 最後の[width]がエラーになる[*]にしてもあかん []にすると通るには通るが、今度は char (*a)[3][4] = dim_alloc(3, 4); //型の不一致になる
- 167 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 10:08:23.25 ID:XfJ/ct090.net]
- あ、失礼
char (*a)[4][3] = dim_alloc(3, 4); 結果は同じだけど
- 168 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 10:55:55.07 ID:XfJ/ct090.net]
- できた
void dim_alloc(size_t, size_t, char (**b)[*]); int main(void) { size_t width = 3, height = 4; char (*a)[width]; dim_alloc(width, height, &a); } void dim_alloc(size_t width, size_t height, char (**b)[width]) { *b = (char (*)[width])malloc(width * height); } これならおk
- 169 名前:デフォルトの名無しさん [2018/02/27(火) 11:45:45.08 ID:r7ed+pq5a.net]
- ポインタの配列使っちゃえばいいじゃん。free()する時注意が必要だがアクセスがa[y][x]形式なのは同じだし。
- 170 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 11:48:09.27 ID:w9pRJ3lK0.net]
- 二次元配列とポインタの配列だと、使い方が違うでしょう
- 171 名前:デフォルトの名無しさん [2018/02/27(火) 12:21:42.40 .net]
- mallocされたサイズが分からんとか何言ってるの?
gccもVCも確保サイズを返す関数を提供してるだろ
- 172 名前:デフォルトの名無しさん [2018/02/27(火) 12:27:42.17 ID:r7ed+pq5a.net]
- >>164
確保時と解放時が違うが読み書きアクセスする時の表現は同じにできる。
- 173 名前: mailto:sage [2018/02/27(火) 12:30:04.09 ID:CvenUVT40.net]
- >>159
gcc6 では一筋縄ではいかなくなっているね…
- 174 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 12:35:33.45 ID:XfJ/ct090.net]
- >>165
非標準のね
- 175 名前: mailto:sage [2018/02/27(火) 17:51:59.04 ID:CvenUVT40.net]
- >>159
できた! https://mevius.5ch.net/test/read.cgi/tech/1434079972/36
- 176 名前: mailto:sage [2018/02/27(火) 18:02:32.91 ID:CvenUVT40.net]
- >>162
>>159 >char (*a)[width]; これに値をいれないといけないし、そもそも、それも含めて malloc() してほしい、のでは
- 177 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 18:07:21.76 ID:BEzsaLeta.net]
- ああ。先頭にポインタを詰め込んで一発で全部free()できるようにしたのか。
- 178 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 19:24:56.97 ID:LuvO3mbWM.net]
- >>165
非標準だし、そもそもそんなものを使う必要は滅多にない
- 179 名前:デフォルトの名無しさん [2018/02/27(火) 19:27:39.38 .net]
- >>168,172
上の方でmalloc作者じゃなきゃrealloc作れないっていう主張があったから、普通は処理系で専用関数を提供してるだろって話
- 180 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 19:47:16.45 ID:jvpYfXKk0.net]
- >>159
わざわざ関数を設計しなくても、例えば3次元配列なら int ary[dim_z][dim_y][dim_x]; int (*ptr)[dim_y][dim_x] = malloc(sizeof(int) * dim_z * dim_y * dim_x); とやれば ary と ptr は同等に扱えないかな。 ptrはfree()する必要があること、sizeofの対象にしたとき同じ値を返さないことは 別関数を作っても同じだし。
- 181 名前:デフォルトの名無しさん [2018/02/27(火) 19:54:46.22 .net]
- >>159は二次元配列を確保とは言っているがインタフェースは特に注文ないんだからxとyと型サイズを掛けて(必要ならアラインメント考慮も入れて)mallocしてvoidポインタを返せばいいよな
- 182 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 20:35:43.21 ID:XfJ/ct090.net]
- >>174
別関数を作っても同じとは思わないな void dim_alloc(size_t, size_t, char (**)[*]); void dim_free(size_t width, char const volatile (*head)[width]) { free((void *)head); } dim_allocが内部的に割り付けに使っている手段を dim_freeに隠蔽する意味はあるんだから
- 183 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 20:42:39.05 ID:LuvO3mbWM.net]
- >>173
> 上の方でmalloc作者じゃなきゃrealloc作れないっていう主張があった そもそもその主張がおかしいだろ
- 184 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 21:38:07.83 ID:ejzPWrTva.net]
- >>177
だから、その主張はおかしいって話の流れだったろ
- 185 名前:デフォルトの名無しさん [2018/02/27(火) 23:15:01.44 ID:7DMjjd1qx.net]
- テトリスのプログラムって難しい方なの?
- 186 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 23:18:17.42 ID:w9pRJ3lK0.net]
- そんなには難しくはないと思う
作る人がグラフィック処理を理解していて キー入力のリアルタイム処理をこなせればね
- 187 名前: mailto:sage [2018/02/27(火) 23:20:17.44 ID:CvenUVT40.net]
- >>179
自分で組むためにはいろいろと段取りが必要で結構難しい部類になるかと思います 一時間で組む、とかいうやつも下準備はしてあったと思います
- 188 名前:デフォルトの名無しさん [2018/02/27(火) 23:26:02.43 ID:7DMjjd1qx.net]
- PetiteTech にあるテトリス
ブロックパズルの作り方 だと これはどうなの?
- 189 名前:デフォルトの名無しさん [2018/02/27(火) 23:31:30.01 ID:7DMjjd1qx.net]
- 高校生ぐらいが無理なく取り組めるゲームプログラムって
無いですかね?もちろん初心者。
- 190 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 23:54:04.69 ID:8YslYmAQ0.net]
- パズル系は楽そうに見えるけど、判定部分を作るのがキツいと思う
まずは固定画面でブロック崩し 次は横スクロール画面でスーパーマリオもどきぐらい 描画ライブラリを自作出来なかったら dxlib とかのフリーライブラリが使える 2Dに慣れたらUnityのフリー版で3Dゲーム作ってみるのもいい
- 191 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 00:04:51.75 ID:8c8qszi40.net]
- ここに来て何でこんなに初心者が沸いているのか分からんが、
スレ分けた方がいいんじゃないか? というか、上級者用のスレがあったら紹介してくれ。俺がそっち行くから。 >>183 高校生なら学校の勉強しとけ。特に数学。 俺はゲーム畑ではないが、今ですらエンジンは統合されつつあり、 フレームワーク化は今後ますます進む。というか、そうならない理由がない。 そのとき、中途半端にCが出来ても使い物にならない。 ゲームプログラミングは上位のフレームワーク上の部分と 下位のゲームエンジンの部分に分離され、Cが担当するのは後者で、 当たり前のように座標を使いこなし、ゴリゴリにチューニングすることが求められる。 つっても通じないだろうが、多分高校生の考えるゲームプログラミングなら、 C#でunity使うのが今風なんじゃね?そっちやっとけよ。
- 192 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 00:42:29.18 ID:QXjyWHPf0.net]
- そもそも枯れた技術のC言語スレで上級者なんているのかな・・・?
- 193 名前: mailto:sage [2018/02/28(水) 00:49:49.08 ID:8h6/NeTB0.net]
- >>186
>>159 をサクッと解ける人は上級者かもしれません、私は size(int)=sizeof(int *) を仮定していたために酷くはまりました
- 194 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 01:07:30.80 ID:8c8qszi40.net]
- >>186
むしろお前含めて一通りも使えない馬鹿が沸きまくっていることが問題だ。 それでも初心者は初心者同士で好きにやればいいが、 元々居た連中は逃げるしかない。 大体、>>184も間違いだ。 そもそもプログラミングすら出来ない奴がCから始めることが間違っている。 今は昔みたいにCしかない状況ではない。他に適した言語がいくらでもある。 だから「C初心者」は許容するとして、「プログラミング初心者」はお帰りください、でいい。 というか、それが本人の為だ。 「判定部分」は言語に依らない。 だから「判定部分を作るのがキツい」のなら、まずその程度簡単に出来るまで他言語で鍛えろ、でしかない。 それで、速度的に問題がある場合はそこをCに切り替えていくわけでさ。 (俺は使ったこと無いから推測だが、)普通の当たり判定ならエンジン側で当然持ってるだろ。 落ちゲーもそれなりの歴史はあるし、判定ルーチンがエンジンにあってもおかしくない。 そもそもテトリスの判定(一列埋め)が難しいという時点で論外だし。 お前は>>184が本人の為になるとでも思ってるのか? 高校生なら学校のお勉強しとけ、がよっぽどマシだろ。 そもそも高校生が2chするのが間違っていると思うし。
- 195 名前:デフォルトの名無しさん [2018/02/28(水) 01:09:56.20 ID:3MQnmRRma.net]
- >>188
そんなに不満ならスレ立てれば良いのでは? 上級者が集まったらどんな話題が出るのか興味あります
- 196 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 01:15:14.33 ID:m1ANm8An0.net]
- 上級者かそうで無いかは、どの辺で分けるの?
もしかして年齢?
- 197 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 01:20:42.25 ID:QXjyWHPf0.net]
- ここにいる自称上級者の人達は、C++やC#なら標準で使える様な物を何で再発明しているんだろう?
ポインタ返すだけの関数だとメモリオーバーランが検知出来ないから業務では危なくて使えないし、 バッファへのポインタは別ソース内にstaticで隠蔽してintとかのハンドルだけ返して、 引数範囲チェック付きのget,setと、ハンドルでfreeする関数まで作らないと正解とは言えない
- 198 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 01:45:42.72 ID:8c8qszi40.net]
- とりあえず他の人の反応見て週末にでも俺が立てるよ。
テンプレは>>1踏襲だが、以下に変える予定。 スレタイ:C言語相談室 C言語の話題のみ取り扱います C++の話題はC++スレへ 上級者専用です。 10,000行程度のソースを取り扱ったことがない人は以下スレへどうぞ。 (このスレ) >>190他 Cなら10k行で切っても人数集まるんじゃないかな?と思っている。 ゆずって5k行くらいにしとくか? 或いはC++も混ぜとくか?
- 199 名前:C++スレも「上級者専用にしていいんじゃないか」って話も出てたし。
ポシャったけど。 >>191 そもそもそういう思想ではないし、C++やC#がいいと思うのならそれらを使えばいいだけ。 個人的にはC使いは無駄に頑張りすぎていて、 もうちょっと上手く手抜きをすることも覚えるべきだとは思うが、 わざわざCスレで「何回目だよそれ?」をぶちかますお前も頭おかしいと思う。 [] - [ここ壊れてます]
- 200 名前: mailto:sage [2018/02/28(水) 01:53:16.04 ID:8h6/NeTB0.net]
- >>192
1万行ですか…気が遠くなりますね… こんなのなら書いたことがありますが… https://code.hackerearth.com/431130T https://code.hackerearth.com/7b7b82s
- 201 名前:デフォルトの名無しさん [2018/02/28(水) 01:54:28.86 ID:ifAjmiIg0.net]
- 作ったよ。
C言語上級者スレ https://mevius.5ch.net/test/read.cgi/tech/1519750371/
- 202 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 01:57:04.78 ID:ifAjmiIg0.net]
- あ、ごめん。リロードしてなかった。そういうテンプレは入れてないな。
じゃあ俺の作った方は放置でいいよ。新しいのできたら削除依頼しとこう。
- 203 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 02:06:17.61 ID:m1ANm8An0.net]
- >>192
1CU1ソースって仕事を昔してた。 モジュール分割すら認めてないサイトだった ソースはそれぞれ1万行越えてたな 最大2万行あったと思う 1日に600行書いたことはある でも自分を上級者だとは思っていない そんな自信はありません 書くソースは500行程度だな どんなに詰め込んでも2000行が限界だわ
- 204 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 02:13:49.37 ID:8c8qszi40.net]
- >>193
これ何故コードに展開したんだ?何かの実験か? それにしても意味があるとは思えないが。 さすがに手打ちとは思えないから、当然自動コード生成として、 その場合は入力は木データなのだから、歩くのが普通だろ。 100行程度で済む内容だと思うが。
- 205 名前: mailto:sage [2018/02/28(水) 02:19:55.16 ID:8h6/NeTB0.net]
- >>197
同じ課題についた別解答は次のとおりです https://ideone.com/vNZWaH まあこの程度の内容ではあるのです
- 206 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 02:38:51.42 ID:8c8qszi40.net]
- >>198
どういう課題かは知らんが、 データとして処理するべき案件をcase文にしてしまうという発想が間違っていると思うけどな。 普通は bool flags[6] でありなしを管理し、10行程度で書ける内容だぞこれは。
- 207 名前: mailto:sage [2018/02/28(水) 02:47:13.06 ID:8h6/NeTB0.net]
- >>199
ああ、それは説明が必要でしたね 確かにこの課題内容の「縛り」は理解不能でしたが、当時、それに知恵を絞った者も複数いたようです、宿題スレ、粘着の嵐でもう見る影もなく廃墟になってしまったんですが 課題内容 C言語で、 #include <stdio.h> int main(void){ char n; /* ここを埋める。変数の新たな定義 や,printf,scanf以外の関数の呼び出しは禁止 */ } な場合で、 1から6までの数字をキーボードから最小で5回受ける (同じ文字の入力や範囲外の文字の入力は 「無視しました」と出力) 残り一つの数字がわかる場合はキーボード入力 を待たずに決めてよい 最終的に、入力された順番とは逆順に入力 された文字を出力
- 208 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 03:11:31.80 ID:8c8qszi40.net]
- >>200
クソ問題はやるだけ無駄だぞ。 大体そういうのを考えた奴は実際はプログラマではないことが多い。 だからどういう事が実際に必要なのか分かってないのさ。 K&Rにしても禿本にしても、演習課題付けてくれてるだろ。あれをやる方が1万倍マシ。 或いはテトリスなりを実際に自分で作った方がいい。 少なくともそこでは「実際に必要なこと」しか要求されない
- 209 名前:わけでさ。
スタックを1バイトも使ってはいけない状態で、 展開したコードならどれだけ大きくてもいいとか、あり得ないよ。 スタックは128バイトまでな、とかならまだ分かるが。 [] - [ここ壊れてます]
- 210 名前: mailto:sage [2018/02/28(水) 03:20:22.48 ID:8h6/NeTB0.net]
- >>201
あはは…そのとおりですね 非常識・無常識でウケを狙ったりもして楽しかったんですが 今残っているスレとしては、ここが雰囲気が似ていますね https://mevius.5ch.net/test/read.cgi/tech/1514772904/ C 言語の宿題に対して執拗に prolog で書いていた人もいました、いつも凄いとおもっていました
- 211 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 04:52:04.37 ID:u7A4CcwO0.net]
- >>199 bool ?
- 212 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 05:21:30.33 ID:sJxURYwy0.net]
- 普通の有限オートマトンやんな
- 213 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 08:56:58.23 ID:57y2KSxK0.net]
- 無限オートマトン ってどんななの?
- 214 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 09:12:27.49 ID:MJOJ5lH0M.net]
- 状態数が有限じゃないってことだけど、解析できないし分類上も有用じゃないので、現実には扱わないよ
- 215 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 09:52:53.28 ID:eOQjYTv40.net]
- >>183
市販品=プロの作品を真似しようったってそんなの無理だ 必要なのはアイディアの発想力、つまり遊びのセンスだ たとえばキーボードを壁に吊して射的ゲームとかなら プログラム的には簡単だろ
- 216 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 11:17:44.41 ID:A9USqIB/0.net]
- >>183
「ヒット・アンド・ブロウ」や「ハングマン」あたりかな。 乱数ベースの当て物に飽きたらテキストアドベンチャーに移行。 自然言語処理に至る。 …真に受けないでくれよ。
- 217 名前:デフォルトの名無しさん [2018/02/28(水) 12:31:00.24 ID:ZStODBz1a.net]
- キーボードを壁に吊るしてって、斬新なアイディアだな。
- 218 名前:デフォルトの名無しさん [2018/02/28(水) 12:47:25.24 ID:ZStODBz1a.net]
- そういや昨日秋葉に行ったらUSB接続で反対側が何にも繋がってないやつで、自分でスイッチ繋げて入力用の何かを自作できるっていうの売ってたな。(確か東映無線にあった)
一応ハードウェア工作を含んで尚且つOS経由でUSBからの入力をしなければならないが、キーボードを壁に吊るすぐらいでは飽き足らない人はやってみたらどうかな。
- 219 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 14:13:55.34 ID:nUmzOd5xa.net]
- >>186
グラフィカルなものとかアクション性のあるものとかは敷居が高いから、 まずはオセロや五目並べあたりをCUIで作ってみるのが取っつきやすいかな。
- 220 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 14:15:02.50 ID:nUmzOd5xa.net]
- >>186ではなく>>183だった
- 221 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 20:10:01.78 ID:DO+q01hP0.net]
- getch使ってザッザッザッザッザカリテ
- 222 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:12:07.60 ID:sIMYGGyya.net]
- cursesだな。
- 223 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 22:05:24.10 ID:5kf5T6va0.net]
- テトリスとぷよはそんなに難しくなかったなぁ。
省メモリで作ると果てしなく大変だけど、富豪的に作れば大したことない。 オセロとかもそうやな。富豪的に作れば難易度は各段に下がる。
- 224 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 22:10:23.35 ID:LDTKKB+20.net]
- >>208
高校生というか中学生レベルかもしれんが、パソコン買ってBASICで最初に作る定番だな。懐かしい。 ヒット・アンド・ブロウ(マスターマインド)って簡単な割に意外と遊べるんだよな。 あとブラックボックスなんかも。
- 225 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 23:46:39.93 ID:5kf5T6va0.net]
- 対戦マスターマインドとか簡単で面白いカモな。
伏せられた一つの答えを解きあう感じの。 敵作る経験にもなるし。
- 226 名前:デフォルトの名無しさん [2018/03/01(木) 00:11:06.23 ID:Ajqb03Rpx.net]
- それぞれ
- 227 名前:ありがとうございます。ヒットアンドブロウって初めて聞きました。
確かに学校の勉強も大事ですね。数学検定準2も終わったので(多分合格) 中3・高1のメンバーですが。2級までの間、AO入試にプログラム使えないかと 思って(将来的にも使えるようにしたい)勉強し始めています。 (立命館のあいちゃれとか参加してみたいとか・・・)まあそんな感じ。 [] - [ここ壊れてます]
- 228 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 09:43:11.48 ID:O9YoI3Ipa.net]
- >>216
BASICで・・・30年以上前の話かな・・・
- 229 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 09:57:54.68 ID:KMinam3V0.net]
- BASICか。。。
始めて作ったのは 敵がいないパックマンに バック走行のレーシング マシン語おぼえて任意方向のスクロールができるようになったら ボスコニアンとかゼビウス 敵キャラはマシン語より難しい 完全にランダムな動きはすぐできるが 自機を狙ってくるやつの思考ルーチンは奥深い
- 230 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 13:15:16.58 ID:vHclpfSxM.net]
- ハングマンはわりと簡単に作れてわりと楽しめるよ
英語の勉強にもなる(かもしれない)
- 231 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 13:42:17.24 ID:EAWoI55s0.net]
- >>220
「バック走行のレーシング」て発想はなかった。 俺は「風船を背負って縦穴を落下する」という設定だった。 …そういや、今のプログラム初心者は「とりあえずスター・トレック」で ゲーム作り始めないのね。 真面目な話、BASICでINPUT命令を使うのに比べると Cでユーザーからのキーボード入力を受け取るのは面倒なんだよね。 そのせいで同じネタでもプログラム課題としての難度がいくらか上がる。
- 232 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 14:39:39.65 ID:pSYCUqTH0.net]
- conio.hを発見して非標準に絶望するまでが一セット。
俺、発見するのに数年かかったんだぜ。 BASICで3日でできたことがなんでできんのじゃーって悶えたわ。
- 233 名前:デフォルトの名無しさん [2018/03/01(木) 15:52:58.39 ID:AvQj/v1Qa.net]
- cursesライブラリの方が対応している端末が多くてほぼ標準なんじゃないかな
- 234 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 16:10:34.41 ID:KMinam3V0.net]
- 非標準ておまえら。。。
// basic_like.h int inkey(void); こんなん一発作っときゃ終わりだろうがよ
- 235 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 17:04:57.73 ID:3FNdba4V0.net]
- 自分の使ってるコンパイラの枠組みの中だけで実装できればまだいいんだが…
めんどくさいので既存のものを探すことにになる
- 236 名前:デフォルトの名無しさん [2018/03/01(木) 18:26:02.35 ID:AzZlAoZA0.net]
- CよりC++使うべきでは?
- 237 名前:デフォルトの名無しさん [2018/03/01(木) 18:33:42.83 ID:AvQj/v1Qa.net]
- 今さらC++使う気にはなれないな
- 238 名前:デフォルトの名無しさん [2018/03/01(木) 18:46:09.21 ID:5P8YUW6ka.net]
- マスターマインドは
正解にたどり着くまでの 最短最速最適な質問の仕方 を次の一手で出すアルゴリズム考えたな 4列だったら最大7手未満とかそんなやつ
- 239 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 21:26:58.79 ID:pSYCUqTH0.net]
- >>224
ウインドウズで開発してるから、VCはconioもってるんだよな。 ただ、布教できなくて悶える。ソース配布できない。 GCCも持ってない環境あるからなぁ。
- 240 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 21:28:15.90 ID:pSYCUqTH0.net]
- マスターマインドのAIはダサいのは作ったことある。
正解にはたどりつけるけど、パーミテーションでグルグル回す奴だから回答がキモイ。 そして遅い・・・。
- 241 名前:デフォルトの名無しさん [2018/03/02(金) 05:26:58.29 ID:btKfsNEv0.net]
- >>230
まあ、非標準だから仕方ない。そういうのは条件コンパイルとか、たくさんあるなら環境ごとに別のソース
- 242 名前:ファイルにしてビルド時に選択とか。
そういうことをちゃんとやってるオープンソースソフトウェアが参考になるかも。 [] - [ここ壊れてます]
- 243 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 06:44:50.16 ID:bNTu0vGw0.net]
- 待機なしの1キャラ入力は標準に欲しいね
- 244 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/02(金) 07:35:26.90 ID:Ht5IxdGD0.net]
- 日本語どうやって入力するんだ?
- 245 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 09:02:00.75 ID:7oxMlhUX0.net]
- >>225
にいさんむむむ でキーリピート解除
- 246 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 22:53:07.31 ID:PBdn8yjo0.net]
- >>192
立てた。 C言語相談室(上級者専用) https://mevius.5ch.net/test/read.cgi/tech/1519998483 老害が来てもウザイので「10,000行程度のソースを扱えない人は」と現在状態に変更した。 上級者には一朝一夕では成れない。 初心者は文法事項にばかりに目が行きがちだが、 今日覚えれば明日から使える文法事項で練度を測るのはナンセンスだ。 これを含めて、意見については新スレで受け付ける。 >>195 削除よろ
- 247 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 23:05:02.75 ID:Wy5zsGfp0.net]
- >>234
UTF-8型というものはない。 wchar_tにウニコードかOSの文字コードが入ってることを期待しよう。 まぁ、stdinをgetchで読んで解析とかかな。またはfgetsで全部読むとか。 世知辛いのじゃー。
- 248 名前:デフォルトの名無しさん [2018/03/03(土) 19:55:40.33 .net]
- >>237
一定のchunk sizeでreadして1byteずつ解析やな
- 249 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 20:06:25.92 ID:B47zIri70.net]
- あ、そうか。
UTF-8って生バイトfreadしないといけないのか。 失念してた。
- 250 名前:デフォルトの名無しさん [2018/03/03(土) 20:54:25.83 ID:usZqppoC0.net]
- >>236
削除依頼出して誘導の書き込みしておいた。
- 251 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 09:51:40.56 ID:/AI+3Uf1a.net]
- おまいらってすごいね
C検定の1級とか余裕なんだろね
- 252 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 17:53:13.34 ID:9DD6RFWE0.net]
- いやいや、これでもISO/IEC 9899:2011のつまみ食いをしてるだけですよ
昔のCと違い、今のCは付き合ってらんないところが結構あるんで
- 253 名前:デフォルトの名無しさん [2018/03/04(日) 23:51:40.13 ID:8NE8Y0sUx.net]
- 10,000行程度のプログラムで何ができるのか想像が出来ん。
- 254 名前:デフォルトの名無しさん [2018/03/05(月) 00:51:13.54 .net]
- 10000行程度を書いた経験だろ
全体だと30万行とかだろ
- 255 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 01:04:58.69 ID:FpxBMBRn0.net]
- 一プロジェクトで1万行はないな。趣味だから。
トータルならそれ以上書いてるけど。
- 256 名前:デフォルトの名無しさん [2018/03/05(月) 01:26:13.77 ID:LCMEVuoA0.net]
- >>241
それってここに書いてある一級? https://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%83%BD%E5%8A%9B%E8%AA%8D%E5%AE%9A%E8%A9%A6%E9%A8%93 だったら特に検定受かってなくてもそういう人だらけじゃないかな。
- 257 名前:デフォルトの名無しさん [2018/03/05(月) 01:35:06.01 ID:LCMEVuoA0.net]
- 一万行ねえ。しかしあまりに行数が多くなるとするとC言語を使うこと自体が適切ではなかった可能性も出てくるよな。
あるいは何か設計がまずいか、書き方がまずいか。 何れにしてもプログラムが多くなればなるほど人間がバグを作り込んでしまう率が高くなり更に全体の把握が困難になってくる。
- 258 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 02:35:53.76 ID:FpxBMBRn0.net]
- 最高効率で1万行ってやりたくないなぁ。
ぜったゲシュタルト崩壊起こす。
- 259 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 02:49:21.31 ID:udBqLrh50.net]
- 普段から1万行程度書いてる上級プログラマが
今から模範演技を見せてくれそうな予感
|

|