【初心者】課題をクリアしていくスレ【講習会】
■ このスレッドは過去ログ倉庫に格納されています
ゲームに必要な要素を先生が出してくれます
その課題をクリアしていく講習会です 画面出入力
キー入力
ファイル読み書き
演算
これを(どれか一つもしくは複数)満たすように簡単なお題を出していけば、基本何でも作れそうだが もっと整理してみた
画面表示(キャラと背景)
入力(キーかマウス)
演算(当たり判定)
ファイル読み書きは少し後でいいんでない? 上の講義のサンプル見ると、テトリスの得点を保存させるとか、オセロの盤面を保存させるとか
ちょっとした事だけでも分かると夢が膨らむかなぁと思って。
直ぐに必要になるものでもないから後でもいいね ぷよぷよはくっつきまで表示できるようになれば合格かなぁ ぷよの場合は、何個くっついてるか?の判定ができれば合格じゃね? はっきり言ってくっつくとかさっぱり分からないまま放置。
ライフゲームまではやったんだがなぁ。 プログラミングの知識ほぼゼロですがC言語に挑戦してみようと思います。
690の「段階的学習!」のコメント欄によると
>一番の最初には数当てゲーム。その次にマスターマインドとか。この辺から始めないとな -- 2005-11-25 (金) 02:10:27
とあるので、まず数当てゲームの作成に取り組んでみます。
>>691じゃないけど数当てゲーム作った
scnafで%cを使うと無限ループになるけどなんで?
//数当てゲーム
#include <stdio.h>
#include <stdlib.h>
int main()
{
int gameover = 0;
int seikai = 0;
int kaitou = 0;
char replay = 'y';
char buf[2];
while(replay=='y')
{
printf("1-9の数を直感で当てます。\n");
seikai = rand() % 9 + 1;
while(kaitou != seikai)
{
printf("1-9の値を入力して[ENTER]を入力:");
scanf("%d", &kaitou);
}
printf("正解です!!\nもう一度プレイしますか?[y/n]\n");
scanf("%s", &buf);
replay=buf[0];
}
return 0;
}
>>693
とりあえず、
・srand()を使わないと答えのパターンが毎回同じになること
・rand()のような線形合同法が用いられている(と推測できる)関数の
返り値の余りを採るやり方は、数値が偏りやすくなる可能性があること
を覚えるべき。2番目はわからなければ今は無視してもいいけど
1番目だけは絶対に理解しておくべき。 %cで1〜9を入力すると数字の'1'(0x30)〜'9'(0x39)になる。
%dで1〜9を入力すると数値の1(0x0)〜9(0x9)になる。
この場合欲しいのは数値なので%dで正解だと思う。 >数値が偏りやすくなる可能性があること
気になったので実験。
下記プログラムにて偏りを目視で確認してみた。
(実行結果:http://gamdev.org/up/img/11312.phps)
67と68を境に出現頻度が変わってる。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
long int hit[100]={0};
long int i;
srand((unsigned)time(NULL));
for (i=0 ; i<1000000000 ; i++)
{
hit[rand()%100]++;
}
for (i=0 ; i<100 ; i++)
{
printf("%d\t%d\n", i, hit[i]);
}
return 0;
}
>>696
(整数演算で)「乱数範囲÷100×100」以上は再試行しないと… 仮説をたててみた
乱数の元になる数が0-9の10種類で出現する可能性は同じ
乱数の元:0 1 2 3 4 5 6 7 8 9
0〜2の乱数出力時の式
式:rand() % 3
乱数の元から0〜9が1回ずつ登場した場合
出力数:乱数の元
0 : 0 3 6 9
1 : 1 4 7
2 : 2 5 8
だから、>>696の実行結果はある値を境に出力頻度が変わった
これで正解?ちょっとググってくる
>>697
「乱数範囲÷100×100」って「乱数範囲」では?
乱数範囲%100を100セットってことかな 例えば乱数範囲が0〜65535なら
65535÷100×100=65500になる。
65500〜65535は%100すると
結果のバラツキに繋がるので捨てるのが基本。 乱数範囲による偏りに加えて、
線形合同法による乱数の下位nビットの周期が
高々2^nという点にも気をつけないといけない。
つまり、下位1ビットの周期は高々2^1 = 2。
偶数しか生成しないか、奇数しか生成しないか、
偶数と奇数が交互に生成されるかの3パターンしかない。
よって、線形合同法による疑似乱数生成関数randでサイコロを作ろうとして
rand()%6+1とかやっちゃうと、2人で遊んだ時に
片方のプレイヤーが偶数の目だけ、もう片方が奇数だけという状況が生まれる
(これをやっちゃった有名な例がカルドセプトサーガ)。
今でもCのrand関数は線形合同法のような形で実装されていることが多いけど、
下位kビットを捨て、k+1ビット目からを1ビット目と見なすことで
周期性の問題を解決しているものもある。 1〜100までの数が書かれた玉が1個ずつ入った箱から、玉を取り出す場合は、どの数が出てくる確率も同じだけど、
1〜100までの数が書かれた玉が1個ずつ入っていて、さらに1〜10の玉を箱の中に追加したら確率が変わる。
そういうことだな。
で、余分に入れちゃった1〜10を取り除く処理が必要というわけだ。
rand()から得られる乱数範囲 : 0〜65535
取得したい乱数範囲 : 0〜99
の場合、0〜99が同じ確率で得られるように
65535 - (65535 % 100) = 65500
を超えた部分は捨てる
つまり、rand()の戻り値が65500より大きかった場合は、無効な範囲から取得したとして
rand()による乱数取得をもう一度やりなおす。
プログラムの流れをまとめてみた
1. rand()を実行
2. もし、rand()の戻り値が65500より大きいなら1.へもどる
3. rand()の戻り値を100で割った余りを得る
4. おわり 数当てゲームはこんなので良いですかね
1.ウィンドウを表示する
2.ランダムに1〜10までの数字を一つ表示する
3.数字を入力して、その数字を表示する
4.2の数字と3の数字を比べて、入力された数よりも大きかったらBig
小さかったらSmallと表示させる
5.3と4を3回繰り返させる
もし正解したらそこでゲームを終わりにする >>702
間違っています。
以上。
↓次の方どうぞ はい、次の人です。
お前の安価が間違ってるぞ、と。 過疎ってるけれどお邪魔しますよっと
いきなりパックマン作ろうと思って挫折したので、
一からこちらで勉強しにきました
数当てゲームから挑戦していきたいと思います 1.数当てゲーム
Level1 ウィンドウを表示する
ttp://www.geocities.jp/shobo_dankaiteki/
1.数当てゲーム
Level2 ランダムに1〜10までの数字を一つ発生させ、表示する
ttp://www.geocities.jp/shobo_dankaiteki/ 1.数当てゲーム
level3 数字を入力して、その数字を表示する
ttp://www.geocities.jp/shobo_dankaiteki/
1.数当てゲーム
Level4 Level2の数字とLevel3の数字を比べて入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。
ttp://www.geocities.jp/shobo_dankaiteki/
int main()
{
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH|GLUT_ALPHA);
glutInitWindowSize(800,600);
glutInitWindowPosition(0,0);
glutCreateWindow("ロボット");
init();
glutReshapeFunc(reshape);
glutKeyboardFunc(key_press);
glutDisplayFunc(draw);
glutMainLoop();
return 0;
} >>712
現在地も目的地もわからなければ道案内はできない
とりあえずプログラミング暦(スクリプト、ツールを含む)と最終的な目的(RPGが作りたいとか
Cをマスターしたいとか)を書いてくれ
基礎からと言うならまずは英語かな。
英語を読むことができれば海外の情報をゲットできるよ。
これとか教材にすると面白いかも。
http://wiki.gamedev.net/index.php/Tools:Programming
プログラミングスキル:
Lv.1 テトリス
Lv.2 インベーダー
Lv.3 グラディウス
グラフィックスキル:
Lv.1 デッサン一年目
Lv.2 デッサン二年目
Lv.3 デッサン三年目
サウンドスキル:
Lv.1 MP3/OGGのエンコード方法がわかる
Lv.2 DTMがわかる/楽器を演奏できる
Lv.3 オリジナルアルバムをリリースする
ライタースキル:
Lv.1 10000文字以上の作品を書いて公開したことがある
Lv.2 100000文字以上の作品を書いて公開したことがある
Lv.3 1000000文字以上の作品を書いて公開したことがある
PMスキル:
Lv.1 2chで企画を出したことがある
Lv.2 2chで出した企画に肯定的なレスが3つ以上つく
Lv.3 2chで出した企画が成功する
センス:
Lv.1 ぐにゃぐにゃ
Lv.2 へろへろ
Lv.3 ぴきーん
テトリスとインベーダーなら難易度はほぼ同じで
どちらかというとテトリスのほうが難しい
シューティングで並べるなら
Lv1インベーダ
Lv2ギャラガ
Lv3グラディウス プログラムスキルCUI編
Lv.0 Hello,World(環境設定、表示)
Lv.1 四則算(入力、変数)
Lv.2 Big & Small(乱数、制御文)
Lv.3 石取り(関数,AI)
Lv.4 Hit & Brow(配列)
Lv.5 タイピング(タイマー,ファイル読込)
Lv.6 クイズ(データ構造,文字列操作,構造体)
Lv.7 しりとり(ファイル読書込,検索,クラス)
Lv.8 ノベル(これまでのまとめ)
Lv.9 アドベンチャー、育成シミュ、経営シミュ(それぞれのアルゴリズム)
Lv.99 ローグ風RPG プログラムスキルWindow編共通
Lv.0 Window表示
Lv.1 パラパラアニメ(画像表示,タイマー)
Lv.2 もぐら叩き(マウス入力,点の当たり判定)
Lv.3 1画面STG、ドットイート(キー入力、当たり判定)
インベーダーは3.5くらい
パズル(+落ちもの)
Lv.1 スライドパズル(配列)
Lv.2 ブロック崩し(反射)
Lv.3 テトリス(回転)
Lv.4 ぷよぷよ、さめがめ、マインスイーパー(シードフィル)
Lv.5 Qix(マスクなどの画像処理)
アクションシューティング
Lv.1 スクロールSTG(スクロール)
Lv.2 横スクロールアクション(重力)
Lv.3 ベルトスクロール(奥行きつき当たり判定)
Lv.4 格闘(キー履歴)
RPG他
Lv.1 ノベル(メッセージ)
Lv.2 アドベンチャー(メニュー)
Lv.3 ドラクエ風RPG、シミュレーションRPG(2Dマップ)
Lv.4 アクションRPG(アクション)、クオータービューRPG(擬似3D)
ちなみにどれもネットワーク対応や3Dにするとレベルが上がる
数当てゲーム完成
次15パズル挑戦してみたいと思います
level5
ttp://www.geocities.jp/shobo_dankaiteki/ 15パズル level2
ttp://www.geocities.jp/shobo_dankaiteki/ >>720
頑張ってるなあと賞賛しつつ、DXライブラリの挙動を理解してないなあという感想。
テキストの表示がおかしいとか感じないのかな?
そこは譲っても、正解してしまったときの処理がやばい。
DxLib_Endで開放してから正解の表示、これがどこで処理されるのか不定。
さらにここでループ抜けないので事態は悪化。
終了時にDxLib_Endで再解放・多重開放してしまうは致命的。
少なくとも、DxLib_Endはプログラムの最後にひとつだけ書くようにしたほうがいい。
15パズルはソース無いんで何もいえないけど、何ひとつできてない。
終了してウインドウが消えてから、ちらっと@って表示されてるあたり、
また根本的なとこでやらかしてる予想。 ちょっと試してみたけど、DxLib_End();の時点でアプリ終了するのな。
exit(0);とかabort();の感覚で使える。開放忘れの80倍はマシだけど、それはそれで怖い。 >>722
アドバイスありがとうございます。
・数当てゲーム(レベル5について)
>そこは譲っても、正解してしまったときの処理がやばい。
>DxLib_Endで開放してから正解の表示
今見直してみたら、おっしゃる通りでした。
正解の表示を行った後ループを抜けるよう修正してみました。
ただ、
>DXライブラリの挙動を理解してないなあという感想。
>テキストの表示がおかしいとか感じないのかな?
ここの部分がまだ理解できません・・。
もしまだこのスレ見てらっしゃったら
ヒントいただけないでしょうか?
geocitiesに上手くアップロードできないので
うpろだお借りしました
修正した数当てゲーム(レベル5)です
http://www3.uploda.org/uporg2018927.lzh.html みなぎってきたんで15パズル作ってみた。
1時間ほど昼飯と息抜きしてたんで、2時間でLevel4あたり。
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0388zip.html
ひとのこと言えるようなソースじゃないね。今んとこ行き当たりばったりラジバンダリ。
DXライブラリの挙動関連は、まあ次でつまずくからいいや。
軽く直してやろうと思ったけど、ほとんど作り直しになったんで断念したw
ここを修正すればいいって話にもっていけなかった。
本サイトのサンプルプログラム「6.サウンドノベル風文字列描画基本」を参考に。
基本的に、画面が書き換わるたびに毎回すべて書き直さないといけない。
弾幕シューで何万の弾が飛び交ってても。
現状、コンソールアプリのように書きっぱなしで次に行ったらダメ。 ttp://www.vipper.org/vip1110939.zip.html
数あて製作完了
プログラミングよりVBの基本操作でつまずいてるorz
次は15パズルに挑戦! とりあえずLv7完成。5時間弱。
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0389zip.html
やっぱ、5時までかかるか。
変なバグというか仕様上の勘違いでけっこう時間取られてしまった。
気分というか、やりたいように組んだのでソースは汚い。
DrawScene関数の中でマウス入力から移動判定まで、ぜんぶ処理してしまってる。
それも悪いけど、もっとひどいのがチップの配列。
2次元なら最初から2次元で作っておけばごちゃごちゃ計算しなくて済んだのに。 私の持っている参考書の15パズルで最初にシャッフルするときに
ランダムに2点選んでスワップしてんたんだけど、
この方法でシャッフルしても元に戻せることは数学的に
証明されてるんだろうか
一次元ではできない、三次元(の中の平面)ではできることが明らかだけど 偶数回スワップなら戻せることが証明されてる。
奇数回スワップなら不可能が証明されてる。 >>730
ありがとん
奇数か偶数で分かれるのか
理由はわからないけど何か納得、裏の裏は表みたいな >>730
そーなんだ・・。
じゃあ最初のシャッフルは出鱈目じゃまずいんだね
俺は729さんじゃないけど勉強になりました。
ありがとう enumどこに書くかで迷う
どこかに一括して書くと楽だけど、そうするとカプセル化としては駄目なんじゃないかとか
ホントくだらないけど迷う alpha.cpp
enum HOGE
{
hoge,
hogeo,
hogeko,
hogerou,
hogesuke,
};
beta.cpp
enum HOGE; 2月下旬頃にC++入門書購入して読んでるところです
参戦いいですか?
まずは1-9の数当てゲーム作りまっす!しかしポインタが理解できん・・orz お前のパソコンだってメモリーくらい積んでるだろ?
そのメモリー上のアドレス(番地)を格納するのがポインター。
アドレスによってメモリー上に格納されている値などを参照できる。
実際にOSがゴニョゴニョやってるので、
本当にメモリーを差しているかは微妙だが、考えたら負けです。 >>737
そこは微妙とかじゃなくて、指してないことにしとけばおk。(PC限定)
ようやく完成。無駄に長いけど、大目に見てくださいw 改行が多いって怒られるので詰めてます
ポインタ使いませんでした。変数に値が入るっててのはわかるけど、アドレスがってのがイマイチわかりづらいなぁと。
*pointer で代入されてるアドレスに保存されている内容、 &pointer でポインタ変数そのもののアドレス、pointer 代入されてるアドレス、ってわかりづらい入門本のサンプルみても一見何してるか考えてしまう
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(){
int answer, data;
srand( (unsigned int)time(NULL) ); // 初期化
answer = rand() % 9 + 1; // 当てる数字の決定
cout << "数当てゲーム!" << endl << "1から9であなたのモノをいれて・・" << endl;
while(1){
cout << "数字: " << flush;
cin >> data;
if( !cin ){
cout << "それ、数字じゃないわ。" << endl << "アタシ、数字しか興味ないの。" << endl;
cin.clear(); cin.ignore(100,'\n'); continue;
}
if( data == answer ){
cout << "アタリ―――(゚∀゚)―――!!" << endl; break;
}else if( data < answer ){
cout << "あなたの入れたモノ、小さいのね。もうちょっと大きかったら・・" << endl;
}else{
cout << "あなた入れたモノ大きすぎて受け入れられないわ" << endl;
}
}
} ゲームを作れるようになりたい!
とりあえず「はじめてのC」って本を買ってこればいいですか 「はじめてのC++」って本をとりあえず買ってきました
プログラミングをするにはコンパイラ?ってのがまず必要なんですね
次はttp://www.kumei.jp/c_lang/
にいってきます >>742
おおっわかりやすそうなサイトありがとう
知らない言葉の洪水に呑まれてちんぷんかんぷんな有様です
それでもなんとなく掴んだ感覚で
自分にはこのスレはまだ早い、とようやく気づきました
そもそもプログラム組むのってC言語しかないと思っていた(C++は最新版?くらいの)
もうすこし基本的なことを勉強してからまたきます^^ gamedevは新しくなってる
ttp://wiki.game-develop.com/
お、規制あけた
段階的学習ってこの過疎スレでいいんだよね
規制長すぎてもうオセロまで終わっちゃった
C++とDXライブラリね
がんばるよー^^
おいおいちょうどいいテンプレがあるじゃないの
【教材】15パズル〜テトリス
【URL】http://gmdev.xrea.jp/st/up/106.zip
【開発環境】 VC++ 2005タダの奴 + DXライブラリ
過疎スレで俺の独壇場
大体ゲーム終了と同時にプログラムも終わってます バグもちょっとあります
マジ本気初心者なのでパソコンがぶっ壊れるかもしれません
自己責任が云々
パックマンあんまりやったこと無いんで
マリオまで飛びたいです飛びます今度こそまじめにやりますよぼかぁ
【初心者】課題をクリアしていくスレ【講習会】
http://pc11.2ch.net/test/read.cgi/gamedev/1086858349/
【目標ない奴】おまいらに課題を与える。【集まれ】
http://pc11.2ch.net/test/read.cgi/gamedev/1026148930/
この二つのスレって違いがありますか?
少し成り立ちが違うようですが現在はどちらも
同じ課題を解くスレのようなので
少しでもレスが多いこちらを使わせてもらいます
ここが埋まったらあっちに行きますね
最新の課題はここでいいですか?
http://wiki.game-develop.com/
あとオススメの言語や他のサイトでもいいので
もっと課題があれば教えてください
過去ログをみてみるとDXライブラリを使っている方が多いようですね
土日スレのお題を作る合間にこちらで腕を磨こうと思っています
宜しくお願いします
ではさっそく最初のお題の数当てゲームを作ってきます
過去の先人に見習ってLevelが進むごとに書き込もうと思っていますので
少し連投気味になるかもしれませんがご容赦をお願い致します
Level1
#include <stdio.h>
int main()
{
return 0;
}
Level2
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd;
rnd=rand() % 10 + 1;
printf("%d\n", rnd);
return 0;
}
Level3
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd, input;
rnd=rand() % 10 + 1;
printf("なにか数を入力してください\n");
scanf("%d", &input);
printf("ランダムな数:%d\n", rnd);
printf("入力した数:%d\n", input);
return 0;
}
Level3まで終わりました
グラフィックがないのでまだ簡単です
今日中にLevel5まで終わらせたいです
開発環境はVC2010ExpressEdition
言語はCです
次の課題の15パズルはグラフィックを使ったゲームになるので
いよいよ本番って感じがしますね
Level4
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd, input;
rnd=rand() % 10 + 1;
printf("なにか数を入力してください\n");
scanf("%d", &input);
printf("ランダムな数:%d\n", rnd);
printf("入力した数:%d\n", input);
if (rnd == input)
{
printf("Hit!\n");
}
else if (rnd > input)
{
printf("Big\n");
}
else
{
printf("Small\n");
}
return 0;
}
Level5
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd, input, i;
rnd=rand() % 10 + 1;
for (i=0 ; i<3 ; i++)
{
printf("なにか数を入力してください\n");
scanf("%d", &input);
// printf("ランダムな数:%d\n", rnd);
printf("入力した数:%d\n", input);
if (rnd == input)
{
printf("Hit!\n");
break;
}
else if (rnd > input)
{
printf("Big\n");
}
else
{
printf("Small\n");
}
}
return 0;
}
そろそろ32行制限がきつくなってきたので15パズルはソースにリンクを貼るようにしますね 間違えてソース消したっぽいorz
15パズルは明日以降に延期
途方にくれながらサイトを整理してみたよ
まだちょっとごちゃごちゃしてるので何とかしたい
http://wish.45.kg/donichi01/
DXライブラリとHSPどっちにするかで悩み中
LGPは資料少なそうだから回避
Delphiは将来がなさそうだから回避
RubyとPythonは実行できる人が少なそうだから回避
GameMakerは英語がわからないから回避
Androidは実機もってないから回避
すげーオススメの開発環境って何かある? 【課題】15パズル
【Level】3
【ジャンル】パズル
【URL】http://gmdev.xrea.jp/st/up/120.txt
【スクリーンショット】http://gmdev.xrea.jp/st/up/119.jpg
【製作時間】2時間
【開発環境】VC++/Irrlicht
【備考/DL容量】3KB(ソースのみ)
【概要】64x64のパネルを15枚表示しています。
【操作方法】表示のみ。操作はありません。
【コメント(感想)】
やっと着手しました。
STG課題のソースからパクっています。
パネルはピンポイントで素材とかを注文するスレでお願いして作って貰いました。
wikiのほうに共用素材としてアップして貰ったので他の人も使ってください。
素材をアップしてくださった方、本当にありがとうございます。
実は朝のうちに完成してたのですが書き込み制限でしばらく書き込めませんでしたorz
テンプレは土日スレを参考にしました。
【参考URL】
ピンポイントで素材とかを注文するスレ
http://hibari.2ch.net/test/read.cgi/gamedev/1146653544/
ゲムデヴあっぷろーだ
http://gmdev.xrea.jp/
おまえら土日までに一本ゲーム作るスレ12
http://hibari.2ch.net/test/read.cgi/gamedev/1280885106/
段階的学習まとめwiki(15パズル)
http://wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BD%E9%BF%B4%BC%D4%B8%FE%A4%B1%2F%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%2F%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%2F15%A5%D1%A5%BA%A5%EB 課題を自力で実装していく自主トレーニングスレ。
それなりに経験積んだけど、完成させたことが無い人向け。
>>756さんと同じで開発環境を悩んでます
なにかオススメとかあればお願いします
自分で調べてみた所
・CとDXライブラリ
・HSP
が簡単で入門サイトも多くてよさそうです >>763
ずっと開発を続けるならそのうちC系でやることになるんだけど
とりあえずCの勉強をしてみてポインタの概念がすぐに理解できるようなら
前者、できないようなら後者でするといいよ
HSPが使いこなせるようになったころにはCにあってHSPにはない仕様
(ポインタ、型、宣言、スコープ、構造体など)の意義が理解できるように
なっているからすぐに移行できるし
完全な初心者なら特定ジャンルに特化した開発ツール系を
いじってみるのもオススメ
NスクとかSRCはプログラム言語をさらに簡易にした感じのやつだし
最初のステップとしては悪くない(若干スレ違いだけど) いきなりC#を学ぶってのはむちゃですか?
C+でウィンドウ作ったり、画像出したり音出したりはやってみました
C#で作ろうとするといきなり色々書かれてるのが出来てて戸惑う 別に無茶ではない。
独学でC++をやってヘンな癖が付くよりは、むしろC#から入って正しいスタイルを身につける方が好ましい。
まあ、自分のやりたいことに合わせて、良質な情報がさがせばいくらでも転がってる物を選べばいい。 自分で一から一回ウィンドウ表示まで作らないと要領得なかったりするよね
どういう意味だ?
最終的にFPSやRTSが作れるようになるには
どんな課題を段階的にやるべきか?
ってことか? >>769
はい、ほかのジャンルはwikiにまとめられているのですが
FPSやRTSを作りたいのに無いので 今日から本気だす
とりあえず連投規制かかるまでうpしつづけてみる
なるべくソースも出していくからツッコミとか指摘とかいっぱいください
教材はこれを使います
http://wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BD%E9%BF%B4%BC%D4%B8%FE%A4%B1%2F%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%2F%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC
ろだはウイルスチェックもしてくれるココを使う予定
http://www.gigafile.nu/v3/
ある程度まで言ったらまとめてどこかにうpするつもり
言語はCとDXライブラリの予定
HSPと迷ってるけど両方使ってみてやりやすいほうにする
最初はたくさんうpできるだろうけど後でペースが落ちていくだろうから
最低でも1日1うpが目標
では、よろしくお願いします こういうやつも定期的に現れるな
そして一週間もたたないうちに消えて行く 【課題】共通
【Level】1
【ジャンル】未定
【URL】http://www3.gigafile.nu/v3/?c4f5f1733fe2c46d116ec2837059c706
【製作時間】3日
【開発環境】VC++/DXライブラリ
【備考/DL容量】610KB
【概要】真っ黒画面で全画面表示
【操作方法】ESCキーで終了
【コメント(感想)】
遅くなってごめんなさい。
DXライブラリの設定に時間がかかっていました。(拡張子をCのままビルドしようとしてハマってました)
レスありがとうございます。
なんとか一週間は続くよう、1つの課題は完成できるようがんばりたいと思います。
せっかく全画面表示をしましたが、次からコンソールで数当てゲームを作っていきます。 数当てゲーム Level 2
ランダムに1〜10までの数字を一つ発生させ、表示する
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd;
rnd=rand()%10+1;
printf("%d\n", rnd);
return 0;
} Level 3
数字を入力して、その数字を表示する
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd, inp=0;
rnd=rand()%10+1;
scanf("%d", &inp);
printf("入力%d\n", inp);
printf("こたえ%d\n", rnd);
return 0;
} Level 4
Level2の数字とLevel3の数字を比べて
入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd, inp=0;
rnd=rand()%10+1;
scanf("%d", &inp);
printf("入力%d\n", inp);
if (rnd > inp)
{
printf("big\n");
}
if (rnd < inp)
{
printf("small\n");
}
if (rnd == inp)
{
printf("hit\n");
}
printf("こたえ%d\n", rnd);
return 0;
} Level 5
Level2の数字を隠し、Level3〜Level4を3回繰り返させる。
もし、途中で正解したらそこでゲームを終わりにする。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rnd, inp=0, i;
rnd=rand()%10+1;
for (i=0 ; i<3 ; i++)
{
scanf("%d", &inp);
printf("入力%d\n", inp);
if (rnd > inp)
{
printf("big\n");
}
if (rnd < inp)
{
printf("small\n");
}
if (rnd == inp)
{
printf("hit\n");
break;
}
}
printf("こたえ%d\n", rnd);
return 0;
} >>778
そんなドヤ顔する暇があったらソースレビューでもしてくれよ
もう出題ないのか ■ このスレッドは過去ログ倉庫に格納されています