トップページgamedev
840コメント373KB

今日から必死で1から全て学んでゲーム作成します

■ このスレッドは過去ログ倉庫に格納されています
0001松田 ◆cobo4pcvHY 03/02/06 21:28ID:+Sp/g0d7
全然言語の知識とかないけれど、

言語の難しさから逃げていては駄目だ!お前はゲームを作りたいのだろ!?
という悟りを開き、今日からプログラム言語を覚え、そして
プログラムツールで作ります!今持ってるものは・・・。

6才年下の弟の持ってる技術(厨2)の教科書。
アクティブベーシック。(vectorより入手)

・・・作れるのだろうか!?もちろん古本屋で買いあさってくるが
(作れ次第、いずれうpします・・・。いつまでかか(ry))
0330名前は開発中のものです。03/02/24 00:09ID:qkk592oM
僕もこのスレみてやりたくなったんですけど、参加していいですか?
ちなみにまったくなんお知識もないド素人ですけど。みなさんすごいですね
VisualBasic6ならあるんですけど、コレでゲーム作れますか?
無理ならなんかお勧めソフトがあれば教えてください、お願いします
0331名前は開発中のものです。03/02/24 00:21ID:ebzUI0qx
>>330
VBで何も問題ない。
DirectXが楽に使えるしな。
0332名前は開発中のものです。03/02/24 00:31ID:qkk592oM
>>331
ほんとですか〜。ありがとう。
でも何から手をつけていいのやら・・本とか買ってきたほうがいいんでしょうか?
0333名前は開発中のものです。03/02/24 00:37ID:e68AWa50
本は一冊あったほうがいいな。
とりあえず安いのを一冊買ってみると良い。
I/O別冊が無難。
http://www.amazon.co.jp/exec/obidos/ASIN/4875939949/ref%3Dbr%5Flf%5Fb%5F2/250-7812577-6573047
0334名前は開発中のものです。03/02/24 00:40ID:qkk592oM
ありがとう。
DirectX8 3Dの基礎とゲームの作り方―Visual Basicで「DirectX Graphics」「DirectInput」を使う I/O別冊
ってやつですね?
明日本屋行ってきます。
うおー、燃えてきた〜〜
0335◆TPeOraQid2 03/02/24 00:49ID:AgtdhH3t
GDIとDIBでがんばってるけどやっぱDirectXつかったほうがいいのかな?
0336名前は開発中のものです。03/02/24 01:00ID:DRzF69g2
さっそく質問ですが
座標X(100, 100)から座標Y(200, 250)の線を引いたとき
その線の上の点ですけどどうやって求めますか?

たとえば座標Z(150, p)の時pはいくつなのかと・・・
またそのときにできる三角形の角度ってどうやって求めればいいんですかね

直線はy = ax + bだったはずだから
100 = 100a + b
250 = 200a + b
から 150 = 100aで a = 1.5, b = -50 になるから
p = 1.5 * 150 - 50
p = 175 であってますよね?

でもこれをそのままCでやると負担かなりかかりそうで・・・
こういうのって公式でありましたっけ? もっとパッパとできるもの

ちなみに角度はどうやって求めるのか分かりません
sin, cosあたり使うとは思っていますが・・・
0337名前は開発中のものです。03/02/24 01:04ID:e68AWa50
>>335
好みの問題だ。どっちでも好きに選んでいい。
一つ云える事は、昔はGDIとDIB(あるいはWinGと呼ばれたもの)
以外に選択肢が無かったから、みんなそれを使っていた。
今は他に選択肢(DirectX)があるというだけの話だ。
0338名前は開発中のものです。03/02/24 01:08ID:8DQ5aOML
>>336
ブレゼンハム で検索すると、答えが見つかるとおもう。
0339◆TPeOraQid2 03/02/24 01:18ID:AgtdhH3t
>>336
そんなに計算負荷ないと思うが・・・
それと三角形ってどこの三角形だ?
ZはXY上の点なんだからXYZは三角形にならないよ
0340名前は開発中のものです。03/02/24 01:18ID:e68AWa50
>>336
負荷がかかりそう?本当かそれは。計測したか?

つーか、そういうこだわりは後回しにしたほうが良さそうな
雰囲気出してるぞ。完成に向けて次の作業にパッパと
取り掛からないと、そのうち飽きてやめちゃうんじゃないか?

角度が知りたいのか。googleで検索したか?atanだぞ。
まず調べろ。
0341名前は開発中のものです。03/02/24 01:52ID:NAVRF1hN
>>336
いいね、大概の奴は数学的処理ってだけで、考える事から逃げてばかりで真っ向から取り組む奴は少ないからね。

まず、直線の傾きは、変化の割合で示せます。
つまり、xが100〜200まで変化する間に、yが100〜150まで変化したんなら
(250 - 100) / (200 - 100) = 150/100 = 1.5です。で、定数の方は求まった傾きと式から導きます。
で、CPU処理的には、全然軽いです。気にする処理では無いよ。

角度は、角度編で説明しようと思ったけど…軽くな。
まず、度で考えるのは止めよう。プログラマならラジアンで考える方が、楽だよ。
ラジアンとは?って、それは角度の考え方の一つで、円の方程式にπって出るだろ。あれの事だ。
π = 180度、2π = 360度。これだけ。

でだ、角度を求める方法だが、本格的にやると、ベクトルと内積の考えを使わないといけないんだが…
2Dの場合は、もっと楽な標準関数があるんだな、これが!
atan2って奴だ。アークタンジェントを求める式だ。
(atanもあるが、atan2の方が使い勝手が良い)
簡単な説明をするとだね、三角比でtanθってあったろ?
このtanθからθ(ラジアン)を求める物です。

double atan2(y, x);
戻り値が、ダブル型のラジアンを返す。
座標に相当するyとxを引数に取ります。
そして、x軸と、原点からその点への直線でなす角度をラジアンで返します。

最後に、数学処理とプログラム処理では、Y軸が逆に取ってある場合が殆どです。
画面だと、原点左上で、yが増加すると画面下方に増えますよね。
でも数学は、原点左下で、yが増加すると上方に増えますよね。
例えば、最初の直線の方程式の質問で、右下がりな直線は、数学だとマイナスの傾きになる筈です。
しかし、プラスの傾きでしたよね?これは、y軸が逆転している為です。
ここは、注意が必要です。
0342名前は開発中のものです。03/02/24 12:39ID:qpIoEsd1
このスレ(゚∀゚)eeE!
0343名前は開発中のものです。03/02/24 15:09ID:XrXPuQvt
「数学は文書で理解する物ではない、イメージだデザインだ」 by 湯川秀樹
0344名前は開発中のものです。03/02/24 16:00ID:xQPjwLx+
↓↓↓↓↓★ココだ★↓↓↓↓↓
http://www.pink-angel.jp/betu/index.html
0345ぷらちな& ◆lC4swazwNY 03/02/24 16:18ID:AuRefHIy
11
0346あぼーんNGNG
あぼーん
0347プリグラマ03/02/24 19:00ID:3Ni1FK23
>>341
xが100〜200まで変化する間に、yが100〜150まで変化したんなら
(150-100)/(200-100)=0.5じゃないのか?と言ってみるテスト

0348新たな新人03/02/24 19:03ID:flMKYRe+
塾長さん、今日このスレを始めて読みました。
ぼくも今日から始めます。
よろしくお願いします
0349塾長03/02/24 22:12ID:zeW+Q+KN
>>343
湯川先生みたいな天才の言うことはよくわからん。

>>347
突っ込み(void氏並に)が細かいな。
言うまでも無いが、>>341 は「y が 100 〜 250」が正しい。

>>348
何を始めるんだ?
それだと、ボクシンググローブと縄跳びを買ってきて
「俺もこれでボクサーの第一歩」とか思ってるのと一緒だぞ!
とりあえず、なんでもいいからプログラムを書け!


最近、お前らプログラムをアップロードしてないぞ!
俺が見るかどうかはともかくとして、人前に自分のコードを晒せ!
0350新たな新人03/02/24 22:29ID:flMKYRe+
プログラムを書くツールでお勧めはどれでしょうか?
できれば解りやすいのがいいです
よろしくおねがいします
0351名前は開発中のものです。03/02/24 22:44ID:7ng7v7Oi
>>350
今日から必死で1から全て学んでゲーム作成するんじゃないのか。
必死で調べろよ。メモ帳でもTeraPadでもSakuraEditorでもVisual Studioの
統合環境でも何でもいいから、とっと使ってとっととコード書き始めて
とっとと先に進むが吉だと思うぞ。
0352◆h8AqQULsMs 03/02/24 23:31ID:liomfxl9
API関係むずいよ〜
HSPスレを見て、ダウンロードしている所を塾長に見られた!
蝉:いや、これは、、、あの〜、そういうんじゃなくて・・・(黙
いったい、どうなってしまうのか!?

などと言いつつ、初期画面表示と背景にBMP画像を貼りました。
ttp://forgamedev.zombie.jp/uploader/up5/img/083.zip
0353名前は開発中のものです。03/02/24 23:37ID:BMlF6hgu
だいれくとXつかってバリバリの3DRST作りたいのですが
HSP勉強してたらワンスキンボーンモデルをコンバートできないようなので
できる簡単なやつ教えてください
0354名前は開発中のものです。03/02/24 23:40ID:7ng7v7Oi
>>353
スマン。マジで文章が読解できなかった。

つーかだな、

おまいら、質問したいときは初心者スレをもっと活用しないと。
http://pc2.2ch.net/test/read.cgi/gamedev/1044954179/l50
0355塾長03/02/25 00:04ID:1nCULmR/
>>353
俺もお前の質問の意味がよくわからんが、
ワンスキンメッシュはめんどくせえぞ!
DirectX9 なら D3DX のアニメーション関数があって簡単になってるけどな!

(初心者なら、単純にボーンの入ってないメッシュの線形補完のアニメーションで
十分じゃねーかと思ってるが、まあ向上心は大事だわな、うん)

とりあえず、質問の要点をまとめて、初心者スレなり、3D の質問スレなりで
聞きやがれ!
0356煮頃@7743期生(=256)03/02/25 02:39ID:b2ag/m+E
漏れも自販機はじめますた
http://forgamedev.zombie.jp/uploader/up5/img/084.zip
0357あぼーんNGNG
あぼーん
0358名前は開発中のものです。03/02/25 10:14ID:Y6WbGm+3
ホームページビルターみたいに(例えが悪いかな・・・)
自分で文章をタイピングしたり指示とかするだけでプログラムが組めるソフトってあります?

0359名前は開発中のものです。03/02/25 10:31ID:O9AAu2xg
>自分で文章をタイピングしたり指示とかする

それがプログラムってもんだろ
0360あぼーんNGNG
あぼーん
0361名前は開発中のものです。03/02/25 18:38ID:7zcY0277
>>358
ツクールとかFlashMXみたいなオーサリングツールを買ってみ。
つーか、初心者スレをもっと活用してほしい。
0362名前は開発中のものです。03/02/25 20:17ID:yCc+W+P4
本気でゲームを一つ作ってみようかと思っている者です。
当スレの雰囲気がとてもよいので、興味津々です。
for文の構文とかも理解していないようなヘッポコな上に、
本等を購入する余裕が無いので、教えて君全開になりそうなのですが、
入塾させて頂いてもよろしいいでしょうか?
0363名前は開発中のものです。03/02/25 21:56ID:VPuiiQAc
>>362
入塾許可なんか要らないよ。
必死になってどんどん課題を出せばいい。
あとは、必死に猫でも分かるプログラミングを読むとか
http://www.kumei.ne.jp/c_lang/
必死にログを読むとか、まぁとにかく必死になって自力で
色々あがいて参加することが吉だと思われるので、頑張れ。
0364名前は開発中のものです。03/02/25 22:16ID:yCc+W+P4
ありがd
ガチンコ見た事無いのでスレのノリに合わせられるかわからないけど、
必死で1から全て学んでがんがってみます。
0365名前は開発中のものです。03/02/25 23:13ID:yCc+W+P4
おい、おまえら!
漏れが今から、【電波少年的ゲーム製作】〜課題をこなせなかったら即自殺〜
を始めるから、ホームラン級のホームページを教えろ!
リファレンス?みたいな関数辞典みたいなページご存知でしたらお願いします。
対応するインクルードするべきヘッダファイルの一覧みたいなのがほしいのです。
stdio.hがどうとか、そういうのがわからないのでどうかお願いします。
0366名前は開発中のものです。03/02/25 23:42ID:OTJzWV1L
C++入門のページって所を読んでるけどワケワカランので猫行ってみる。

課題upしたのにull書くの忘れてたんでとりあえず課題だけ。
http://forgamedev.zombie.jp/uploader/up5/img/085.zip
0367煮頃 ◆mIGaChInq. 03/02/26 01:11ID:PeOEz4du
>>365
googleに関数名を放り込んだほうが早いかも
BohYoh.com【C言語講座】標準ライブラリ関数
http://www.bohyoh.com/CandCPP/C/Library/index.html

今日の目標->一日一UP
ランダムに現れたドットが中央へ向かっていきます
距離が1以下になると次のドットが現れます
VisualBoyAdvance1.4で動作確認しました
http://forgamedev.zombie.jp/uploader/up5/img/087.zip
0368名前は開発中のものです。03/02/26 03:14ID:UwPRkjgq
数学やれよ。数学。
簡単講座その2 の準備。

まずは、先日の誤記の突っ込みありがとう。で入るか…
でだ、今回は、角度やら、それに関係して軽く当り判定とかをやりたいんだが、その前に準備だ。
復習を兼ねて、ベクトルの話だ。なにが準備かと言うと、
これから(x, y)は、ベクトル扱いで説明して行かないと、膨大な説明と書き込みになるのでベクトルの基本を少し。

基本だが、ベクトルを表すのに構造体なりクラスなりを定義してると楽なのは分るよね。
struct VECTOR { float x, y; };
こんな感じだ。クラスなら、メンバ関数で、大きさを返す物や単位化する物を定義したり
演算子のオーバーロードで計算処理も定義できるし便利だよね。
で、肝心のベクトルの扱いなんだが、基本は位置ベクトルだ。基本の位置から、どこぞを指し示すと考えてもらって結構。
つまり、座標と考えても差し支え無い。原点(基本位置)から、座標(x, y)までのベクトルって感じだ。
さらに考えを柔軟にすると、基本の位置を原点以外でも考える。ホーミングの時の、敵機から自機へのベクトルって奴だ。
これらのベクトルは、始点を考えるベクトルな。

で次の考えは、少し複雑だ。方向ベクトルって言って、向きだけを考えるんだ。
大きさや始点は、基本的に考えないベクトルだ。
具体的に言うと、真上を向くベクトルは、大きさが1だろうが10だろうが、真上って向きだし
原点だろうと、(10, 10)の座標からだろうと、真上って方向だろ?
この二つの考えで説明して行くから、調べるなりして身に付けるべし。

そして最後に、ラジアン処理だ。之は前にも書いたが、角度の表現方法の一つだ。
π = 180度 = 3.1415926535897932…って奴だ。
具体的な使い方は、
#define PI 3.1415926535897932
って感じでデファインしておいて使うのだ。90度を表す時は、PI/2.0 (180/2)って感じで使うのだ。
0369名前は開発中のものです。03/02/26 03:17ID:UwPRkjgq
数学やれよ。数学。
簡単講座その2。角度編。

先ずは、角度って言っても基準となる0度の場所を決めて置かないといけないな。
これは、ゲーム毎に処理やなんかも違うし、自分で決めておいて、
計算時に、数学処理や標準関数とのオフセット(一定の差の修正)を取れば良いと思う。

今回は、X軸、つまり”y = 0”の直線が0度の角度で行こうと思います。
なぜなら、atan2での基準でもあるので、戻り値がそのまま使えるからです。

いきなり本題。原点から”大きさR”の”円上”の座標の式は?
x = R * cos(θ);
y = R * sin(θ);
*sin() cos()は標準関数。
が答えです。θとはシータと読みます。ギリシャ文字で数学だと計算時の角度を表す場合が多い。(高校数学教科書でも載ってるよ)
角度は、X軸からの角度で、例えば、45度つまりy = xの直線上の座標(マイナス座標はおいておく)なら
x = R * cos(PI / 4.0);
y = R * sin(PI / 4.0);
です。45 = 180/4 = PI/4.0ですね。
atan2で言うと
PI/4.0 = atan2(10.0, 10.0);//y = xの式で考えるので、引数yと引数xを同じ数値にしただけ。

解説をすると、先ず単位円(半径が1の円)で考えましょう。つまりR = 1となって
x = cos(θ);
y = sin(θ);
って簡単になります。そしてsinとcosとは、xとyが円を描く時の軌跡を表す物と考えると良いでしょう。
cos(0.0) = 1.0
sin(0.0) = 0.0
です。いきなり、”です”じゃ分りませんね?之は"大きさ1"の円の0度の座標を表します。
大きさ1の円で、基準はX軸でしたね。つまり0度なら(1, 0)が円上の座標です。上の式通りでしょ?
atan2だと
0.0 = atan2(0.0, 1.0);//引数に注意、atan2はy, xの順です。
0370名前は開発中のものです。03/02/26 03:19ID:UwPRkjgq
次は90度の座標で考えましょう。90度ならx = 0つまりY軸上の事です。
cos(PI / 2.0) = 0.0
sin(PI / 2.0) = 1.0
です。もう分りますね。(0, 1)の座標が90度の時の円上の座標です。atan2では
PI/2.0 = atan2(1.0, 0.0);

何を言いたいのか?それは、sinとcosを使えば、角度から座標が得られるのです。
そして、アーク系の標準関数を使えば、座標から角度が得られるのです。

例えば、10度づつに180度まで、角度を刻みたいって処理をするなら
float angle = 0.0f;
struct VECTOR vec;
vec.x = 0.0f;
vec.y = 0.0f;

while(angle <= PI)
{
vec.x = cos(angle);
vec.y = sin(angle);

//ここでxとyを使った処理、描画でも何でも良い

angle += PI / 18.0;//10度 = 180/18
}

ってやれば良いのです。
…すまん、もう眠い、限界だ、続きは近いうちに。
0371名前は開発中のものです。03/02/26 03:37ID:/z8f2ccX
>>368-370
こんな時間にお疲れ様です

・・・今回の内容はちょっと難しそうだなぁ
昼起きてからじっくり読ませてもらいます



私もそろそろ寝よ・・・
0372あぼーんNGNG
あぼーん
0373名前は開発中のものです。03/02/26 09:09ID:0KVHlNbG
Delphi使いの三期生〜〜〜
俺もやっと追いついたんだが、continueとかしらないぞ!
おかげで悩んでた問題が解決しますたが、一からプログラム
してないよね?経験者だよね?
かなり、自分の力量のなさに泣きそうなんですが。
返事モトム
0374◆TPeOraQid2 03/02/26 09:46ID:AO2CG5SF
>>373
まったくの初心者ではないが、経験者というほど経験をつんでない。
これから修行を積めば大丈夫だから安心しる

STGをちょいと改造
http://forgamedev.zombie.jp/uploader/up5/img/088.lzh
0375名前は開発中のものです。03/02/26 09:48ID:5vfashpU
皆の開発環境はなんでつか?
漏れは今のところLSIC86試食版でやってるんだけど、
グラフィックが使えないようだからBorland C++に乗り換えようと思ってるんだけど。
0376◆TPeOraQid2 03/02/26 09:51ID:AO2CG5SF
>>375
俺はVC++5
ところどころムカツクところはあるが・・・
0377名前は開発中のものです。03/02/26 10:10ID:0KVHlNbG
>>374
即スレサンキウ。
よかった。∞さんが、まったくの初心者だったら、
俺才能ないなと、泣いているところだった。(あきらめはしないが)

>>375
漏れはDelphi。
0378新しい生徒 ◆DWbD4/1xkk 03/02/26 12:24ID:9oc4Ygkp
初めて書いてみました。HSPです。まだ間違いだらけのところがあると思いますが・・・
RPGの戦闘画面です

#ひろゆきとの戦い:バージョン01
   cls0
mes"ひろゆきが現れた!"
stop
*hiroyuki
butoon"たたかう"*comand0
butoon"にげる"*comand2
stop
*comand0
mes"これでいい?"
       butoon"OK"*comand1
butoon"キャンセル"*hiroyuki
*comand1
dame-ji=dame-ji+1 : goto *comand0
stop
*comand2
if kai> 0 : goto *owari
mes"ひろゆき「あなたは2ちゃんねるアク禁ですよん」"
stop
*finish
cls
mes"ひろゆきに"+dame-ji+"のダメージを与えた" : goto *owari
stop
*owari
mes"戦いは終わった"
stop
0379名前は開発中のものです。03/02/26 15:53ID:xJ8e4S5f
http://forgamedev.zombie.jp/uploader/up5/img/090.zip
ソースが崩壊してて恥ずかしい。・゚・(ノД`)・゚・。
0380名前は開発中のものです。03/02/26 16:10ID:rCqOEboo
>>378
せめて自分で動かしてみて動くコードをだせよ。
0381名前は開発中のものです。03/02/26 16:15ID:kOHm86np
実行ファイルだけupしてる奴って何が目的なんだ?
それはただのオナニーだろ、他でやれ。
ソースだけのupは容量軽減と解釈すればなんとか理解出来るが。

ソースだけのupの人も、環境を持っていない人の事を考えてexeも入れてあげるといいと思われ
C++もdelもHSPもフリーなんだから、exe触って憧れて真似して覚えるってのもあろうから。
0382煮頃 ◆mIGaChInq. 03/02/26 17:53ID:PeOEz4du
>>378さんのソースをエラーがでないようにしてみました
http://forgamedev.zombie.jp/uploader/up5/img/091.zip
0383新しい生徒03/02/26 19:32ID:ZK/eb1N0
>>382
ありがとうございますです。
やっぱちょっと変でしたね「*owari」に行かない。
もうちょっと手直ししてみます
0384新しい生徒03/02/26 20:19ID:Y+qlltMl
>>382
これに
*comand3
mes"まだ攻撃しますか?"
    button"YES",*hiroyuki
    button"NO",*finish
    stop
というやつをつけて前のラベルをちょいと改造して完成したか?とおもったら今度は動かなくなった・・・
0385電波33003/02/26 20:39ID:+V3fv4SA
http://forgamedev.zombie.jp/uploader/up5/img/092.txt
課題1、数当て。

電波少年的ゲーム製作、1日目でいきなり死にそうなんで堪り兼ね、恥を忍んで質問します。
rand、乱数、C++で検索すると、「rand() / 1000;」と、「rand() % 1000;」の両方がhitするのはなぜですか?
後者だと動きません。(これを信じてしまった為に数時間を無駄にしてしまいますた・・・)

srandについての質問です。
upしたものに、「srand(50);」を追加すると、動かなくなるのはどうしてですか?
//将来的には、「srand(現在の時刻);」を行う事によって乱数を作り出そうと思っています。
0386名前は開発中のものです。03/02/26 21:12ID:pqLn9AXQ
>>385
おいおい演算子くらいしっかり覚えとけよ。
/ は商を、 % は剰余を求める演算子だ。
0387名前は開発中のものです。03/02/26 21:14ID:W1hnCPp7
rand() / 1000 は、rand()の値を1000で割った値になります。
具体的には10進数表記して下3桁を切り捨てた値になります。
rand()で返ってくる値はRAND_MAX以下の正の整数で、デフォルト値は処理系依存が、
32,767のことが多いです。
つまり、rand()/1000 は、0〜32 の値をとることになります。

rand() % 1000 は、rand()の値を1000で割ったときの余りになります。
つまり0〜999の値を取ることになります。

で、あなたのプログラムが rand()%1000 で動かなくなる理由ですが、
0388名前は開発中のものです。03/02/26 21:15ID:W1hnCPp7
int型が少数を切り捨てることを考慮していないために発生していると思われます。

2つめ(b方式のwhileループ)の yyy=(za+((zb-za) /5)) あたりを例に考えてみてください。
たとえば xxx の値が6であると、za=4,zb=8 の時点で
yyy = (za+((zb-za) /5)) = 4 となり、
永遠にza=に4を代入し続けることになります。

この問題から、あなたのプログラムには
「b方式では特定の数値を当てることが出来ない」という不具合があることを示しています。
rand()/1000でうまくいき、rand()%1000でうまくいかないのは、
偶然デフォルトの状態でrand()を呼び出すと発生するものだったというだけのことです。
srand()を行っていないため再現性があったのです。
0389塾長03/02/26 21:22ID:9AhhBBa6
>>385
まず rand() って関数が返す値の範囲は 0 から RAND_MAX
(処理系依存だが 32767 以上) だろ?
仮に 100 っていう乱数が返ってきたとする。
100 / 1000 の値は、小数点切り捨てになるから 0 になっちまうんだ!

お前がやりたいのは 0 から 1000 の数の乱数を出すことだろ?
だったら rand() % 1000 が正解だ。
rand() % 1000 にしたり、srand() を追加すると動かないのは
お前のプログラムの b 方式のロジック自体が悪い。
変数名をわかりやすくしたり、while ループの中に printf
を入れてデバッグしたり、自分で原因究明しろ!

言っておくが、このスレのスレタイは
「今日から必死で1から全て学んでゲーム作成します」
だぞ!
「今日から必死で塾長が全てのプログラムをデバッグします」
じゃねえんだ!
0390塾長03/02/26 21:24ID:9AhhBBa6
俺が書いてるうちに答えが出ちまった…
ケコーン、って奴だな。
0391名前は開発中のものです。03/02/26 21:29ID:W1hnCPp7
ごめん、日本語へろへろだ。

387訂正。
3行目: デフォルト値は処理系依存が、 → デフォルト値は処理系依存ですが、

388訂正。
6行目: za=に4を代入 → zaに4を代入
9行目: あることを示しています。 → あることが分かります。
0392名前は開発中のものです。03/02/26 21:30ID:7Y16V9n2
      ___
     /∧_∧ \
   ./  ( ゚ ∀゚ )、 `、
  / /\ \つ  つ、ヽ
  | |  ,\ \ ノ  | |
  ヽヽ  レ \ \) / /
   \ [書込み禁止]'/
    ヽ、 ____,, /
       ||
       ||   〜終了〜
0393煮頃 ◆mIGaChInq. 03/02/26 21:39ID:PeOEz4du
>>384
>mes"ひろゆきに"+dame-ji+"のダメージを与えた" : goto *owari
この行を
>mes"ひろゆきに"
>mes dame-ji
>mes "のダメージを与えた" : goto *owari
と三行に分けたら動くかも
0394新しい生徒03/02/26 21:53ID:Y+qlltMl
>>393
たびたびありがとうございました。
何か、プログラム自体は問題無いと思うのですが、コンパイル+実行をすると
すでに名前が使用されているので変数にできませんと出てしまいました。
変数を別名に変えてみます。
0395電波33003/02/26 23:15ID:+V3fv4SA
>>386
演算子だとは思いもつきませんでした。
昨日までdelphiをやっていたので、「Random(1000)」1〜1000の乱数を返す、のつもりで
/や%は()のような記号だとばかり考えて悩んでいました。。。レスありがとうございました。
>>387-388
動かなくなる理由は完全にこちら側のケアレスミスでした。
言語を疑う前にコードを1から洗いなおすべきでした。申し訳ございません。わざわざありがとうございました。
>>389
重ね重ね申し上げますが、まさか演算子だとは思いもつ(以下略)
>スレタイ
次スレではちゃんと変更しましょう。

http://forgamedev.zombie.jp/uploader/up5/img/093.txt
自動販売機です。電波少年的1日目、あと課題3っつです。
0396猫又 ◆quHoSW/FCI 03/02/27 00:37ID:zNuog97q
>>378
 このスクリプト、「たたかう」「キャンセル」を20回ぐらい繰り返すと、
オブジェクト数の上限64個を超えてしまうさかい、エラーになるで。

 あと、変数「dame-ji」やけど、演算子「-」を使うてるさかい、

式「dame-ji=dame-ji+1」は「dame - ji = dame - ji + 1」に分解されてるで。

 それにif文で変数「kai」が出てるけど(たぶん攻撃回数かなんかをカウントする
予定やったんやろ)、他で利用されてへんし。

 最後に、ラベル「*finish」に移動する部分がないんやけど・・・。
0397けう03/02/27 01:23ID:eKR3sXOZ
感動して泣きそう。
ttp://forgamedev.zombie.jp/uploader/up5/img/094.lzh

でもチラツキが気になる。もう寝る
0398電波33003/02/27 02:35ID:F6P2OzyF
>>374
ソースupキボンヌ。どのようにやってるのか知りたいです。
マルチタスク?とかいうやつを使ってるんでしょうか・・・

http://forgamedev.zombie.jp/uploader/up5/img/096.txt
並び替え。あと課題2つ。

塾長!!課題1つ思い浮かばないのでなんか適当なの出してください!
おながいします!
0399塾長03/02/27 02:47ID:XZhCrT/r
>>395
自販機のプログラムだが、switch 文を使ったほうが見やすいと思うぞ。

>>397
ちらつきをなくすには InvalidateRect の第 3 引数を FALSE にしろ!
なぜそうなるのかの理由についてはヘルプを読め!

もう Windows のプログラムは余裕で作れそうだな。
お前はそろそろ、このスレの卒業の時期かもしれん…

>>398
配列を使わず、「リンクリスト」で名簿管理プログラムを作れ。
または「クイックソート」を使ったプログラムを書け。
困ったら Google で調べろ!

俺は明日からしばらく留守だから、各自自習してろよ!
0400◆TPeOraQid2 03/02/27 03:48ID:vA8QjnCP
ソースをうpしろとのことなので
http://forgamedev.zombie.jp/uploader/up5/img/097.lzh

(´-`).。oO(だれか見るのだろうか)
0401電波33003/02/27 04:54ID:F6P2OzyF
課題4っつめ、classの構文と構造を理解する終了。
イメージしていたものと全然違って、関数[]みたいな感じですね。
プライベート宣言したものは、外部からの閲覧すら出来ないようなので、
「int xxx」のように、ただの入れ物として使う為の物なんでしょう、おそらく。
コードは無いようなものなので5つめと一緒にあげます。upろだ無駄に流しても悪いですし。

>>塾長
リンクリストで検索したら糞HPしか見つからずに20分無駄にしてしまったので、
トーマスエンクイストについてのレポートをまとめるからそれで勘弁しろゴルァ!!

>名簿管理プログラム
どんなものかわかんねーよヴォケが
リンクリストって、マルチ?擬似?タスク?とは違うんでしょうか?
とりあえず、絞り込んだら1件hitとか、絞り込まなかったら
【お友達のホームページ】(リンクリスト)とかしかhitしないんで、時間的余裕無いので却下。
クイックソートならクイックソートでヒント出せよな。検索したらコピペで終わるだろ
Googleで調べろって、ルーチンを丸写しじゃねえか。
もっとまともな課題出せねえのかよ!こいつはホームランだな!
そういうのは課題って言わねえんだよ!

>switch文
switch文の事をよく理解していない(エラーが40箇所以上出た)頃に書いたので、
最初は多用していたのですが、エラーの原因がわからず全部if文に置き換える形でエラーを潰した為、
あんなに膨らんでしまいました。break;がどういう働きをするか理解できたので、今なら多分なんとか出来ます・・・

>400
明日ゆっくりと見させていただきまつ・・・敵がわらわら出てくるとこ読みまくらせていただきます。
ありがとうございました。
0402電波33003/02/27 06:23ID:F6P2OzyF
http://forgamedev.zombie.jp/uploader/up5/img/098.txt
凄まじい勢いで退化しているような気もするけど、5課題めって事で。
0403あぼーんNGNG
あぼーん
0404名前は開発中のものです。03/02/27 10:01ID:n/Xg/w0H
age
0405winmainを隠蔽してみた03/02/27 11:25ID:JfZFQlLW
mfcってためになるよなー
0406名前は開発中のものです。03/02/27 12:33ID:xws/eYQX
>塾長
rand() % 1000 じゃまずいんじゃないの?
rand() * max / 32767; ってやらない?
0407あぼーんNGNG
あぼーん
0408電波33003/02/27 16:19ID:UJLkpaWQ
前菜代わりに、とクイックソートをやっていたら7時間経過してしまいました。ピンチであります。

基準を選んで、両端から調べ、見つかったら停止しておき、両方で見つかったらそれぞれを交換、
で、それを繰り替えす=クイックソートって認識だけで組んでおります。
あと4時間くらいで出来そうな気もするのですが、
いい加減時間も時間なので・・・質問です。

こういうものって、どこかからコードパクってきてそれを見て、
ルーチンワークとして単純にメモっておくなり覚えるなりした方がいいんですか?
それとも、真面目に組んだ方がいいんですか?
アルゴリズムを真面目に組むなんてただのヴォケですか?
超絶プログラマーの方、お答えキボンヌです。
0409名前は開発中のものです。03/02/27 17:13ID:X4QGGARt
>>408
あいにく俺は超絶プログラマでも何でもないが
自分に勉強が必要だと思うなら、そういうのはどんどん組んでいいと思うぞ。
データ構造やアルゴリズムの教科書を頑張って読みながらイチから組んでも
いいだろうし、あるいは何かサンプルソースが付属しているものがあるなら
それを参考にしながら組めば効率はあがるだろうし。まぁ勉強目的なら、
その辺は好みで。あとは時間との相談な。
 
時間がいっぱいある学生なら、苦労は買ってでもしたほうがいいと思うぞ。
働きながらだと、マジで勉強する時間は制限されるからな。


0410名前は開発中のものです。03/02/27 19:39ID:7Ff2Tc6l
>>406
下のコードがなにやりたいんだかわからん
0411名前は開発中のものです。03/02/27 19:40ID:u2ULVOM5
>>408
どうやったらそんなにかかるんだよ。
アルゴリズム理解してないんじゃねーの?
0412電波33003/02/27 20:46ID:YS/IDaWi
ああ、理解してない。理解していないさ。もちろん。
そろそろ12時間になるので諦めて他の課題行きます。

特定条件下でのみ動くものなら、7〜8個出来たんだけど、
(降順を昇順にとか、3142なら大丈夫だけど1342なら動かないやつとか)
まあ無理でした。わかんねー。
基準値を取って、それ以下を左にそれ以上を右に、で左端と右端からやってって、
終わったら左辺と右辺で同じ事を繰り返して最終的にdiv 2 で1になるまで繰り返す。んだよな?っていうかもういいや。それどころじゃない。
if、for、whileだけで出来るよね?って言うかマジでわかんねー。放置、放置と。ソートなら出来るし。
0413◆TPeOraQid2 03/02/27 22:40ID:vA8QjnCP
アルゴリズムの勉強にどうぞ
http://aglaia.c.u-tokyo.ac.jp/Java/test/cgi-bin/show.cgi?chapter=algorithm
クイックソートもあるよ
0414電波33003/02/27 22:48ID:YS/IDaWi
http://forgamedev.zombie.jp/uploader/up5/img/099.txt
キターーーーー!!苦節13時間、しかも裏道。見つけたものといえば、BCC Developerのバグくらい・・・
罵倒してください。おながいします。

>413
いや、車輪の再発見をやってるわけでして・・・
とりあえずありがとうございます。
0415名前は開発中のものです。03/02/27 23:11ID:NRq4/oR+
>>414
いや、標準関数でも良くやった方さ。
まさか、コピペで動くから出来たって訳じゃないだろ?

数値比較を返す関数を用意する事を、理解する方が
クイックソートアルゴリズムより、難解のような。

それはそうと、再帰の話が出ないが、再帰なしでクイックやろうとしてるのか?
…まさかな。
0416名前は開発中のものです。03/02/27 23:11ID:X4QGGARt
>>414
>qsort( )

( ゜∀゜)アヒャヒャー

まぁ何だ。ちょっとしたゲームの中では多量の未整列データを溜め込んで
一気にソートせにゃならんような場面は、実はあんまないということに
気付いたりしたら、他のアルゴリズムにもチャレンジしてみてくれ。
0417名前は開発中のものです。03/02/27 23:20ID:rrgh8LFX
アルゴリズムに関する質問、議論総合スレ
http://pc2.2ch.net/test/read.cgi/tech/1014783451/

ムズー
0418電波33003/02/28 00:29ID:rxvorC8v
実はまだクイックソートやっています。我がことながら、往生際が悪いったらありゃしない。
「時間を費やした=がんがった!」と勘違いしている受験生のような一日に終止符を打たねば・・・

>>415
コピペではありません。
片っ端からエラー出してエラー書き換えてってのを数十回繰り返して辿り着きました。
F1が使えないってのがいかんとも厳しい・・・
                                                       ・・・再帰?
>>416
アヒャヒャヒャ。qsortを見つけたのは、以前当スレで紹介していただいたサイトの関数一覧を見ていると、
そのものずばりqsortなるものを発見してしまい・・・という次第です。
他アルゴリズムに挑戦はまた追々、少しアルゴリズムは忘れたいです。
0419名前は開発中のものです。03/02/28 00:31ID:sJzCJLYj
このスレいいね。
0420名前は開発中のものです。03/02/28 01:00ID:sJzCJLYj
安全地帯からの横レスで申し訳ないんだけど、
クイックソートのアルゴリズムがちょっと良くわからないっていうなら、
今更感が強いけどちょっと聞いていきなよ。

―クイックソートの大体の考え方―
クイックソートはまず、ある数の集合Aの中から一つの数aを任意に選んで、Aをa以下の数の集合sAと、a以上の数の集合lAに分けるのさ(sはsmall、lはlarge)。
すると、sAに含まれる数ってのは、全てa以下なわけで、lAに含まれる数っていうのは、全てa以上なわけだね。簡単に書いてみると

(1)sA <= a <= lA

っていう関係になるんだ。ここで、sAに対して、Aの時と同じ操作をすると…

(2)ssA <= a' <= lsA (a'はsAに含まれる任意の数)

っていう関係になるよね。(1)と(2)をあわせると、

ssA <= a' <= lsA <= a <= lA

って言う風になるよね。
あとは、出現する集合が全て値を一つしか持たなくなるまで、同じ手順を繰り返すだけ。
以上、クイックソートの大体の考え方でした。
0421名前は開発中のものです。03/02/28 01:38ID:ts2K0BuQ
うそ!?再帰知らないでクイックですか?出来ない事も無いが、そりゃ12時間やっても出来ないかと…
再帰ってのは、自身を自身の中で呼び出す関数。googleで検索でもすると、サンプルは沢山出てくるよ。
因みに、420さんに便乗させてもらうけど、基準の値を軸に数値を分けるそして分けた片方に、また同じ処理をってので再帰を使う。
つまり、ソートする物が、基準値より小さい値の物ってだけで処理的な部分は使い回せるでしょ?
イメージとしては
1 2 3 4 5 6 7 8 9 10
↓再帰呼び出し(ソートじゃない、二分するだけのイメージ)
1 2 3 4 5
6 7 8 9 10
↓再帰呼び出し
123
45

657
89
↓再帰呼び出し
12
3

4
5

67
8

9
10
って具合だ。実際にはスタックに処理を積んでいるのだが、見た目には加速度的に、枝分かれするが如く数値が分けられていくだろ。
0422名前は開発中のものです。03/02/28 02:12ID:WUder+VO
再帰はSLGとかで移動可能な場所を検索するときに使うけど
あまりやりすぎるとスタック溢れ(?)してフリーズする
およそ10歩ぐらいまでは軽い(2、3秒以内)んだけど
11歩、12歩になると突然のように激重(10秒以上)になる

あんまり多いならばメモリ確保してそっちにデータ積んで
ループしてやっていくほうがいいのかな・・・?
0423あぼーんNGNG
あぼーん
0424名前は開発中のものです。03/02/28 03:07ID:ts2K0BuQ
>>422
少し違う。
SLGやなんかだと、上右下左の四方向に移動力を消費しながら進んで
進んだ先で、まだ同じ処理ってやる訳だ。
スタック漏れじゃくて、再帰で掘り下げてく処理がクイックソートと逆の理論で
爆発的に増えて、returnしなくなっているんだよ。
0425名前は開発中のものです。03/02/28 12:29ID:sJzCJLYj
424さんの発言が気になったので、SLGの移動判定プログラムを組んでみました。
再起は使わず、ダイクストラ法を応用しています。
UNIXで組んだので、バイナリは添付していませんがご了承ください。
コンパイラはgccです。

http://forgamedev.zombie.jp/uploader/up1/img/084.zip

よろしければ、感想なんかをよろしくお願いします。
ついでに、俺は塾生じゃないです(´Д`)
0426新しい生徒03/02/28 13:36ID:TxeuDEcE
#include <stdio.h>

main()
{

     printf("This is a test!");

}


こういうプログラムを書いたのですがコンパイルできないです。どうすればよいのでしょうか。
0427名前は開発中のものです。03/02/28 14:48ID:tmNNMsQY
全角スペースハリアー
0428名前は開発中のものです。03/02/28 14:57ID:jekjvI3K
>>426
エラーの内容読めよ
0429電波33003/02/28 15:16ID:PQLPjVFi
>>420
自分で組んでた時に誤動作の原因としては、
「sA,sA,sA,」を昇順に並び替えようとして、sAと入れ替えるべきものが無い→投了。
とか・・・そういうのはいっぱい作りました。

クイックソート自体の理解が間違っていたかも。
集合sAの個数とlAの個数は=では無いのか・・・。
「sA,sA,sA」に操作を行うと、集合「  」と集合「sA,sA,sA」になるわけ・・・かな?
なんか今やれば、8時間くらいで組めそうな気がするけど(藁

>>421
再帰に関しては、聞いた事はあるけど実装を試みたり、必然に迫られて使用した経験はございません。
なんとなくイメージは掴めたような・・・
二分する(int 数値)
{
if(数値 != 1 )
{
二分する(数値 div 2);
}
}
これで、数値が1になるまで二分され続ける・・・のかな?
再帰ってアルゴリズム以前の基礎的なものっぽい。。。のかな?って言うか出直してきまつ
0430電波33003/02/28 15:16ID:PQLPjVFi
実は、今回答例を見てそのまま組んでみたんだけど、いろいろ意味不明な事が出てきたので、
おそらくあのまま120時間、1200時間続けていても解けなかったと思われ
>>420さんの言っているのと全然違うのをイメージしてましたし。。。
http://forgamedev.zombie.jp/uploader/up5/img/100.txt一応、申し訳程度にup。
forにbreakを使ってる?のとかfor(;;)とか、keytypeとか意味不明。
クイックソートには半月後くらい後にもしまだやっていたら挑戦してみようかと。。。

>>426
エラー内容をダブルクリックしたら当該箇所に飛べますよ。
BCC Developer使用ですが、多分VC++でも似たような事が出来ると思われ。
あと、エラーのある行番号が出たりもすると思う。
■ このスレッドは過去ログ倉庫に格納されています