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

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

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

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

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

・・・作れるのだろうか!?もちろん古本屋で買いあさってくるが
(作れ次第、いずれうpします・・・。いつまでかか(ry))
0041名前は開発中のものです。03/02/07 20:56ID:209GsLY7
>>37
に初心者にしてはよくできてますよ。
最後は舐めてましたけど...
言葉をいろいろ変えてみては?
0042塾長03/02/07 20:57ID:FsHT1GQ2
>>34 >>39
ああ、確かにこの場合は a++ でも問題ない。
むしろ、こういう風に書くことが多いだろう。

しかし!
もし a が C++ のオブジェクトなら a++ と書くことで
一時オブジェクトが呼ばれてしまって遅くなるんじゃー!
(たぶん、>>34 >>39 も知ってるんだろうけど…)
だから、普段からインクリメントは後置にする癖をつけて
おくのは悪くはない!

知らなかった奴は "More Effective C++" を 10 冊背負って
「Meyers先生マンセー」と叫びながら 10 km ランニングしてこい!

(インクリメントネタはちょっと不適切だった。スマソ)
0043名前は開発中のものです。03/02/07 20:58ID:7Fqhc8N7
10冊も買うのか・・・
0044塾長03/02/07 21:00ID:FsHT1GQ2
お前ら、訂正だ!

>>42
「普段からインクリメントは後置にする」

ではなく、

「普段からインクリメントは前置にする」

だ。

俺もランニングしてくるぜ!
0045名前は開発中のものです。03/02/07 21:01ID:VPxiOYps
//答えを述べよ
#include <iostream>

int main()
{
int a = 10;
a += (a++)+a+(++a);
std::cout << a << std::endl;
return 0;
}
0046303/02/07 21:10ID:AD2VRflb
>>40,41
(・∀・)サンクス!!
すぐに手なおしします。
0047塾長03/02/07 21:15ID:FsHT1GQ2
>>45
実験しないで、適当に答えるぜ!
(入門生の諸君はきちんとコンパイルするように)
式の評価順序はC標準で規定されてないから 
a の値は不定(コンパイラ依存)だ、たぶん。
間違ってても俺は気にしないぞ(藁

さて、数当てゲームが作れるならドラクエの戦闘風の
プログラムも作れるな?

 コマンドを入力してください
 1:たたかう
 2:じゅもん
 3:ぼうぎょ
 4:にげる

で、コマンドを入力させる。
「たたかう」を選んだなら、敵のヒットポイントを乱数で適当に減らす。

 ひろゆきはモンスターに 5 のダメージ!

とか、そんな感じで作ってみな!
0048名前は開発中のものです。03/02/07 21:20ID:VPxiOYps
グハァ塾長がいきなり答えを・・・
0049名前は開発中のものです。03/02/07 22:38ID:E97uYEBC
超低レベルなスレ
0050名前は開発中のものです。03/02/07 22:52ID:7Fqhc8N7
千里の道も一歩から
0051鳥骨粉 ◆Je2z2iL6po 03/02/08 00:46ID:XWUYTlGS
塾長!
じゅもんやぼうぎょやにげる等は完全無視してOKですか!
0052塾長03/02/08 00:56ID:CNLu0jZT
>>51
とりあえず最初は無視でいいぞ!
原則としては

 最 初 か ら 大 規 模 な プ ロ グ ラ ム を 書 こ う と す る な

本来なら拡張性とかを考慮してコードを書かないといけないんだが
今からそんなことを気にしてても仕方がねえ!
ボクシングジムに入る前に減量とかしても意味がねえのと一緒だ!

とりあえず動くものを作れ!
0053鳥骨粉 ◆Je2z2iL6po 03/02/08 01:00ID:XWUYTlGS
>>52
了解です塾長!
とりあえず反抗する気なんてさらさらありませんが
反抗したほうがガティムコっぽいでしょうか?
いや、関係ありませんけどね、ゼンゼン。
0054塾長03/02/08 01:22ID:CNLu0jZT
塾長「どうしますか?ディレクターさん」

ディレクター「うーん、そのほうが盛り上がるかなぁ?」

53「とりあえず、私は一期生で一番血の気が多い奴って感じでいこうかと」

ディレクター「最初は生徒が反抗できずに塾長さんにボコボコにされる
  っていう展開を考えてたんですけどねえ」

53「それなら、とりあえず反抗してみて、もし都合が悪い展開になったら
  編集でなんとか誤魔化す風にしたほうがいいかもしれませんね」

塾長「ええ、それでいきましょう」

ディレクター「はい、最近、編集局長からもマンネリだねと言われてますから
  ここでちょっと方針転換ということで」

AD「はい、本番いきまーす」



塾長「ああん? >>53、てめえが俺に反抗するだなんて十年早いんだよ!」
0055名前は開発中のものです。03/02/08 01:47ID:XnSIk77p
>>53-54
ワロタ
0056鳥骨粉 ◆Je2z2iL6po 03/02/08 01:51ID:XWUYTlGS
乱数を発生させて変数から引いていき、0以下になればループを終わらせて
終了させるんだなんて十年早いんだよ!
0057ひよこ ◆jy26/zBhQE 03/02/08 03:30ID:Fsoy2Lk2
(⊃д`)猫でものC言語編からっていうからがんがってやってるのに、C++じゃん。
それでもがんがるから一期生にしてくださいm(  )m
0058名前は開発中のものです。03/02/08 04:19ID:khE5dzUc

   ∧ ∧     ┌──────────
  ( ´ー`)   < このスレ終了しますた。
   \ <     └───/|───────
    \.\______//
      \       /
       ∪∪ ̄∪∪    ((  ((
0059名前は開発中のものです。03/02/08 08:20ID:2U/+z8lu
せっかくなんで塾長さんがこいつらを
プロテストに合格させるっていう企画じゃどうですか?
0060名前は開発中のものです。03/02/08 10:47ID:gz+mqWK1
cout << と printfの違いってなんですか?
現在C言語しかやってないのでprintfしか使えません。
0061名前は開発中のものです。03/02/08 10:55ID:/qoQVOaU
ActiveBasicはなかなかいいですよ
0062名前は開発中のものです。03/02/08 12:10ID:LMmnaQoD
プロテスト
http://www.pyramid-inc.net/prg_introduction.html
0063塾長03/02/08 16:01ID:CNLu0jZT
>>56
ごちゃごちゃ言ってねえで手を動かせ!

>>57
CでもC++でもJavaでも歓迎だ!
ただし、口だけの奴は来なくていいぞ!

>>59
プロテストについてはディレクターと相談の上で決める。

>>60
cout ってのはC++の標準出力ストリームって奴で、
簡単にいうと C の printf と一緒だ。
C で書いてるなら printf を使え!
00646003/02/08 17:17ID:gz+mqWK1
>>63
将来的にはどっちが有効ですか?
若いうちに矯正しようかと思ってます。
0065塾長03/02/08 21:27ID:OKJ+TaT6
>>64
若いうちに矯正だと!?
お前は上野クリニックの回し者か!?
包茎を直せば、女にモテモテだとか思ってないか!?

…まあ、いい。
C で書いてるなら、必然的に文字出力には printf を使うことになる。
もし C++ で書いてるなら、printf も cin も使える。
cin などの標準入出力ストリームは、後々便利だったりするが、
将来的にも printf と cin の両方を使うから、書式ぐらいは覚えておけ!

ボクシングで言えば、トランクスは赤色がいいのか、それとも青色がいいのか
といった程度の話だから、赤色のトランクスも青色のトランクスも両方穿ける
ようにしておけ!

「僕は包茎だから、ビガーパンツを穿いて試合に出たいです」

なんてことを言う奴は帰れ!
0066塾長03/02/08 21:33ID:OKJ+TaT6
>>65
畜生、また訂正だ!

C の標準出力は printf を使え!
C++ の標準出力は printf または cout を使え(cin じゃねえ)!

入力に何を使うかは、人それぞれだが

C : fgets, gets, getchar, scanf
C++ : cin 及び上記の Cライブラリ関数

といったところだ。
それぞれ一長一短があるが、それについてはそのうち覚えるはずだから
あまり気にするな。
00676403/02/08 21:57ID:gz+mqWK1
http://forgamedev.zombie.jp/uploader/up1/img/075.lzh

数当てゲーム作りました。
流れに遅れまいと短時間で作ったので弱いです。

反省点
・今まで通りprintf/scanfを使ってしまった。
・初めてのランダムだったので色んなサイトをまわるはめになった。
・3さんのソースを少し見てしまった(ランダム数値のとこ)。
00686403/02/08 22:31ID:gz+mqWK1
http://forgamedev.zombie.jp/uploader/up1/img/076.lzh

ひろゆきとのバトル作りました。
攻撃と防御しかないです。
0069ひよこ ◆jy26/zBhQE 03/02/08 23:02ID:pqLbx+qu
http://forgamedev.zombie.jp/uploader/up1/img/078.lzh

ドラクエ風のバトル作りました。
攻撃と防御と逃げるしかできません。
C言語です。
0070塾長03/02/08 23:07ID:OKJ+TaT6
>>67
よし、基本はできてる!いいぞ!
あとは >>40 でもちょっと書いたが、0-99 以外の数が入力されたら
警告文を出すようにしてみろ!

>>68
数当てゲームを応用すれば、こういうのが作れることがわかったな!
上と同様に 1と2 以外の数が入力されたら「違います」と表示させるように。

それから、他人のソースを参考にするのは全く問題ない。
俺だって最初はネット上のサンプルプログラムを見たりする。
やり方を覚えて、自分でゼロから同じようなプログラムを書けるようになればいい。

参考までに
・main() は void main() ではなく、int main() にして最後に return 0; を入れておけ!
 これについて語り出すとスレ一個消費してしまうから詳しい説明はしないが
 おまじないみたいなもんだ。

・scanf() は世間では結構嫌われている関数だ。
 gets() または fgets() と atoi() を使ったほうがいいが、
 その前に「配列」っていう奴を覚えないとならないから、今はそれでいい。
0071塾長03/02/08 23:25ID:B2NmrZjg
連続投稿規制がきついぜ、畜生!

>>69
やるじゃねえか、このひよこ野郎!
関数を呼び出したり、配列を使ったり、おまけに構造体も使ってやがる!
かなりいいぞ、この調子で根性入れて進んでいけ!

ただ、俺が口を酸っぱくして言ってる通り、1 と 2 以外の数字が入力された
時の処理が入ってないな。

あと、関数の引数は小文字にしたほうがいいぞ。
大文字にするのはマクロ (#define で定義する奴)だという C プログラマの
暗黙の了解があるからな。

細かいことになるが、インデント(改行位置や段差)が統一されてないために
ちょっとソースが読みにくい。入門書などのソースの書き方を極力真似する
ようにしてみてくれ。

それから、質問はいくらでもオッケーだが、その前にこれだけはやれ!

・C/C++ の入門書の目次・索引などで調べる
・猫でもわかるプログラミング (http://www.kumei.ne.jp/c_lang/) を見てみる
・Google で検索してみる

以上、解散!
0072名前は開発中のものです。03/02/09 00:16ID:0hPTzrmS
69のソースを見て思ったんだけど他ファイルからの敵データを読み込むときどうするの?

例えばこんなとき

enemy.txtに
スライム HP10 at3 df3

0073塾長03/02/09 00:37ID:x7u9JGmV
>>72
すまん、ちょっと質問の意味がわからん。
>>69 は get_enemydata() で fopen() に敵データが格納された
ファイル名を与えて、fscanf() で一行ずつ読み込んでるんだが…。

あと訂正だが >>69 はきちんと範囲外の数値のチェックしてたな。
「よそ見をしている」を見落としてた、悪かった。
0074303/02/09 00:40ID:jw4JsFpz
遅れましたができますた。
http://forgamedev.zombie.jp/uploader/up1/img/079.zip
醜いソースでごめんなさい。
みんなすげーや。
00757203/02/09 00:46ID:0hPTzrmS
塾長お疲れ様です。

えっと、敵のデータを他ファイルに格納しているときに
どうやって敵のステータスを取得するのかなって思ったんです。

例えばファイルに
名前:スライム HP:10 攻撃力:1 防御:3
名前:からす   HP:11 攻撃力:4 防御:3
というように敵データが格納されているとき
データを取得するときはどうのようにすればいいのかなっておもったんです。

ところで今夜は宿題は無しですか?
00767503/02/09 00:55ID:0hPTzrmS
ごめんなさい。
ひよこ氏のソースを見て理解できました。

しかし、ひよこ氏はすごいな。
ソースを研究させてもらいます。
0077塾長03/02/09 01:00ID:EKddfl4f
>>75
C言語でのファイル入出力は「猫でも〜」のC言語編の18〜20章に
書いてあるから、参考にしてみてくれ。
C++だとC++編の26章だ。
>>69 のソースを自分でいじって実験してみるのもいい。
さすがに手取り足取りという訳にもいかないので、これくらいで勘弁な。

>>74
おう、いいじゃねえか。
「じゅもん」とか「ぼうぎょ」とかも入れてみな。
あと、この調子だと while ループの中がどんどん大きくなってくるから
関数呼び出しを使ってみろ!

switch (comand ){
case 'a':
attack(); // 「たたかう」関数
break;

case 'b':
escape(); // 「逃げる」関数
break;

default:
other(); // それ以外
break;
}

今夜の宿題は無しだが余力があれば、ダメージを乱数じゃなくて
攻撃力と防御力を考慮した結果の値にする、とかも試してみろ。
>>69 が結構いいコードを書いてるから、やり方を盗んだりとかな。
あとは、「猫でも〜」とか入門書で自習!
0078303/02/09 01:10ID:jw4JsFpz
>>塾長
ありがとうございます。
さっそく手直しして、自習に入りまつ。
0079鳥骨粉 ◆Je2z2iL6po 03/02/09 03:44ID:G31ILSYR
一期生の俺を忘れないでくれ!
と、プログラム自体はスカスカのボロボロです。
http://forgamedev.zombie.jp/uploader/up1/img/080.lzh
ショボーンすぎでつが。
0080名前は開発中のものです。03/02/09 04:12ID:rmtGlkeQ
ん、ソースの添削は必要ないのか。自信家だな。
とりあえず怖くて実行できんかった。許せ。

【参考】過去の出来事
http://pc2.2ch.net/test/read.cgi/gamedev/1043859996/20-31n
http://pc2.2ch.net/test/read.cgi/gamedev/1035868749/
0081名前は開発中のものです。03/02/09 05:35ID:VMyX9HSy
>>79
ソース見せてくれないとちゃんとアドバイスできない。
でも、実行したかんじでは問題なし。
塾長のカキコ参考にしていろいろと改良して見れ。
0082416 ◆quHoSW/FCI 03/02/09 05:58ID:RFW+vmMB
 塾長、ええキャラやな。C言語詳しそうやし、がんがれー。応援してるで。
0083名前は開発中のものです。03/02/09 12:13ID:0hPTzrmS
構造体と関数呼び出しがなかなかできない・・・
0084リアル厨房並03/02/09 13:56ID:6GN0SguB
の知識しかないんですが俺にも基礎からやればちゃんとゲーム作れますか?本当に0からのスタートなんです。よろしければ2期生に加えてもらいたいです。
0085名前は開発中のものです。03/02/09 14:18ID:FKo3/uzc
>>84
参加は自由。どんどん前にススメ。
0086リアル厨房並03/02/09 14:24ID:6GN0SguB
>>85
ありがとうございます!けどマジでなんもわからないんで
何からやっていいかもわからないんです(^_^;)
0087名前は開発中のものです。03/02/09 14:30ID:FKo3/uzc
>>86
http://www.kumei.ne.jp/c_lang/
0088名前は開発中のものです。03/02/09 14:57ID:0hPTzrmS
1って現在20歳くらい?
0089塾長03/02/09 15:50ID:IctyHR1A
>>79
ソースも出せないチキン野郎め!
俺は実行ファイルだけのものは見ないぞ!
理由は >>80 が書いている通りだ!

>>86
Visual C++ .Net Standard と C言語の入門書を買って来い。
一万円くらい必要だが、厨房・工房ならお年玉で、大学生ならバイトして買え!
実は Borland C++ Builder とか gcc なら無料なんだが、
なんだかんだ言って VC++ のほうが参考資料が多いからな。
それに、自分で金出したほうがやる気になるだろ?

その後は入門書を読んで、>>87 の「猫でも〜」も見て、数当てゲームを作れ!
0090塾長03/02/09 16:02ID:IctyHR1A
>>83
構造体ってのは、変数を一つのグループにまとめただけだ!
ソースの先頭のほうで構造体を定義して、
struct player {
int hp;
int mp;
};

あとは main() なり、関数の中で

struct player oresama;
oresama.hp = 10;
oresama.mp = 5;

って感じで使えばいい。

関数については、よく使う機能を一つにまとめたものでしかない!
難しく考えるな!他人の書いたソースをいじれ!

構造体や関数はドラクエ3で言えばカンダタ程度の中ボスだ!
もっと先には「ポインタ」っていうバラモス級の恐ろしい奴がいる!
お前らの伝説はまだまだ始まってねえぞ!
0091名前は開発中のものです。03/02/09 16:07ID:y75Qz82t
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  終  了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
0092名前は開発中のものです。03/02/09 17:02ID:SxDc73ZZ
>>84
>本当に0からのスタートなんです。

http://yaneurao.hp.infoseek.co.jp/ygs/ota25/
0093名前は開発中のものです。03/02/09 17:46ID:5fnLPPZ6
結局、ActiveBasicは使わないんですか?
フリーの開発言語にしてはすばらしいと思うんですが…
00948303/02/09 17:54ID:0hPTzrmS
構造体と関数の利点がようやくわかってきました。
今ひろゆき戦を再作成してます。

>>84
なんとかなるさ。
0095鳥骨粉 ◆Je2z2iL6po 03/02/09 19:22ID:G31ILSYR
>>89
んだとコラ!
ソース晒せだと!?
成る程。全てまとめて圧縮しまつ。
0096鳥骨粉 ◆Je2z2iL6po 03/02/09 19:28ID:G31ILSYR
予期せぬEOFが検出されたとかでコンパイルできない…
何故だ…
0097名前は開発中のものです。03/02/09 19:38ID:zVw8adpQ
>>84
 そういえば昔同じような事を言った学生がいたな……

 プログラムはアートではない。確かに一部センスや才能が関わる部分もあるが、
 基本的には勉強すれば誰でも出来ることだ。
 誰だって、私だって0からスタートしたよ。

 いいかね。自分の力を疑ったら何も出来ないぞ。
 正しい知識を一つ一つ積み重ね、学ぶべきことを学んでいけば、
 誰だって確実にプログラムを組めるようになる。
 断言できる。
 学ぶ気持ちさえあれば絶対に成せるものだ。

>>90
>「ポインタ」っていうバラモス級の恐ろしい奴がいる!
 でも一度飼いならすと、もうそれ無しでは生きて行けないくらいのモノよね(笑
0098塾長03/02/09 19:38ID:IctyHR1A
>>93
それは単に俺が ActiveBasic を知らんからだ!

>>95
ああん?なんだその態度は!
「私の恥ずかしいソースを見てください、塾長様」
くらい言えねーのか?!
0099名前は開発中のものです。03/02/09 19:49ID:QY+T3Yh8
ActiveBasicなどという珍妙な代物を推すのは一体何故?
01009303/02/09 20:18ID:ddmMntQH
>>98
塾長、こちらでございます。
http://www2s.biglobe.ne.jp/~yamadai/
>>99
@Basicだと文法がわかりやすいので
AActiveBasic(以下AB)にはフリーソフトなのにRADツールが付いていて簡単にWindowsプログラムが作れるから。
B(私の場合)Windowsプログラムの簡単な構造が理解できるから?
C構造体やプロシージャが使え、N88Basicに比べCなど他の言語に移行しやすいから。
D簡単なプログラムの場合、Cなどを使うより圧倒的に早く、簡単に作れるから。
私の場合はこういう理由です。

ついでに100ゲト。
0101塾長03/02/09 20:30ID:IctyHR1A
>>100
ActiveBasic の優位点はわかった。
しかーし、それは「少林寺拳法はボクシングより強い」って
言ってるのと何一つ変わらん!
実際、書いてみれば言語の違いなんてどうってことはねえ。
だからプロも使っていて、参考資料も多い VC++ でやろう
ってのが俺の考えだ。

もちろん、初心者に ActiveBasic なり VB なり HSP を教えてやる
って奴がいたら大歓迎だ!
01029403/02/09 20:32ID:0hPTzrmS
http://forgamedev.zombie.jp/uploader/up1/img/081.lzh

作り直しました。
構造体と関数の学習中心で。
0103名前は開発中のものです。03/02/09 22:08ID:sXGXYuyy
        ∧
       _|::::|__
      /::|::::|  \
     /   |:::|   :\
    /    ||    :ヽ
   ┌|(⌒ヽ :|| ..:⌒: |┐   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   |::|::ヽ.__:):||(___ノ ::|::|  │ いつもゲーム製作技術板を応援してくれてありがとう。
    |:|: ..   :||    .. |:|  │ このスレは急に終了することになった。
    :|: ..   ||    ..|| <  いつまたみんなの前に姿を見せる事ができるようになるのか、
     :\ [_ ̄] /::|   │ 私にもわからない……
::     |\|_|_|_|_/:::|    \____________
   __| |   / / :|___
   \ _| \   /........ノ~  -r  \
  \....|:::\:\丿 /, /,/.../._ \
  /....\.レ... /\..| /  / / ̄ `\
  レ.........|/..../ R‐\′
0104名前は開発中のものです。03/02/09 22:48ID:QY+T3Yh8
>>101
同意。

ただし、「少林寺拳法はボクシングより強い」ではなくて
「少林寺拳法の通信講座はボクシングより楽」じゃないか?
0105ひよこ ◆jy26/zBhQE 03/02/10 00:42ID:oMbo8MBh
>>塾長
アドバイスありがとうございます。
精進いたします。

私も訂正しました。「たたかう」と「にげる」しかできません。
http://forgamedev.zombie.jp/uploader/up1/img/082.lzh
できるかぎりインデントに気をつけてみました。
マクロを大文字、変数を小文字に統一してみました。
ファイルを分割しました。(main.cが本体です。)
今後もこのファイルを更新して完成させつつ、課題をこなしたいと思います。

>>同士のみんな
供にがんばろう、リングの上では独りでも練習の場ではみんながいるさ。
切磋琢磨しようぜ。
みんなのプログラムも今日見せてもらいました。どうもです。

ってこんな馴れ合いっぽくしたらプロデューサに怒られそうだな(w
0106KKKKK03/02/10 10:22ID:BBp2SEGo
一応>>102です。

みんなのソースを見たんですが、スゴイですな。
とくにひよこさん。貴方のソースでこれからも勉強させてもらいます。

0107スパルタ03/02/10 15:03ID:TRo9ucMD
>>106
スゴイですなだぁ?勉強させてもらいますだぁ?

ホ ー ム ラ ン 級 の バ カ か 貴 様

貴様は何故ココにいるんだ。(竹刀であご先グリグリ)

ボサっと突っ立ってんじゃねー。トットと参加しろ!
それが嫌ならウチに帰ってママのおっぱいでもしゃぶってろ!
0108スパルタ03/02/10 16:24ID:TRo9ucMD
んご。よく読んだら94=KKKKKだったのか。
スパルタを空振っちまった。スマンの。

>ひよこ
>81.lzh
>KKKKK
>82.lzh

余裕があるなら、
メニュー項目、敵・味方の数が動的に変化する場合に
対応することを考えた場合に、今のコーディングスタイルでは
どんな問題が予想できるか、その考えを述べよ。

0109塾長03/02/10 20:56ID:pyEAMejp
お前ら凄いぜ!
俺は(素で)感動してる!

>>102
よし、構造体も関数もばっちりだな!
今度は、「関数に引数を渡す」って奴に挑戦してみな!
あと、攻撃力 100 防御力 -90 だと一応合計 10 に収まることになるが
それでいいのか? もしよくないなら、直せ!

>>105
馴れ合いしてんじゃねーぞ、オラ!
ここは 2ch で一番殺伐とした板なんだからな!
(ちょっと笑えないか…)

まあ、ともかくだ。かなりゲームらしくなってきたな >>105
インデントもそこそこ揃ってる。

なぜインデントを揃えなきゃならないのかというと、
{ と } などの対応関係がわからなくなると、} の閉じ忘れをして
>>96 みたいに 「予期せぬ EOF (End of File) が発生しました」
ってなることがあるからだ!

ひよこ野郎の課題は >>108 が書いてることを考えてみること!
他の奴らも答えを考えたり、各自の続きをやれ!

質問はいくらでも構わん!
ただし質問の前に >>71 で書いたことを実践してからな!
さらに、生徒・教師ともに募集中だ!
0110けう03/02/10 21:54ID:dIIaGrcu
>>74さんと一緒ですが添削お願いします。
http://forgamedev.zombie.jp/uploader/up5/img/046.lzh
0111塾長03/02/10 22:25ID:pyEAMejp
>>110
短いながらも構造体、関数、おまけにポインタも使ってるな!
基本的なプログラムのフロー(流れ)はいいぜ!

ただし!
Judge() の switch 文に default がないぞ!
無くても一緒じゃん、なんて言うなよ!
あと、Judge() の最後で必ず値を返せよ!
ちなみに VC++ だと「値を返さないパスがあります」って警告が出るな。

cin のエラーチェックについては >>40 で書いた通り、
入力直後に cin.fail() でエラーチェックし(エラー発生なら true を返す)
エラーが起きたら cin.clear() と cin.ignore() を呼んでエラーをクリアだ!

直すべき点はいろいろあるが、プログラムの設計は十分合格点だ!
「じゅもん」とか「ぼうぎょ」とかいろいろ機能を加えてみな!
011210603/02/10 23:27ID:BBp2SEGo
今後名乗るならどれがいいと思いますか?
・レス番
・KKKKK
・今のIDからSEGO


0113名前は開発中のものです。03/02/11 00:52ID:yd8Ti8m9
ペイピッポォファンクラブ会長と名乗れ
0114ひよこ ◆jy26/zBhQE 03/02/11 02:06ID:6eis2C/X
>>スパルタさん
>ひよこ
>81.lzh とは??何を意味してるのでしょうか。
課題:問題ありすぎで、なにから言ったらいいのやら。
1.戦闘処理がうまくいかなくなる。
2.生存確認があいまいになる。
3.っていうかほとんど全部だめっすよ。etc...

解決策というか次回提出分にはパラメタ(characterの構造体)に
battle_type //攻撃タイプ(どのコマンドが使えるキャラか)
magic_type //魔法タイプ(どの魔法が使えるキャラか)
heart //敵か見方か
act_select //選ばれたコマンド
maind //状態
などを持たせて各処理に混乱が起こらないようにする。

ゲーム開始時に主人公たちのデータをファイルから読んでくる。
ゲーム開始時に主人公たちのデータをプレイ中の能力値として上記とは別に格納する。
ゲーム開始時に主人公から順に味方にはb_ent_numエントリナンバーを配布
戦闘開始時にモンスターに順につづきのb_ent_numエントリナンバーを配布
現在戦闘に参加しているキャラの総合を確保しといて、動的に操作する。
0115ひよこ ◆jy26/zBhQE 03/02/11 02:07ID:6eis2C/X
あとはb_ent_numとheartとbattle_typeに従ってそれぞれコマンドを入力(攻撃対象なども選択)
選んだコマンドはact_selectに格納。
speedパラメタに従って順番を決める。早いもの順にact_selectにしたがって行動を行う。
逃げるコマンドは例外で、攻撃タイプがゆうしゃまたは、モンスターの逃げるタイプ
のもののみが使える。ゆうしゃは逃げるに成功したら戦闘終了。モンスターは逃げれ
たら攻撃を受ける対象から除外(体力を−1にする)。
体力が0は死亡。−1は逃亡。戦闘終了確認をエントリしてるすべてのキャラのうち
体力が0以下の者は次以降攻撃対象にならない&コマンド入力等行わない。
味方か敵のすべてのキャラのHPが0以下であれば戦闘終了。
味方勝利の場合は経験値とお金を受け取る。

とまぁ色々いってますが、わからないとおもうので、プログラムにして近いうちに
提出いたします。
0116ひよこ ◆jy26/zBhQE 03/02/11 02:12ID:6eis2C/X
>>塾長
WindowsXPの環境だとコマンドプロンプトしかなくて?MS-DOSのグラフィック操作
(色やカーソル操作や消去)が使えないんですが、どうしたらいいですか?
現在それらはマクロで定義して#ifdefで環境によってマクロの定義内容を変えてます。
どうしようもないんですかね?
0117名前は開発中のものです。03/02/11 08:12ID:QeyMAUTw
NTコンソールはMS-DOSじゃないので、エスケープシーケンス等は動かないと思われ。
0118ひよこ ◆jy26/zBhQE 03/02/11 09:14ID:6eis2C/X
>>117さん
なるほど、ありがとうございますm( )m
0119名前は開発中のものです。03/02/11 09:31ID:WgPoF2Gk
で、1はどうした?
0120名前は開発中のものです。03/02/11 16:18ID:qlnlHBBb
ポインタを勉強してるんですけど利点が分かりません。
アドレスが分かると良いことあるんですか?
0121名前は開発中のものです。03/02/12 00:10ID:daqe7X1D
>>120
良いことなんてありません。
馬鹿な大人が僕らを騙してるだけです。
コーヒーをブラックで飲んでいるようなものです。
0122ひよこ ◆jy26/zBhQE 03/02/12 01:57ID:88SY88lI
今日も「猫でも」をやってたらコンソールアプリなるものがでてきました。
これでまたグラフィック操作ができるようになりました。よかった。
0123名前は開発中のものです。03/02/12 02:58ID:zFDnoy5y
>>121
そうそう。
すべては固定長の配列で事足りるんだよね。
メモリだってcharの1次元配列だし。
0124名前は開発中のものです。03/02/12 08:02ID:BL2N9HIC
>>120 >>121 >>123
愚か者共め。
貴様らのような奴を見ると技を教える気も失せたわ。
というか基本もなってないような奴等に教えても分からんだろうがな……

塾長に教えを請いて、間違った知識を捨てて文字通り一から学べ! 未熟者共めが。
012512103/02/12 10:46ID:z/Jc/Eja
>>124
お願いです。教えて下さいよ。
このままじゃ帰れへんのですよ。
0126名前は開発中のものです。03/02/12 11:02ID:q8qyCfs/
http://www.agemasukudasai.com/bloom/
0127名前は開発中のものです。03/02/12 12:35ID:daqe7X1D
>>125
御輿やないねんから、ってか?

実際、市販のゲームは殆どポインタ使ってないですよ。
素人さんが悩むのを笑いたいだけなんですよ。
ジオングの足のようなもの。
0128名前は開発中のものです。03/02/12 13:11ID:BL2N9HIC
>>127
ははは(笑
死ね糞プランナーめが

プログラマだったら今すぐ首吊れ
0129名前は開発中のものです。03/02/12 13:14ID:XgkvLv6s
つまらない言語論争はやめれ。
0130名前は開発中のものです。03/02/12 15:34ID:tIdmLT/F
言語論争とかそう言うレヴェルじゃないだろ
ポインタ使わずにまともなげーむができてしまってたとしたら
それはそれですごいな
0131名前は開発中のものです。03/02/12 15:52ID:s0LO2bc3
            o.
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無様に .  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    モララーより     /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
0132名前は開発中のものです。03/02/12 18:45ID:daqe7X1D
初心者の皆さん、>130のような輩に騙されないでください。
何故ならほら、誰もポインタの有用性を語らないではありませんか。
これはポインタが不要であることの証明です。
0133 ◆zRDVDemY/c 03/02/12 19:11ID:KqfQp2k0
ポインタを使えば、ソースが見難くなるだけですよ。
よく、入門書などに、ポインタを使えば処理が高速になると書いてあるが、
それは昔の話で、今のコンパイラは最適化などの機能があるし、
昔のCPUよりも高速なので、早くなったとしても0.01秒ぐらいしか変わりません。
0134 ◆zRDVDemY/c 03/02/12 19:13ID:KqfQp2k0
それより、ゲーム作るんだったらコンソールアプリなんかやってないで、DirectXやれよ。
0135塾長03/02/12 19:22ID:5dJn5jf0
おお!荒れてるのか?盛り上がってるのか?
まあ、とにかく

 ガ チ ン コ っ ぽ く な っ て き た じ ゃ ね え か!

ポインタ(というよりも malloc 等を使った動的メモリ取得)の利点
の一つとして、実行時に、使うメモリの量を指定できるってのがある。
配列の場合は、コンパイル時に大きさを指定しないといけない
っていう制限があるからな。

だったら、最初から大きいサイズの配列を確保しておけばいいだと?
んなことしたら、スタックオーバーフローが起きてプログラムが異常終了
するじゃねーか!(static 等で静的領域に確保するという案は却下だ!)
第一、1万円足りないときに100万円借金するバカがどこにいる?

後は、関数に渡す引数としてポインタ使うことがある。
void swap(int *a, int *b);
普通、関数ってのは渡された引数の中身を変更できないんだが、
ポインタを使うとそれが可能になるんだな。

つーか、お前ら fopen() でファイルを開くときに FILE *fp っていう
ポインタを既に使ってるじゃねーか!
0136名前は開発中のものです。03/02/12 19:28ID:FVW1yyNB
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0137名前は開発中のものです。03/02/12 19:57ID:jHcqrBe0
時と場合によって使い分ける」これが高度なプログラミングですよ
0138塾長03/02/12 20:06ID:5dJn5jf0
>>137
まあ、正論なんだがな。
メモリが限られたマシンで組むなら、最初から全部固定領域にするってのもある。
いずれにしても、ポインタを使えるようにしないとCで組むのは厳しいだろう。
C++でも全部参照にできるわけでもねーしな。
0139けう03/02/12 21:36ID:R0r8JsA9
classと、塾長の言うcin.fail()を使って>>110を作り直してみました。
ttp://forgamedev.zombie.jp/uploader/up5/img/052.lzh
呪文とか防御はまだです。

cin を sin60°と書きそうになる、、ときはないですか、ソウデスカ

ポインタの話題がでてるので勝手に参考リンク
ttp://www.tomozo.ne.jp/yamazaki/download/doc_without_pointer.htm
0140名前は開発中のものです。03/02/12 21:37ID:H/a0D003
おまいらマ板逝け
■ このスレッドは過去ログ倉庫に格納されています