入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ
入門書おわた
↓
コンソールでゲーム製作
↓
DXライブラリでも使ってゲーム製作
こういう順番で段階的にやって行きたい
基本は
1.詳しい人がコンソールのゲームでお題を出す
2.初心者が作る
3.できるまで自分で調べて頑張る
4.どうしても無理ならソース晒して教えてもらう
5.完成したらソース晒して、他の製作者のものと比べてウマー
とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
【入門書クリア前提】初心者用段階的ゲーム製作スレ
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2008/12/21(日) 10:01:44ID:XeH+Z5e973おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 13:32:16ID:e0/X2/aD >>7が難しいとか
自分らで勝手に難しくしてないか?
マップの表示 もうできたな
敵の位置ランダムで表示 今回の宿題や
自分とゴールと通過地点の表示 敵がいないとこに表示しないとな
移動は上下と左右のみターン製 ここか難しいのは?
マップの仕様よう見てみ ヒントは縦横同数やで
障害物はない敵の動きは任せます 別に時機によって来るなんていってないぞ?
こういう問題解くときは自分で紙に書いていろいろ試してみ
例えば一番上の行にいるときに上に行かれんよな
ではどうすれば今一番上にいるか?ってことがわかるかとか
規則さがしてみ
自分らで勝手に難しくしてないか?
マップの表示 もうできたな
敵の位置ランダムで表示 今回の宿題や
自分とゴールと通過地点の表示 敵がいないとこに表示しないとな
移動は上下と左右のみターン製 ここか難しいのは?
マップの仕様よう見てみ ヒントは縦横同数やで
障害物はない敵の動きは任せます 別に時機によって来るなんていってないぞ?
こういう問題解くときは自分で紙に書いていろいろ試してみ
例えば一番上の行にいるときに上に行かれんよな
ではどうすれば今一番上にいるか?ってことがわかるかとか
規則さがしてみ
74おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 14:04:46ID:e0/X2/aD すまんもう一個だけ書かせてな
考える力を見につけるのがゲームつくりでは一番大切やと
思ってる。これは>>1の言われたことそのままハイハイやってても身に付くわけないし
と同じや、考える力どれくらいあるのか試す問題出すな
三角形の面積は底辺*高さ割る2である
1行目に1個目の三角形の底辺を2行目に1個目の高さ
3行目に2個目の底辺4行目に2個目の高さ
を書くものとしたとき以下の場合どうすれば最速かつ簡易にどちらが大きいかわかるか?
プログラムとそれ以外(現実での方法)両方の方法を答えよ
一問目
1
2
1
3
二問目
12、00000012
144、5412478197
12、4512451
144、5412787
プログラムは読み込みとかかかなくていいよ
1行目を変数Aとかでおk
これで考える力あるかわかるで
考える力を見につけるのがゲームつくりでは一番大切やと
思ってる。これは>>1の言われたことそのままハイハイやってても身に付くわけないし
と同じや、考える力どれくらいあるのか試す問題出すな
三角形の面積は底辺*高さ割る2である
1行目に1個目の三角形の底辺を2行目に1個目の高さ
3行目に2個目の底辺4行目に2個目の高さ
を書くものとしたとき以下の場合どうすれば最速かつ簡易にどちらが大きいかわかるか?
プログラムとそれ以外(現実での方法)両方の方法を答えよ
一問目
1
2
1
3
二問目
12、00000012
144、5412478197
12、4512451
144、5412787
プログラムは読み込みとかかかなくていいよ
1行目を変数Aとかでおk
これで考える力あるかわかるで
2008/12/22(月) 14:45:11ID:7HSkpjqK
>>73-74
「俺が好きなフルーツは何でしょう?」
「ええっと、バナナかな?」
「ぶっぶー。イチゴだよ。君には考える力が足らんな。滝にでも打たれて来い。」
っていう会話が頭に浮かんだ。
それはともかく>>7は説明が足りないよ。
GUIなのかCUIなのか?
GUIだとしたらWinAPI使うのか、何かのライブラリでラッピングするのかわからないし。
マスの表現方法についてだって、ドラクエみたいな表現なのか、クォータービューなのか
あるいは「敵1:右に3マス、上に2マス」みたいな文字による表現なのかわからない。
プレイヤーの移動はキーボードで行うのかマウスで行うのかさえわからない。
そもそも誰がプレイヤーを動かすのかについてさえ言及が無い。もしかしたらAIが勝手にゴールを探すのか?
いきなりそういうことを考える力を求められてるんなら敷居が高すぎるよ。
「俺が好きなフルーツは何でしょう?」
「ええっと、バナナかな?」
「ぶっぶー。イチゴだよ。君には考える力が足らんな。滝にでも打たれて来い。」
っていう会話が頭に浮かんだ。
それはともかく>>7は説明が足りないよ。
GUIなのかCUIなのか?
GUIだとしたらWinAPI使うのか、何かのライブラリでラッピングするのかわからないし。
マスの表現方法についてだって、ドラクエみたいな表現なのか、クォータービューなのか
あるいは「敵1:右に3マス、上に2マス」みたいな文字による表現なのかわからない。
プレイヤーの移動はキーボードで行うのかマウスで行うのかさえわからない。
そもそも誰がプレイヤーを動かすのかについてさえ言及が無い。もしかしたらAIが勝手にゴールを探すのか?
いきなりそういうことを考える力を求められてるんなら敷居が高すぎるよ。
2008/12/22(月) 14:48:23ID:w5ew+bX6
本当なら今頃ほんのりえっちなAAが表示されたコンソール画面がうpされてたんだろうな
77おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 15:01:29ID:oKMTflVf だからw
勝手に難しくしてるって
何らかの形で表示って書いてありますがな
勝手にゴールを探すのか?も何ぜ難しくするの?
自分であれに当てはまるってやつでいいんよw
上下の移動でも一番上からしたに移動してもいいんやで
自由だ
>>74の答え書いてみないか?
ヒントはな、答えは小学生が解いても俺と同じ時間で説ける方法や
勝手に難しくしてるって
何らかの形で表示って書いてありますがな
勝手にゴールを探すのか?も何ぜ難しくするの?
自分であれに当てはまるってやつでいいんよw
上下の移動でも一番上からしたに移動してもいいんやで
自由だ
>>74の答え書いてみないか?
ヒントはな、答えは小学生が解いても俺と同じ時間で説ける方法や
78おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 15:34:38ID:oKMTflVf あとなホントは書きたくないって思ったんやけどな
>randの実装では下位ビットがそれほどランダムでは無い
rnd=1+(int) (9.0*rand()/(RAND_MAX+1.0));
これおかしいとおもうんやけど
おいちゃんの知識が悪いんかな
よかったら書籍かホムペ教えてくれへんか?
>randの実装では下位ビットがそれほどランダムでは無い
rnd=1+(int) (9.0*rand()/(RAND_MAX+1.0));
これおかしいとおもうんやけど
おいちゃんの知識が悪いんかな
よかったら書籍かホムペ教えてくれへんか?
79名前は開発中のものです。
2008/12/22(月) 15:38:16ID:or3ZWGZi >>75
むしろ
「君は何のフルーツが好きだ?」
「ええっと、バナナかな」
「ぶっぶー。食事の時にバナナなんて食べてはいけません。ちゃんと、ごはんと味噌汁を食べましょう。君には常識と考えが足りない」
「・・・・・」
こうだと思う
前提条件も何もかもすっ飛ばしていきなり、GUIを使わせたりキチガイとしか思えない
コンソールが駄目ならそれなりの理由を提示すべきだし
こいつのやらせようとしてることのほうがよっぽど敷居高いよね
むしろ
「君は何のフルーツが好きだ?」
「ええっと、バナナかな」
「ぶっぶー。食事の時にバナナなんて食べてはいけません。ちゃんと、ごはんと味噌汁を食べましょう。君には常識と考えが足りない」
「・・・・・」
こうだと思う
前提条件も何もかもすっ飛ばしていきなり、GUIを使わせたりキチガイとしか思えない
コンソールが駄目ならそれなりの理由を提示すべきだし
こいつのやらせようとしてることのほうがよっぽど敷居高いよね
2008/12/22(月) 15:48:29ID:7HSkpjqK
>>77
そりゃ、何を求められてるのかさっぱりわからないからなあ。
初心者はその簡単な方法さえもボキャブラリとして持ってはいないし、
自分で考えるにしても、最初から簡単な方法を思いつくとは限らない。
むしろ、自分で考えてしまったがためにおかしくて複雑な設計をしてしまうことは良くある。
>>74
最速とか簡易とかってよく分からない概念だよね。
意地悪な事言うとintは何ビット?とか書かれる数値は整数?小数?まさか分数とか無いよね。有効数字は?とか
とりあえず「一行目×二行目 > 三行目×四行目」 を満たすなら一個目が大きい。逆なら二個目が大きいって書くね。
1問目も2問目も同じ。プログラムも現実も同じ。
どう?俺の頭ってよさそう?
>>78
あ、何かおかしかった?
http://www.pinkdragon.net/DocumentsLibrary/contents/ja/Linux_man/rand.3.html を見るとそう書いてあったから
そうなのかーって思ったんだけど。
そりゃ、何を求められてるのかさっぱりわからないからなあ。
初心者はその簡単な方法さえもボキャブラリとして持ってはいないし、
自分で考えるにしても、最初から簡単な方法を思いつくとは限らない。
むしろ、自分で考えてしまったがためにおかしくて複雑な設計をしてしまうことは良くある。
>>74
最速とか簡易とかってよく分からない概念だよね。
意地悪な事言うとintは何ビット?とか書かれる数値は整数?小数?まさか分数とか無いよね。有効数字は?とか
とりあえず「一行目×二行目 > 三行目×四行目」 を満たすなら一個目が大きい。逆なら二個目が大きいって書くね。
1問目も2問目も同じ。プログラムも現実も同じ。
どう?俺の頭ってよさそう?
>>78
あ、何かおかしかった?
http://www.pinkdragon.net/DocumentsLibrary/contents/ja/Linux_man/rand.3.html を見るとそう書いてあったから
そうなのかーって思ったんだけど。
81おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 15:54:45ID:oKMTflVf 意地悪な事言うと
またか問題はそこにかいてあるやんかw
、は小数の意味やで
おしいな現実でそれでは遅いで
/2はなぜぬいたんやその理由が次のステップやで
サイトありがとなちょい見てみるな
またか問題はそこにかいてあるやんかw
、は小数の意味やで
おしいな現実でそれでは遅いで
/2はなぜぬいたんやその理由が次のステップやで
サイトありがとなちょい見てみるな
82おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 16:40:30ID:oKMTflVf 初めて知ったよありがとな
俺なりの答え書くな
ちょい意地悪問題だったんだけどな
論理ミスあったら言ってな
現実では底辺と高さの整数の桁数を足す大きいなら大きい
問題文で、で少数になる桁あわせてるやろ3桁区切りでないのは
他がないのでわかる、
あとは掛けるでなくて足す
この問題な3Dで自分からAとBどっちが近いかの
コード友人に見せたら訂正された時に出されたんや
真面目に公式当てはめないってな
なるほどって思うたで、あってるよな?
おいちゃん騙されてないよな?w
俺なりの答え書くな
ちょい意地悪問題だったんだけどな
論理ミスあったら言ってな
現実では底辺と高さの整数の桁数を足す大きいなら大きい
問題文で、で少数になる桁あわせてるやろ3桁区切りでないのは
他がないのでわかる、
あとは掛けるでなくて足す
この問題な3Dで自分からAとBどっちが近いかの
コード友人に見せたら訂正された時に出されたんや
真面目に公式当てはめないってな
なるほどって思うたで、あってるよな?
おいちゃん騙されてないよな?w
2008/12/22(月) 17:29:36ID:7HSkpjqK
>>82
俺は君の同僚じゃ無いんだから、そんな職場のローカル言語話されても意味分からんぞよ。
それに「3Dで」、「リアルタイムにオブジェクトの距離判定するけど」、「精度は適当でいいや」みたいな前提条件も
言ってもらわなきゃわかるはずないよ。
あってるかどうかは、その前提条件にモロに左右されるから何とも言えんね。
そのやり方だと、さっきの問題文ではどれも「大きさは同じ」って判定されるけど、それでいいの?
俺は君の同僚じゃ無いんだから、そんな職場のローカル言語話されても意味分からんぞよ。
それに「3Dで」、「リアルタイムにオブジェクトの距離判定するけど」、「精度は適当でいいや」みたいな前提条件も
言ってもらわなきゃわかるはずないよ。
あってるかどうかは、その前提条件にモロに左右されるから何とも言えんね。
そのやり方だと、さっきの問題文ではどれも「大きさは同じ」って判定されるけど、それでいいの?
84おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 18:16:55ID:oKMTflVf >精度は適当でいいや
まず「どっちが近いか」であってどれくらいか?ではないよ
3D距離測るので√ぬきはてきとうでないとおもうけど
要点は共通なのは省ける場合がある
面積問題だと*は+でもいい
、の場所は意地悪問題だよw
しかも間違ってるなホントにごめんな
面積なんだから各長さはかならず+の値
従って A*B>C*Dの場合
必ずA+B>C+Dよって現実でもプログラムでも
+で判定すのが簡単って事、
これに例外はないでしょ?
言いたいのはあなたが/2を抜いた理由を
>>7にも当てはめて見ればいいってこと
もちろんおうようとしてね
きっとなんて単純にできるんだって思うよ
あとはホントに難しく考えすぎだと思う
市販レベルのゲームが頭にあるから
難しいと想像してるだけでしょ。
当たり判定も入れろとは書いてないんだよ?
あって当たり前とは言わせないよ、
勝手に仕様追加して難しいとか言ってるんだから
でも実際はゴールに着いたかの判定と同じだけどね
何度も言うけど>>7に当てはまれば何でもいい
てかあなたは作れると思うw
まず「どっちが近いか」であってどれくらいか?ではないよ
3D距離測るので√ぬきはてきとうでないとおもうけど
要点は共通なのは省ける場合がある
面積問題だと*は+でもいい
、の場所は意地悪問題だよw
しかも間違ってるなホントにごめんな
面積なんだから各長さはかならず+の値
従って A*B>C*Dの場合
必ずA+B>C+Dよって現実でもプログラムでも
+で判定すのが簡単って事、
これに例外はないでしょ?
言いたいのはあなたが/2を抜いた理由を
>>7にも当てはめて見ればいいってこと
もちろんおうようとしてね
きっとなんて単純にできるんだって思うよ
あとはホントに難しく考えすぎだと思う
市販レベルのゲームが頭にあるから
難しいと想像してるだけでしょ。
当たり判定も入れろとは書いてないんだよ?
あって当たり前とは言わせないよ、
勝手に仕様追加して難しいとか言ってるんだから
でも実際はゴールに着いたかの判定と同じだけどね
何度も言うけど>>7に当てはまれば何でもいい
てかあなたは作れると思うw
2008/12/22(月) 18:44:14ID:bQrlLW0A
2008/12/22(月) 18:46:14ID:LFKaa8W/
>従って A*B>C*Dの場合
>必ずA+B>C+Dよって現実でもプログラムでも
>+で判定すのが簡単って事
3×2>1×5
つまり3+2>1+5ってこと?
揚げ足取りだけで終わりたくないから書いておくけど。
モデルの単純化による効率化・高速化はもちろん重要。
だけど、動くものが作れるようになった先の話で十分間に合うと思う。
おいちゃん氏、かなり優秀な人だと思うけど、天才様発言すぎる。
やりたいこと、もって行きたい方向が俺にも見えるだけに
TPOに合ってないというか空回りしてるなあと。
>必ずA+B>C+Dよって現実でもプログラムでも
>+で判定すのが簡単って事
3×2>1×5
つまり3+2>1+5ってこと?
揚げ足取りだけで終わりたくないから書いておくけど。
モデルの単純化による効率化・高速化はもちろん重要。
だけど、動くものが作れるようになった先の話で十分間に合うと思う。
おいちゃん氏、かなり優秀な人だと思うけど、天才様発言すぎる。
やりたいこと、もって行きたい方向が俺にも見えるだけに
TPOに合ってないというか空回りしてるなあと。
87おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 18:57:04ID:oKMTflVf ごめんwww
ほんとだ何これ結局/2抜くだけだったのか、
俺も実は初めこれだけだったんだよ、んでこれ教えてくれた
なんかサルみたいに図形切り貼りして
確かめとかやらされたんだけどなw
実は人を信用するなって教えてくれたんかなw
昨日も飯おごったのになw
やべっひょっとして√抜きもそうなのか?
誰か教えて;;
>>7も一応考えたんだがもう一回考えるんでまだ作るなよw
ほんとだ何これ結局/2抜くだけだったのか、
俺も実は初めこれだけだったんだよ、んでこれ教えてくれた
なんかサルみたいに図形切り貼りして
確かめとかやらされたんだけどなw
実は人を信用するなって教えてくれたんかなw
昨日も飯おごったのになw
やべっひょっとして√抜きもそうなのか?
誰か教えて;;
>>7も一応考えたんだがもう一回考えるんでまだ作るなよw
2008/12/22(月) 23:24:49ID:IFN4Pi9+
>>7
やりたいようにやってみた。自分のソース見ながら考えて進む感じ。
まさか3時間200行超えるとは。見積もり(想像)の1.5倍かかってる。
自分でも言いたいこと突っ込みどころは山ほどある。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8439.zip
クラスはなんとなく、関数ポインタは明らかな苦手意識あるんで
そのへんうまく使ってイベント処理をキレイにまとめられたらかっこいいかも。
やりたいようにやってみた。自分のソース見ながら考えて進む感じ。
まさか3時間200行超えるとは。見積もり(想像)の1.5倍かかってる。
自分でも言いたいこと突っ込みどころは山ほどある。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8439.zip
クラスはなんとなく、関数ポインタは明らかな苦手意識あるんで
そのへんうまく使ってイベント処理をキレイにまとめられたらかっこいいかも。
2008/12/22(月) 23:35:30ID:v8weaYQN
流れをぶった切るけど段階学習でコンソールなら数当て(ハイアンドロー、
コードブレイカー)、4択クイズ、タイピング、しりとり(英語、日本語)の順が
いいとおも
初心者向けなんだから(特に最初は)1ステップは小さいほどいい
コードブレイカー)、4択クイズ、タイピング、しりとり(英語、日本語)の順が
いいとおも
初心者向けなんだから(特に最初は)1ステップは小さいほどいい
2008/12/22(月) 23:52:10ID:IFN4Pi9+
数当ては>>19-20でやらせた。ていうか勝手にやった。
次はヒット&ブロー(コードブレイカーby女神転生)か山崩しあたり。
タイピング→4拓クイズで、ファイル処理やら構造のカプセル化なんかを意識させて。
次はヒット&ブロー(コードブレイカーby女神転生)か山崩しあたり。
タイピング→4拓クイズで、ファイル処理やら構造のカプセル化なんかを意識させて。
2008/12/22(月) 23:55:22ID:7HSkpjqK
2008/12/23(火) 06:44:34ID:1QOnu95u
かんたんな数当てとかは良いね
ってもう終わったみたいだけど
まあ一行表示で済むようなものならいっそのこと
windowのタイトルバー使っておなじことやったりするといいかも
ってもう終わったみたいだけど
まあ一行表示で済むようなものならいっそのこと
windowのタイトルバー使っておなじことやったりするといいかも
93おいちゃん ◆DlyW/s8ibQ
2008/12/23(火) 07:40:42ID:brrxgnQX >>88見させれいただきましたで
int gMap[HEIGHT][WIDTH];
で事象の全て管理してるんですよね?
ちょっと言い方違うかな、前回の分を保持してるものを使うのは
上記だけですよね?
そしてこのゲームは、敵の移動はしない時があるが自分は必ずする。
これだとゲーム性として緊張感とか戦略性が薄いので
(勘違いしないでくださいね次の課題のためにステップアップ
できるところをわざと問題で作って、それをあなたが次の問題だせるように
解いてくれたってことですんで)
次の課題は敵は動かない時は次回に移動量を貯めこめる
移動は同じく単一方向のみで溜め込んだ分は使い切る(範囲制限は今のまま)
でどうでしょ?
これで管理のしかたが変わる修正しないといけない問題になると思うんやけど
問題の出し方としてソクラテスの問答法をしてる感じなんやけど
こういうやり方ではだめかな?
int gMap[HEIGHT][WIDTH];
で事象の全て管理してるんですよね?
ちょっと言い方違うかな、前回の分を保持してるものを使うのは
上記だけですよね?
そしてこのゲームは、敵の移動はしない時があるが自分は必ずする。
これだとゲーム性として緊張感とか戦略性が薄いので
(勘違いしないでくださいね次の課題のためにステップアップ
できるところをわざと問題で作って、それをあなたが次の問題だせるように
解いてくれたってことですんで)
次の課題は敵は動かない時は次回に移動量を貯めこめる
移動は同じく単一方向のみで溜め込んだ分は使い切る(範囲制限は今のまま)
でどうでしょ?
これで管理のしかたが変わる修正しないといけない問題になると思うんやけど
問題の出し方としてソクラテスの問答法をしてる感じなんやけど
こういうやり方ではだめかな?
94おいちゃん ◆DlyW/s8ibQ
2008/12/23(火) 10:25:56ID:brrxgnQX >自分は必ずする。
間違いでしたごめんなさい
間違いでしたごめんなさい
9588
2008/12/23(火) 11:32:37ID:7Tc//R3b >>93
俺に課題出してどうするんだ。
ここまででも結構気を使うポイント多いよ実際。
>>1氏の>>19-20見て、その今の実力で>>88は作れないだろうと思う。
200行のソース書ける人相手に、本質にかかわらない十数行の改変させても意味無い。
今回のだったら、敵Pow2、敵Pow3までenumで増やして、敵移動ルーチンで消化する。
個々にLvやHPなんかのステータスが必要になるまで、意地でも構造体作らねえ!
RPGっぽい感じで、作った自分でも結構気に入ってしまってたりするんだこれ。
敵に当たったとき戦闘モードに切り替えて、そのときに敵の能力設定しても十分間に合うし。
気にしてるのが、通過点・イベントの書き方。
個別処理してるので、このままではどうしてもイベントが増えるたびに肥大化していくのが避けられない。
うまいことラッピングできればいいんだけど。
俺に課題出してどうするんだ。
ここまででも結構気を使うポイント多いよ実際。
>>1氏の>>19-20見て、その今の実力で>>88は作れないだろうと思う。
200行のソース書ける人相手に、本質にかかわらない十数行の改変させても意味無い。
今回のだったら、敵Pow2、敵Pow3までenumで増やして、敵移動ルーチンで消化する。
個々にLvやHPなんかのステータスが必要になるまで、意地でも構造体作らねえ!
RPGっぽい感じで、作った自分でも結構気に入ってしまってたりするんだこれ。
敵に当たったとき戦闘モードに切り替えて、そのときに敵の能力設定しても十分間に合うし。
気にしてるのが、通過点・イベントの書き方。
個別処理してるので、このままではどうしてもイベントが増えるたびに肥大化していくのが避けられない。
うまいことラッピングできればいいんだけど。
2008/12/24(水) 06:12:29ID:O6ch0loZ
かわいそうな>>1
2008/12/24(水) 09:07:07ID:pKNbMfli
>>1にもちっと根性ありゃ良スレだったかもね。
2008/12/25(木) 01:19:22ID:dzWiyeO4
2008/12/25(木) 08:14:49ID:ldpXmL3C
俺がつぶしたようなもんだな。
正直、すまんかった。
この手のスレでは、ソース出せない奴に文句言う資格ないって信念あるから、
ちょっとからかってみたかった。
きのうVIPで拾ったやつ。ソース入り。
WinMain(笑)でも、発表できるやつが正しい。
64 名前: 以下、名無しにかわりましてVIPがお送りします 投稿日: 2008/12/24(水) 12:33:44.10 ID:coeGrU4s0
ステージ間違えてた
http://www.dotup.org/uploda/www.dotup.org13272.zip.html
ちらついてた人テストプレイお願いします
正直、すまんかった。
この手のスレでは、ソース出せない奴に文句言う資格ないって信念あるから、
ちょっとからかってみたかった。
きのうVIPで拾ったやつ。ソース入り。
WinMain(笑)でも、発表できるやつが正しい。
64 名前: 以下、名無しにかわりましてVIPがお送りします 投稿日: 2008/12/24(水) 12:33:44.10 ID:coeGrU4s0
ステージ間違えてた
http://www.dotup.org/uploda/www.dotup.org13272.zip.html
ちらついてた人テストプレイお願いします
1001
2008/12/25(木) 08:26:15ID:gHJk9aT1 俺がC++とイチャイチャしてる間に一体何が………
101名前は開発中のものです。
2008/12/25(木) 09:13:42ID:+jZFnaM/ >ソース出せない奴に文句言う資格ないって信念あるから、
ちょっとからかってみたかった。
ぜんぜんわからないんだが
文句はどれも言ってないし
誰もからかわれてないように見えるんだが
>>88なのか?誰と戦ってるんだ
ちょっとからかってみたかった。
ぜんぜんわからないんだが
文句はどれも言ってないし
誰もからかわれてないように見えるんだが
>>88なのか?誰と戦ってるんだ
102名前は開発中のものです。
2008/12/25(木) 10:19:14ID:4QWifqYX1031
2008/12/25(木) 10:41:23ID:47eJt85M104名前は開発中のものです。
2008/12/25(木) 11:34:37ID:ldpXmL3C Hit&Blow作ろうぜ!
【ルール】
相手側に隠された4桁の数字を当てるんだ!
隠された数字は1〜9までで重複していない。
プレイヤーの提示する数字に対して、マスターがヒントを出していく。
ある桁に対して、答えの桁と一致したら1Hit。
桁は違うが、その数字を使っているなら1Blow。
答え 2468
入力 3456 のとき、
4のところで桁一致1Hit、6は両方に含まれているので1Blowとなる。
4Hitなら「おめでとう」表示して終了。
まずは、4桁の重複しない乱数を作成して表示することから始めよう。
それから、入力→判定。入力については難しいこと考えずにやりやすいように。
判定も、それっぽく動くようになってから矛盾する部分をつぶしていけばいい。
【ルール】
相手側に隠された4桁の数字を当てるんだ!
隠された数字は1〜9までで重複していない。
プレイヤーの提示する数字に対して、マスターがヒントを出していく。
ある桁に対して、答えの桁と一致したら1Hit。
桁は違うが、その数字を使っているなら1Blow。
答え 2468
入力 3456 のとき、
4のところで桁一致1Hit、6は両方に含まれているので1Blowとなる。
4Hitなら「おめでとう」表示して終了。
まずは、4桁の重複しない乱数を作成して表示することから始めよう。
それから、入力→判定。入力については難しいこと考えずにやりやすいように。
判定も、それっぽく動くようになってから矛盾する部分をつぶしていけばいい。
1051
2008/12/25(木) 11:45:26ID:47eJt85M1061
2008/12/25(木) 11:52:02ID:47eJt85M と、おもったけどめんどくさいから理論だけ
int ans[4]
for(it i=0;i<4;i++)
{
ans[i] = ansrand() % 9 + 1;
if(ans[i] == ans[i+1])
continue;
}
これで重複しない数字作って
int game(int x)
{
;xを4分割
;fscanfだっけ?
それであたりかどうか判定
}
あとはメインループ
こんでいいんじゃないのかな?
int ans[4]
for(it i=0;i<4;i++)
{
ans[i] = ansrand() % 9 + 1;
if(ans[i] == ans[i+1])
continue;
}
これで重複しない数字作って
int game(int x)
{
;xを4分割
;fscanfだっけ?
それであたりかどうか判定
}
あとはメインループ
こんでいいんじゃないのかな?
107名前は開発中のものです。
2008/12/25(木) 12:49:09ID:D78e/bq5 ソースはすでにバグってるけど、考え方組み立て方は大丈夫っぽいね。
入力は最悪1桁目から4桁目までバラバラに入力させてもいい。
今、そこで悩むのは時間の無駄だと思う。
入力は最悪1桁目から4桁目までバラバラに入力させてもいい。
今、そこで悩むのは時間の無駄だと思う。
108名前は開発中のものです。
2008/12/25(木) 13:13:31ID:4QWifqYX 即答できるの作って意味あるのか疑問だな
某本は最初からソウコバんが題材だし
プロで2時間素人で2日かけたら遅い
って書いてるみたいだし。
>>88が理解できないわけがない
1は言ってることがおかしいな
言語そのものは本で学んだくせに
ゲームの仕組みは人から教えてもらえるチャンスを
自分から放棄してる、これだと後々クレクレ君になるよな
某本は最初からソウコバんが題材だし
プロで2時間素人で2日かけたら遅い
って書いてるみたいだし。
>>88が理解できないわけがない
1は言ってることがおかしいな
言語そのものは本で学んだくせに
ゲームの仕組みは人から教えてもらえるチャンスを
自分から放棄してる、これだと後々クレクレ君になるよな
109名前は開発中のものです。
2008/12/25(木) 13:24:25ID:4QWifqYX >>107
ある桁に対して、答えの桁と一致したら1Hit。
桁は違うが、その数字を使っているなら1Blow。
にたいして
>それであたりかどうか判定
この課題の出題意図おもいっきり
飛ばしてるじゃねえかw
ある桁に対して、答えの桁と一致したら1Hit。
桁は違うが、その数字を使っているなら1Blow。
にたいして
>それであたりかどうか判定
この課題の出題意図おもいっきり
飛ばしてるじゃねえかw
110名前は開発中のものです。
2008/12/25(木) 13:41:17ID:tZ3uaTxD 俺もゲーム作りたいからプログラム始めて、入門書は済んだけど何しようって時期はあった
最初はGUIで四角形を表示できるようにして、それを入力で動くようにするっていう風に少しずつSTGに近づけていって完成まで行ったよ
俺は「Windowsゲームプログラミング」って本でGUIに入ったけど、これはあんまりオススメできない
>>1を見る限り「14歳からはじめる C言語わくわくゲームプログラミング教室」とかがいいんじゃないか?
俺は「Windowsゲームプログラミング」を初めて見たとき、「なんだこれ…全く分からない」と思った
でも原因は入門書の内容を理解してるつもりで、してなかっただけだった
DXライブラリのサンプルなんかすごい丁寧に書いてくれてる
分からない分からないって言ってたら進まない
何で分からないのか原因を考えて、それを潰していけばいい
最初はGUIで四角形を表示できるようにして、それを入力で動くようにするっていう風に少しずつSTGに近づけていって完成まで行ったよ
俺は「Windowsゲームプログラミング」って本でGUIに入ったけど、これはあんまりオススメできない
>>1を見る限り「14歳からはじめる C言語わくわくゲームプログラミング教室」とかがいいんじゃないか?
俺は「Windowsゲームプログラミング」を初めて見たとき、「なんだこれ…全く分からない」と思った
でも原因は入門書の内容を理解してるつもりで、してなかっただけだった
DXライブラリのサンプルなんかすごい丁寧に書いてくれてる
分からない分からないって言ってたら進まない
何で分からないのか原因を考えて、それを潰していけばいい
111名前は開発中のものです。
2008/12/25(木) 13:57:08ID:4QWifqYX 出題意図も書いてあげなきゃいけないんだろう
4桁はランダムで重複はない
入力もじが同じ桁で同じ数字hitなら
Blowかどうかは判定しなくていい(重複はないから)
hitでないなら別の桁でBlowかどうか判定する
そこでBlowならそれ以外の桁は、数字の違うランダムだから
(重複はないから)判定しなくていいことになってる。
でいいのかは、ルールがはっきりしていないので実はわからない。
プレイヤーは同じ数字に対して挑戦できるんだろうがすべて同じ数字に
してもいいのかわからない。
出題意図以外の部分書き込んでなんになる?
始めの問題でcin>>n;だけ書くのと同じだろ
正直課題でなくて、なになに作って解説してくださいの方がいいと思う。
4桁はランダムで重複はない
入力もじが同じ桁で同じ数字hitなら
Blowかどうかは判定しなくていい(重複はないから)
hitでないなら別の桁でBlowかどうか判定する
そこでBlowならそれ以外の桁は、数字の違うランダムだから
(重複はないから)判定しなくていいことになってる。
でいいのかは、ルールがはっきりしていないので実はわからない。
プレイヤーは同じ数字に対して挑戦できるんだろうがすべて同じ数字に
してもいいのかわからない。
出題意図以外の部分書き込んでなんになる?
始めの問題でcin>>n;だけ書くのと同じだろ
正直課題でなくて、なになに作って解説してくださいの方がいいと思う。
112名前は開発中のものです。
2008/12/25(木) 14:09:59ID:HaMdn/9b ゲームってC/C++じゃないと駄目なの?
113名前は開発中のものです。
2008/12/25(木) 14:14:10ID:8FA5a+hY114名前は開発中のものです。
2008/12/25(木) 14:19:37ID:zLYK7Trd >>112
そんなことはないけどメジャーだからいろいろアレでナニだね
そんなことはないけどメジャーだからいろいろアレでナニだね
115名前は開発中のものです。
2008/12/25(木) 14:21:08ID:aRJ94ifJ >>112
別にJavaでもHSPでもツクールでも構わないよ
別にJavaでもHSPでもツクールでも構わないよ
116名前は開発中のものです。
2008/12/25(木) 15:53:49ID:dcJ2PyO9 速度が遅い
ユーザーに新たにランタイムを入れてもらわないといけない
この2つが許容できない場合はC/C++やDで作る
ユーザーに新たにランタイムを入れてもらわないといけない
この2つが許容できない場合はC/C++やDで作る
117名前は開発中のものです。
2008/12/25(木) 16:00:18ID:aRJ94ifJ ランタイムを同梱するという技もあるけどね
昔のJava(1.4世代)ならそういう手が使えた。今のライセンスは知らない。
昔のJava(1.4世代)ならそういう手が使えた。今のライセンスは知らない。
118名前は開発中のものです。
2008/12/25(木) 16:09:10ID:Bjb9Ga/u119名前は開発中のものです。
2008/12/26(金) 20:55:42ID:PhPwcMia c言語とかからのゲーム作成を解説しながらやってるお勧めのブログを教えて
120名前は開発中のものです。
2008/12/26(金) 21:02:02ID:S9F3mZ1U121名前は開発中のものです。
2008/12/27(土) 00:17:12ID:GD7+RbfX コンテンツとして需要があるなら作ってもいいと思うけどな。
というかそんなようなのを作ったことがある。
結局ホームページ自体を公開しなかったが。
というかそんなようなのを作ったことがある。
結局ホームページ自体を公開しなかったが。
122名前は開発中のものです。
2008/12/27(土) 00:23:21ID:BgZGJ+VY Cから説明するのはだるいな
せっかく気合入れて作るくらいなら、本にして印税もらいたい
せっかく気合入れて作るくらいなら、本にして印税もらいたい
123名前は開発中のものです。
2008/12/27(土) 00:30:31ID:q0mgxuEr なぜ>>119はブログにこだわるのか。ブログ専用ブラウザでも使っているのだろうか
ttp://racanhack.sourceforge.jp/rhdoc/
ttp://racanhack.sourceforge.jp/rhdoc/
124名前は開発中のものです。
2008/12/27(土) 08:53:55ID:8o0sem2Y >>119
ブログで製作のライブ中継やると、完成しないというジンクスが。
ってか、実際に実況製作やってみると、ブログに思考中断されてうっとおしくなる。
まだ見ぬ弟子のこと考えて技術ブログ書くのなら
たいてい前もって完成させてからの、ログ追いトレース記事になってしまう。
完成すれば楽しい思い出の、ぐだぐだ設計迷走日記とはなかなか両立しない。
ブログで製作のライブ中継やると、完成しないというジンクスが。
ってか、実際に実況製作やってみると、ブログに思考中断されてうっとおしくなる。
まだ見ぬ弟子のこと考えて技術ブログ書くのなら
たいてい前もって完成させてからの、ログ追いトレース記事になってしまう。
完成すれば楽しい思い出の、ぐだぐだ設計迷走日記とはなかなか両立しない。
125名前は開発中のものです。
2008/12/27(土) 10:41:20ID:44v0/Te5 >>106
重複しない数字作成に関して
ループの中で
ans[0] == ans[1], ans[1] == ans[2],
ans[2] == ans[3], ans[3] == ans[4]
の比較を行っているが、右辺は何も値が代入されていないので、
その条件は絶対に成立しない
ans[4]は定義されていないので、i = 3 のときに実行しようとすると多分落ちる
ループの最後に実行される continue 文は何も意味を持たない
多分勘違いしていると思うが、continue 文を実行しても i の加算処理は実行される
PGMの製作経験が不足している気がする
PGMのロジックを組み立てる練習にコンソールゲーム作成はいいと思うので
面倒と思わずにまずはひたすら組んで実行してみることを勧める
重複しない数字作成に関して
ループの中で
ans[0] == ans[1], ans[1] == ans[2],
ans[2] == ans[3], ans[3] == ans[4]
の比較を行っているが、右辺は何も値が代入されていないので、
その条件は絶対に成立しない
ans[4]は定義されていないので、i = 3 のときに実行しようとすると多分落ちる
ループの最後に実行される continue 文は何も意味を持たない
多分勘違いしていると思うが、continue 文を実行しても i の加算処理は実行される
PGMの製作経験が不足している気がする
PGMのロジックを組み立てる練習にコンソールゲーム作成はいいと思うので
面倒と思わずにまずはひたすら組んで実行してみることを勧める
126名前は開発中のものです。
2008/12/27(土) 10:44:28ID:QMJ1Aqu3 TEAM NAVA分室 ゲーム製作講座 RPG
ttp://inu.harisen.jp/top.html
ttp://inu.harisen.jp/top.html
127名前は開発中のものです。
2008/12/28(日) 11:46:19ID:Wm8cLO/2 C言語〜ゲームプログラミングの館〜
http://dixq.net/g/
12月2日から↑このサイト見ながらゲーム作り始めた
「不可思議2」みたいなゲーム作りたくてダンジョン自動生成と
マップスクロールとキーコンフィグは何とか作った
でもC言語は1ヶ月くらいしか勉強してないし
ゲーム製作の経験もないので悪戦苦闘中
出来た!と思って打ち込んだプログラムが1発で動いたことは1度もない
ゲーム作りがこんなに面倒だとは思わなかったよ
http://dixq.net/g/
12月2日から↑このサイト見ながらゲーム作り始めた
「不可思議2」みたいなゲーム作りたくてダンジョン自動生成と
マップスクロールとキーコンフィグは何とか作った
でもC言語は1ヶ月くらいしか勉強してないし
ゲーム製作の経験もないので悪戦苦闘中
出来た!と思って打ち込んだプログラムが1発で動いたことは1度もない
ゲーム作りがこんなに面倒だとは思わなかったよ
128名前は開発中のものです。
2008/12/28(日) 13:23:09ID:iZvh/mGa 重複しない数字作成だったら
int ans[4];
int flag = 1;
while(flag){
flag = 0;
for(i = 0 ; i < 4 ; i++) ans[i] = rand() % 10;
for(i = 0 ; i < 3 ; i++){
for(j = i + 1 ; j < 4 ; j++){
if(ans[i] == ans[j]){
flag = 1;
break;
}
}
}
}
かな。
int ans[4];
int flag = 1;
while(flag){
flag = 0;
for(i = 0 ; i < 4 ; i++) ans[i] = rand() % 10;
for(i = 0 ; i < 3 ; i++){
for(j = i + 1 ; j < 4 ; j++){
if(ans[i] == ans[j]){
flag = 1;
break;
}
}
}
}
かな。
129名前は開発中のものです。
2008/12/28(日) 13:39:04ID:iZvh/mGa こんな方法もあるか
int used[10];
int arr[4];
int n;
for(i = 0 ; i < 10 ; i++) used[i] = 0;
for(i = 0 ; i < 4 ; i++){
n = rand() % 10;
if(!used[n]){
arr[i] = n;
used[n] = 1;
}else{
i--;
}
}
乱数が当たらないとループを抜けられないことを嫌うなら
int num[10];
int arr[4];
int n;
for(i = 0 ; i < 10 ; i++) num[i] = i;
for(i = 0 ; i < 4 ; i++){
n = rand() % (10 - i);
arr[i] = num[n];
for(j = n ; j < 9 ; j++) num[j] = num[j+1];
}
最大でも30ループほどで抜ける。
シンプルだけど可読性が悪い例だ。
ケアレスミスはご容赦。
int used[10];
int arr[4];
int n;
for(i = 0 ; i < 10 ; i++) used[i] = 0;
for(i = 0 ; i < 4 ; i++){
n = rand() % 10;
if(!used[n]){
arr[i] = n;
used[n] = 1;
}else{
i--;
}
}
乱数が当たらないとループを抜けられないことを嫌うなら
int num[10];
int arr[4];
int n;
for(i = 0 ; i < 10 ; i++) num[i] = i;
for(i = 0 ; i < 4 ; i++){
n = rand() % (10 - i);
arr[i] = num[n];
for(j = n ; j < 9 ; j++) num[j] = num[j+1];
}
最大でも30ループほどで抜ける。
シンプルだけど可読性が悪い例だ。
ケアレスミスはご容赦。
130名前は開発中のものです。
2008/12/28(日) 13:50:34ID:iZvh/mGa 十分大きな乱数は重複しないという前提で。
あるいは、重複しても極めて小さな誤差として無視する。
int r[10];
int arr[4];
int n_max = -1, rand_max;
for(i = 0 ; i < 10 ; i++) r[i] = rand();
for(i = 0 ; i < 4 ; i++){
rand_max = -1;
for(j = 0 ; j < 10 ; j++){
if(r[j] > rand_max){
rand_max = r[j];
n_max = j;
}
}
arr[i] = n_max;
r[n_max] = -1;
}
選択ソートの応用。
この場合はコード的にも計算量的にも誤差的にも使い物にならないけどw
あるいは、重複しても極めて小さな誤差として無視する。
int r[10];
int arr[4];
int n_max = -1, rand_max;
for(i = 0 ; i < 10 ; i++) r[i] = rand();
for(i = 0 ; i < 4 ; i++){
rand_max = -1;
for(j = 0 ; j < 10 ; j++){
if(r[j] > rand_max){
rand_max = r[j];
n_max = j;
}
}
arr[i] = n_max;
r[n_max] = -1;
}
選択ソートの応用。
この場合はコード的にも計算量的にも誤差的にも使い物にならないけどw
131名前は開発中のものです。
2008/12/28(日) 17:14:32ID:zA6Xag1Z どのみち10の配列を確保するならarray[i]=iにした後シャッフルして
必要な桁だけ使うという手もあるな
これだと重複ミスが起こりにくいし毎回決まった回数の処理で数字が決められる
それにトランプゲームとかにも応用できるし、定番のswapを作る機会にもなる
必要な桁だけ使うという手もあるな
これだと重複ミスが起こりにくいし毎回決まった回数の処理で数字が決められる
それにトランプゲームとかにも応用できるし、定番のswapを作る機会にもなる
132名前は開発中のものです。
2008/12/28(日) 19:38:05ID:DKMQoCt4 車輪の再発明をがんばらなくても、std::swapを使えばいいだけの話では?
それ以前に std::random_shuffle を使えば一瞬なのでは?
それ以前に std::random_shuffle を使えば一瞬なのでは?
133名前は開発中のものです。
2008/12/28(日) 19:39:32ID:LzwzO4A7 手順1
intで10個の要素を持つ配列を用意する
(1から9までの数字しか使わないなら0の分抜かして9個の配列で)
各要素に0から9までの数字を入れておく
手順2
ランダムで0から9個までの数字を作る
そのランダムの数字の要素を取り出す
そのランダムの数字の要素を
最後の要素と入れ替える
手順3
ランダムで0から(9−1)までの数字を作る
そのランダムの数字の要素を取り出す
そのランダムの数字の要素を
(最後ー1)個目の要素を入れ替える
この時点で
例えば1度目のランダムが3、2度目のランダムが5の場合、
intの入っている要素の数字は
[0,1,9,3,8,5,6,7,5,2]
となっているはず
って。これシスアドのテスト範囲にあったような気がする
intで10個の要素を持つ配列を用意する
(1から9までの数字しか使わないなら0の分抜かして9個の配列で)
各要素に0から9までの数字を入れておく
手順2
ランダムで0から9個までの数字を作る
そのランダムの数字の要素を取り出す
そのランダムの数字の要素を
最後の要素と入れ替える
手順3
ランダムで0から(9−1)までの数字を作る
そのランダムの数字の要素を取り出す
そのランダムの数字の要素を
(最後ー1)個目の要素を入れ替える
この時点で
例えば1度目のランダムが3、2度目のランダムが5の場合、
intの入っている要素の数字は
[0,1,9,3,8,5,6,7,5,2]
となっているはず
って。これシスアドのテスト範囲にあったような気がする
134名前は開発中のものです。
2008/12/28(日) 19:41:22ID:LzwzO4A7 あ〜。なんか誤字脱字酷いけど気にしないでね〜
135名前は開発中のものです。
2008/12/28(日) 19:59:16ID:zA6Xag1Z136名前は開発中のものです。
2008/12/29(月) 01:30:45ID:hfGjo2/l やり方は人によって千差万別やね
自分は>>106の考え方が一番好きだ
int ans[4];
for(int i = 0; i < 4; i++){
ans[i] = rand() % 9 + 1;
if(ans[i] == ans[(i+1)%4] || ans[i] == ans[(i+2)%4] || ans[i] == ans[(i+3)%4]){
i--;
}
}
自分は>>106の考え方が一番好きだ
int ans[4];
for(int i = 0; i < 4; i++){
ans[i] = rand() % 9 + 1;
if(ans[i] == ans[(i+1)%4] || ans[i] == ans[(i+2)%4] || ans[i] == ans[(i+3)%4]){
i--;
}
}
137名前は開発中のものです。
2008/12/29(月) 19:09:23ID:z5KMzts+ 配列の指数にどうして素直に数字を使わないの?
int ans[4];
for(int i = 0; i < 4; i++){
ans[i] = rand() % 9 + 1;
if(ans[i] == ans[0] || ans[i] == ans[1] || ans[i] == ans[2] || ans[i] == ans[2]){
i--;
}
}
int ans[4];
for(int i = 0; i < 4; i++){
ans[i] = rand() % 9 + 1;
if(ans[i] == ans[0] || ans[i] == ans[1] || ans[i] == ans[2] || ans[i] == ans[2]){
i--;
}
}
138137
2008/12/29(月) 19:10:15ID:z5KMzts+ 思いっきしミスった。ゴメン。
139名前は開発中のものです。
2008/12/29(月) 19:13:11ID:z5KMzts+ あ。ミスッたのは、
指数が比較対照と同じになる部分で必ず等しくなってしまうから、
素直に数字を使えないんだって、
書いてる途中で気づいて自己解決したってことです。
重ね重ねゴメン。
指数が比較対照と同じになる部分で必ず等しくなってしまうから、
素直に数字を使えないんだって、
書いてる途中で気づいて自己解決したってことです。
重ね重ねゴメン。
140名前は開発中のものです。
2008/12/29(月) 21:42:14ID:hCBOt5BE 条件6通り程度なら並べて比較してダメならやりなおせばいい、か。
素人くさいけどヘタウマというかカコイイ!!
アリだと思います。
int i,a[4];
for{;;}
for(i=0;i<4;i++)a[i]=rand()%9+1;
if((a[0]!=a[1])&(a[0]!=a[2])&(a[0]!=a[3])
&(a[1]!=a[2])&(a[1]!=a[3])
&(a[2]!=a[3])) break;
}
素人くさいけどヘタウマというかカコイイ!!
アリだと思います。
int i,a[4];
for{;;}
for(i=0;i<4;i++)a[i]=rand()%9+1;
if((a[0]!=a[1])&(a[0]!=a[2])&(a[0]!=a[3])
&(a[1]!=a[2])&(a[1]!=a[3])
&(a[2]!=a[3])) break;
}
141名前は開発中のものです。
2008/12/29(月) 23:10:08ID:aUqRb6Dt >>140
プログラムなんてのはトレードオフだからね。
何かを得れば、何かを失うもの。
確かに効率は良くない。
だが、見通しの良さ、わかりやすさは◎。
ところが、そのコードにはアレルギーを起こす人が多い。
なぜか?
特定の条件でループを抜ける、というのは、
無限ループを仕込む典型的な原因だからだ。
失敗にも、上手な失敗と下手な失敗があって、
明示的にエラーを吐いて終了 > 動くが挙動不審
> 無限ループ > 突然クラッシュ
の順。
で、上手な人ほどよりよい失敗に落ちるようにする。
たとえばそのコードだと、&&を&に間違えている。
それが原因になっても、どこで腐ったのか見えにくい。
プログラムなんてのはトレードオフだからね。
何かを得れば、何かを失うもの。
確かに効率は良くない。
だが、見通しの良さ、わかりやすさは◎。
ところが、そのコードにはアレルギーを起こす人が多い。
なぜか?
特定の条件でループを抜ける、というのは、
無限ループを仕込む典型的な原因だからだ。
失敗にも、上手な失敗と下手な失敗があって、
明示的にエラーを吐いて終了 > 動くが挙動不審
> 無限ループ > 突然クラッシュ
の順。
で、上手な人ほどよりよい失敗に落ちるようにする。
たとえばそのコードだと、&&を&に間違えている。
それが原因になっても、どこで腐ったのか見えにくい。
142名前は開発中のものです。
2008/12/30(火) 10:21:17ID:4Lg4VVtC いっそのことこれでいいじゃんもう
int ans[4];
retry:
ans[0]=rand()%9+1;
ans[1]=rand()%9+1;
ans[2]=rand()%9+1;
ans[3]=rand()%9+1;
if(ans[0]==ans[1]){goto retry;}
if(ans[0]==ans[2]){goto retry;}
if(ans[0]==ans[3]){goto retry;}
if(ans[1]==ans[2]){goto retry;}
if(ans[1]==ans[3]){goto retry;}
if(ans[2]==ans[3]){goto retry;}
int ans[4];
retry:
ans[0]=rand()%9+1;
ans[1]=rand()%9+1;
ans[2]=rand()%9+1;
ans[3]=rand()%9+1;
if(ans[0]==ans[1]){goto retry;}
if(ans[0]==ans[2]){goto retry;}
if(ans[0]==ans[3]){goto retry;}
if(ans[1]==ans[2]){goto retry;}
if(ans[1]==ans[3]){goto retry;}
if(ans[2]==ans[3]){goto retry;}
143名前は開発中のものです。
2008/12/30(火) 10:27:05ID:4Lg4VVtC 読む人に対する嫌がらせ
while(1){flag=0;for(i=0;i<4;i++)ans[i]=rand()%9+1;for(i=0;i<3;i++)for(j=i+1;j<4;j++)if(ans[i]==ans[j]) flag=1;if(!flag)break;}
while(1){flag=0;for(i=0;i<4;i++)ans[i]=rand()%9+1;for(i=0;i<3;i++)for(j=i+1;j<4;j++)if(ans[i]==ans[j]) flag=1;if(!flag)break;}
144名前は開発中のものです。
2008/12/30(火) 10:34:18ID:t9a5j063 ゲームつくりの本質とは関係ないことで
よくみんな書くよなw
よくみんな書くよなw
145名前は開発中のものです。
2008/12/30(火) 14:31:15ID:JKlPtp7s 長期的にみたら大事なことなのです
ねえな
ねえな
146名前は開発中のものです。
2008/12/30(火) 15:22:16ID:J3AJ9cNy147名前は開発中のものです。
2008/12/30(火) 15:56:56ID:+lVIynAg 実は、>>118 の
memset(input,0,sizeof(input));
sprintf(fmt,"%%%d[1-9]",digits);
scanf(fmt,input);
scanf("%*[^\n]%*c");
の意味が分からなくて悩んでいるんだけど。
こういうの正規表現っていうんだっけ?
こういうのを解説しているサイトみたいなのある?
memset(input,0,sizeof(input));
sprintf(fmt,"%%%d[1-9]",digits);
scanf(fmt,input);
scanf("%*[^\n]%*c");
の意味が分からなくて悩んでいるんだけど。
こういうの正規表現っていうんだっけ?
こういうのを解説しているサイトみたいなのある?
148名前は開発中のものです。
2008/12/30(火) 16:07:44ID:JKlPtp7s scansetでぐぐればいいんじゃないか
正規表現のサブセットみたいなの
正規表現のサブセットみたいなの
149名前は開発中のものです。
2008/12/30(火) 16:56:17ID:k/oqyFbB digits = 4だとして
sprintf(fmt,"%%%d[1-9]",digits);
で次の文字列が得られる
char fmt[]="%4[1-9]";
scanf(fmt,input);
でinputに'1'から'9'の文字を4文字だけ読み込む
他の文字や、4文字より多くの入力があると入力バッファに残るので
scanf("%*[^\n]%*c");
で読み捨てる。入力文字の最後は改行文字なので
"%*[^\n]"で改行文字まで読み捨てて、"%*c"で改行文字を読み捨てる。
入力バッファを空にすると次の入力もスムーズにおこなわれるってわけ。
wikipediaのscanfの項目によくまとまってるよ。
sprintf(fmt,"%%%d[1-9]",digits);
で次の文字列が得られる
char fmt[]="%4[1-9]";
scanf(fmt,input);
でinputに'1'から'9'の文字を4文字だけ読み込む
他の文字や、4文字より多くの入力があると入力バッファに残るので
scanf("%*[^\n]%*c");
で読み捨てる。入力文字の最後は改行文字なので
"%*[^\n]"で改行文字まで読み捨てて、"%*c"で改行文字を読み捨てる。
入力バッファを空にすると次の入力もスムーズにおこなわれるってわけ。
wikipediaのscanfの項目によくまとまってるよ。
150名前は開発中のものです。
2008/12/30(火) 17:02:39ID:+lVIynAg >>148-149 ありがとう。これで心安らかに年を越せます。
151名前は開発中のものです。
2008/12/31(水) 15:24:44ID:VYxP3E09 ゲームの画面ってどうやって作ればいいんですか??
152名前は開発中のものです。
2008/12/31(水) 15:25:43ID:VYxP3E09 オブジェクトとかを配置する画面の作り方がわかりません
ちなみにC言語です
ちなみにC言語です
153名前は開発中のものです。
2008/12/31(水) 16:45:26ID:xHQ2htSH ゲームとかツールちょこちょこ作ってるけど
ここに書き込まれているプログラムの内容とか難しく感じる
ここに書き込まれているプログラムの内容とか難しく感じる
154名前は開発中のものです。
2008/12/31(水) 16:49:09ID:nhGJ70sb >>152
もう少し詳しく聞いたほうがいいかも?
オブジェクトの配置ってことは、
それ以前の普通に画面表示するところはできてるのかな?とか。
絵的に複数のマップチップを背景画に配置するようなことなのかな?とか。
宝箱や扉のイベント用オブジェクトの作り方なのかな?とか。
手持ち品の入れ替えする時とかに別に開くような、
操作用別ウィンドウみたいのを配置するののことなのかな?とか。
>>153
ここはゲーム作りそれ自体よりも、ゲーム作りを通じて、
プログラミングの言語を理解するのが主目的みたいだね。
っていっても。まだ参加者少ないからこれから、
これからどうなるか分からないけど。こっそり勉強させてもらってます。
もう少し詳しく聞いたほうがいいかも?
オブジェクトの配置ってことは、
それ以前の普通に画面表示するところはできてるのかな?とか。
絵的に複数のマップチップを背景画に配置するようなことなのかな?とか。
宝箱や扉のイベント用オブジェクトの作り方なのかな?とか。
手持ち品の入れ替えする時とかに別に開くような、
操作用別ウィンドウみたいのを配置するののことなのかな?とか。
>>153
ここはゲーム作りそれ自体よりも、ゲーム作りを通じて、
プログラミングの言語を理解するのが主目的みたいだね。
っていっても。まだ参加者少ないからこれから、
これからどうなるか分からないけど。こっそり勉強させてもらってます。
155名前は開発中のものです。
2008/12/31(水) 17:44:21ID:VYxP3E09 いろいろなものを表現する土台としての画面です
キャラを表示したくてもどこにどのように表示するのかさえわかりません。。
入門書はゲームに無関係なC言語のものを読んでたのでまったくわかりまへん
キャラを表示したくてもどこにどのように表示するのかさえわかりません。。
入門書はゲームに無関係なC言語のものを読んでたのでまったくわかりまへん
156名前は開発中のものです。
2008/12/31(水) 18:21:06ID:MMS8KoX5157名前は開発中のものです。
2009/01/01(木) 04:39:05ID:LU3n6Iul >>127のサイトからVisual StudioっていうソフトをDLしたんですけど
そのファイルの中のサンプルプログラム実行用フォルダに入ってるファイルがほとんど開けない状態になってるんですが
どうすれば開けるようになりますか?
そのファイルの中のサンプルプログラム実行用フォルダに入ってるファイルがほとんど開けない状態になってるんですが
どうすれば開けるようになりますか?
158名前は開発中のものです。
2009/01/01(木) 10:04:51ID:MDNTZvu6 >>127のサイトは説明が不十分だ
ここ↓でDXライブラリの設定をしないと使えない
DXライブラリの使い方解説
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
ここ↓でDXライブラリの設定をしないと使えない
DXライブラリの使い方解説
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
159名前は開発中のものです。
2009/01/02(金) 14:45:45ID:2uMBMwue @VC++用DXライブラリダウンロード
↓
AVisual C++ 2008 Express Editionダウンロード
↓
BVisual C++ 2008 設定
↓
CWindowsプロジェクト(Win32プロジェクト)作成
↓
Dプロジェクトにcppファイルを追加
↓
Eプロジェクト設定
↓
Fウィンドウ作成
↓
G画像表示
流れはこんな感じ?
↓
AVisual C++ 2008 Express Editionダウンロード
↓
BVisual C++ 2008 設定
↓
CWindowsプロジェクト(Win32プロジェクト)作成
↓
Dプロジェクトにcppファイルを追加
↓
Eプロジェクト設定
↓
Fウィンドウ作成
↓
G画像表示
流れはこんな感じ?
160名前は開発中のものです。
2009/01/03(土) 01:00:46ID:cGzTJz3u VC++2008の中の2つのファイルが何度やってもインストールに失敗してしまいます・・
それとDxライブラリとかいうソフトの中のサンプルファイル実行用フォルダの中にあるDxLib_VC2008_and_2005用.slnっていうファイルが開けません・・
システムの復元とかやったり何度もやり直してみたけどだめですた
それとDxライブラリとかいうソフトの中のサンプルファイル実行用フォルダの中にあるDxLib_VC2008_and_2005用.slnっていうファイルが開けません・・
システムの復元とかやったり何度もやり直してみたけどだめですた
161名前は開発中のものです。
2009/01/03(土) 01:30:21ID:8KicIl/n slnはvcインストールしないとだめだろ
てかさ、だから何?
解決策が欲しいのか?それだとしても
>2つのファイルが
はないだろ。
てかさ、だから何?
解決策が欲しいのか?それだとしても
>2つのファイルが
はないだろ。
162名前は開発中のものです。
2009/01/03(土) 16:51:04ID:cGzTJz3u VCはあきらめてborlandでやり直しました
っていうかもうすでにborlandを過去にインストールしてたのでこれが原因でVCをインストールできなかったのかもしれないです
それで
http://homepage2.nifty.com/natupaji/DxLib/dxuse_bcc.html
の手順で”8.プロジェクトのビルド、実行”までいったんですけど実行すると6で作ったDrawPixel.cppが開けないというエラーが出ます
ちなみにDrawPixel.cppを4で作ったtestファイルから出すとエラーではなくてfatalという表示が出て
またDrawPixel.cppのところでdoes not exist - don't know how to make it
とかいう常時がでるんですがどうすればいいのかさっぱりわかりません++;
っていうかもうすでにborlandを過去にインストールしてたのでこれが原因でVCをインストールできなかったのかもしれないです
それで
http://homepage2.nifty.com/natupaji/DxLib/dxuse_bcc.html
の手順で”8.プロジェクトのビルド、実行”までいったんですけど実行すると6で作ったDrawPixel.cppが開けないというエラーが出ます
ちなみにDrawPixel.cppを4で作ったtestファイルから出すとエラーではなくてfatalという表示が出て
またDrawPixel.cppのところでdoes not exist - don't know how to make it
とかいう常時がでるんですがどうすればいいのかさっぱりわかりません++;
163名前は開発中のものです。
2009/01/03(土) 16:52:16ID:cGzTJz3u 常時 ×
表示 ○
表示 ○
164名前は開発中のものです。
2009/01/03(土) 17:39:20ID:cGzTJz3u 今プログラムからVC++2008エクスプレスエディッションとかいうのを起動してみたんですが起動できました
これはインストールできてると思っていいんですか?
でも相変わらずDxLib_VC2008_and_2005用.slnは開けません
ダブルクリックすると一瞬砂時計は見えるんですがその後何も起こらないような状態です
それとborlandに変更するときにDxLib_VCを削除しようとしたのですが他のユーザーかプログラムが使用しているので削除できませんという表示が出て削除できませんでした
何のプログラムが使ってるんですか?
これはインストールできてると思っていいんですか?
でも相変わらずDxLib_VC2008_and_2005用.slnは開けません
ダブルクリックすると一瞬砂時計は見えるんですがその後何も起こらないような状態です
それとborlandに変更するときにDxLib_VCを削除しようとしたのですが他のユーザーかプログラムが使用しているので削除できませんという表示が出て削除できませんでした
何のプログラムが使ってるんですか?
165名前は開発中のものです。
2009/01/03(土) 18:18:16ID:cGzTJz3u VC++の方の問題が解決しました
とりあえずこっちでやっていこうと思います
とりあえずこっちでやっていこうと思います
166名前は開発中のものです。
2009/01/03(土) 18:28:48ID:LXo4lpsC 入門書クリア前提と書いてあるのに、入門以前の奴がいつく不思議。
低学歴ってこういうところが図々しいんだよなぁ。
低学歴ってこういうところが図々しいんだよなぁ。
167名前は開発中のものです。
2009/01/04(日) 05:47:47ID:8iog1RSe ゲ製クオリティですね
168名前は開発中のものです。
2009/01/04(日) 08:50:13ID:je6HotHc ツール?に振り回されて全然進まないとか、よくあるパターンだなあ
本質理解せずにやり方だけ憶えたって、たいして上達しない気がする。
まるでツクールでゲームを作ってるような
本質理解せずにやり方だけ憶えたって、たいして上達しない気がする。
まるでツクールでゲームを作ってるような
169名前は開発中のものです。
2009/01/04(日) 14:27:38ID:zQBmDULY http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html
↑これの3.プロジェクトの作成のところのCにある”場所”ってどこでもいいんですか?
デフォルトでまったく関係ない場所にあるVC2008のフォルダの中のプロジェクトっていうフォルダに保存されるんですが
その後プログラムを組んでいくとDXLibのサンプルプログラム実行用フォルダに入ってる画像ファイルを表示できないのですが・・・
↑これの3.プロジェクトの作成のところのCにある”場所”ってどこでもいいんですか?
デフォルトでまったく関係ない場所にあるVC2008のフォルダの中のプロジェクトっていうフォルダに保存されるんですが
その後プログラムを組んでいくとDXLibのサンプルプログラム実行用フォルダに入ってる画像ファイルを表示できないのですが・・・
170名前は開発中のものです。
2009/01/04(日) 14:34:04ID:gz3s55od171名前は開発中のものです。
2009/01/04(日) 15:09:39ID:zQBmDULY 表示する画像をvisualstudio内のプロジェクトフォルダにあるtestフォルダに入れると画像が表示されました
これはDXlibとVC++がリンクできてないってことですか?
一応設定ガイドのとおりに進めてきたんですが唯一設定ガイドのとおりにできなかった点は
DxLib_VC2008_and_2005用.slnからVC++を開けなかったことぐらいです
なのでVC++を直接開いたんですがこれが原因だったんでしょうか・・・
これはDXlibとVC++がリンクできてないってことですか?
一応設定ガイドのとおりに進めてきたんですが唯一設定ガイドのとおりにできなかった点は
DxLib_VC2008_and_2005用.slnからVC++を開けなかったことぐらいです
なのでVC++を直接開いたんですがこれが原因だったんでしょうか・・・
172名前は開発中のものです。
2009/01/04(日) 16:38:36ID:WqEDI8cx スレタイにあるCの入門書クリア状態って
1.Cの文法を知っている状態
2.標準ライブラリを一通り知っている状態
3.APIを一通り知っている状態
4.その他、適切なライブラリを選んで使える状態
のうちのどれなんだろうか?
Java、VB、HSPなどは1〜3まで切れ目なく1冊の
入門書に書いてあるけど
Cの場合、1だけっていうのも結構あるような気がする
いずれにしても>>171は
0.PCが使いこなせる
-1.日本語わかります
の段階さえあやしいような気がするが
1.Cの文法を知っている状態
2.標準ライブラリを一通り知っている状態
3.APIを一通り知っている状態
4.その他、適切なライブラリを選んで使える状態
のうちのどれなんだろうか?
Java、VB、HSPなどは1〜3まで切れ目なく1冊の
入門書に書いてあるけど
Cの場合、1だけっていうのも結構あるような気がする
いずれにしても>>171は
0.PCが使いこなせる
-1.日本語わかります
の段階さえあやしいような気がするが
■ このスレッドは過去ログ倉庫に格納されています
