トップページgamedev
229コメント109KB

【入門書クリア前提】初心者用段階的ゲーム製作スレ

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/12/21(日) 10:01:44ID:XeH+Z5e9
入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ

入門書おわた
    ↓
コンソールでゲーム製作
    ↓
DXライブラリでも使ってゲーム製作

こういう順番で段階的にやって行きたい

基本は
1.詳しい人がコンソールのゲームでお題を出す
2.初心者が作る
3.できるまで自分で調べて頑張る
4.どうしても無理ならソース晒して教えてもらう
5.完成したらソース晒して、他の製作者のものと比べてウマー

とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
0013名前は開発中のものです。2008/12/21(日) 10:29:39ID:ymFJ1v3a
PCが連投規制引っかかったorz

>>9
めちゃくちゃ考えたらわかるかもしれないけど、API?ライブラリ?な初心者(俺)にとっては正直厳しいです……
コンソールで簡単なゲームを作りつつ一歩ずつ進む感じでは難しいですかね?
0014名前は開発中のものです。2008/12/21(日) 10:32:50ID:ymFJ1v3a
>>10
Windowだと絵とか色々用意しなきゃいけないんじゃ無いんですか?
ほかにもWindow自体を作るソースとかも必要なんじゃないんですかね…?
そういうの全く分からなかったので
自分の理解しているコンソールから始めようと思ったのです

>>12
ですよねwww
一応こんな感じでやっていきたい
みたいなやつです
XPPROでVC++です
0015名前は開発中のものです。2008/12/21(日) 10:39:55ID:fqBa+KQb
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%2F%BF%F4%C5%F6%A4%C6%A5%B2%A1%BC%A5%E0#re8e4485
ここの段階学習もウィンドウだからな
コンソールは意味ないよ
VCCなら新規プロジェクトでウインドウアプリ
ウィンドウにボタンとlabel5*5で25個設置
lebelの文字を変えることで敵とかを識別でどう?
0016名前は開発中のものです。2008/12/21(日) 10:42:49ID:ymFJ1v3a
>>15
つまり、今更コンソールなんかやっても仕方ない感じですかね
0017名前は開発中のものです。2008/12/21(日) 10:42:55ID:iV+BWt5y
■名前
今年の漢字タイピングゲーム
■遊び方
今年の漢字をひたすらタイプ
■仕様
クリアするとほんのりえっちなAAがお目見え
0018名前は開発中のものです。2008/12/21(日) 10:45:12ID:ymFJ1v3a
>>17
そういうのが欲しかったwww
やってきます
まあAAないからクリア要素はないけど
0019名前は開発中のものです。2008/12/21(日) 10:48:51ID:XeH+Z5e9
#include <iostream>//基本ライブラリ
#include <stdlib.h>//乱数取得に必要
#include <time.h>//rand()の初期化に必要
#include <math.h>//絶対値の計算に必要

using namespace std;

int main()
{
int n,rnd,flag=1;//n:ユーザー入力 rnd:答え flag:ゲームを続けるか否か

while(flag)//mainのループ
{
srand(time(NULL)); //乱数の初期化?よく分からないけどコレやら無いと値が固定になる
rnd = rand() % 9+1; //乱数を1〜9までにしてrndに代入
cout << "1〜9で当ててください(終了は10)" << endl;
while(true)//answerループ、当たるまでor10が入力されるまでループ
{
cin >> n;
if(n <= 0 || n >=11)
{ cout << "1〜9(終了は10)を入力してください"<<endl;
continue;}//もし1〜10の範囲外ならmainのループに戻る
else if(n == 10){flag=0;break;}//もしn=10ならflagに0を代入しanswerループを抜ける
0020名前は開発中のものです。2008/12/21(日) 10:49:22ID:XeH+Z5e9
else if(rnd == n)//もし等しければ、正解
{
cout << "正解です" << endl;
break;
}
else if(abs(rnd-n) <= 2)//rnd-nの絶対値が2以内なら表示
{
cout << "惜しいです、";
}
if(n > rnd)
{
cout << "もっと小さいです" << endl;
}
else if(rnd > n)
{
cout << "もっと大きいです" << endl;
}
}
}

return 0;
}
0021名前は開発中のものです。2008/12/21(日) 10:52:37ID:ymFJ1v3a
ちなみに数あてゲームはこんな感じです
テーマ
>>11
ソース
>>19>>20
動作は大丈夫だと思いますが
「ここはこうじゃね?」
とか
「こうしたほうが簡単にかける」
とか
「この処理いらなくね」
みたいなものがあったら指摘お願いします
0022名前は開発中のものです。2008/12/21(日) 11:09:42ID:XeH+Z5e9
2chに貼るとめちゃくちゃ見にくい事に気付いたんで画像で貼ってみた
やっつけ仕事だけど幾分見やすくなったかと・・・
http://dounika.web.fc2.com/
それじゃ>>17作ってきますお題ありがとう!
0023名前は開発中のものです。2008/12/21(日) 11:14:02ID:XeH+Z5e9
>>17
の仕様を決めねば・・・
■名前
今年の漢字タイピングゲーム
■遊び方
1995年〜2008年までの西暦を順番に表示
その年の「今年の漢字」を入力
■仕様
1995年〜2008年までの西暦をランダムに10個表示
一つずつ、その年の「今年の漢字」を入力
正解ならその旨表示
最終的に10問中何問正解したかを表示し結果によって表示内容分岐


こんなかんじかな・・
行ってきます
0024名前は開発中のものです。2008/12/21(日) 11:23:58ID:fqBa+KQb
>>7は無視か
てか次のお題もはじめのと同じじゃん?
配列は使うだろうが
そういうの何個作っても同じだよ
0025名前は開発中のものです。2008/12/21(日) 11:34:33ID:XeH+Z5e9
>>24
だから、現段階では無理ですって
文字が書けるようになったばっかりの人間に小説書けって言ってるようなもんですよ?
そんな大きなプログラム作って途中で挫折するなら小さいプログラムでも確実に作ったほうが少しは力になると思うんですが
そんなに、小さい努力は無駄ですかね?
配列を使うということはさっきのものより少しレベルアップしたと思うんですけどそれじゃだめですかね?

もし、俺の考えがとんでもなく考え違いで
「こんなことやっても意味がない」と重ねて言うなら>>7にとりかかろうと思います
0026名前は開発中のものです。2008/12/21(日) 11:41:27ID:XeH+Z5e9
なんで俺こんな喧嘩腰なんだろう
すんません
0027名前は開発中のものです。2008/12/21(日) 11:47:28ID:EtGJ5kM3
いや、>>24の言うことは正しい。

ちょろっとコード書いて、天狗になって、
似たようなモノをいくら繰り返し書き続けても、発展がない。
なぜなら、すでに出来ることをやってるだけで、新しい技術が何も身につかないから。

喩えれば、一桁の足し算を覚えた小学生が、
数字だけを取り替えながらいつまでも足し算ばかり解くようなもの。
先に進めないのだ。
0028名前は開発中のものです。2008/12/21(日) 11:55:26ID:XeH+Z5e9
>>27
むしろ、足し算しか分からない子供に掛け算や割り算を自分で理論まで考えて解けって言ってるようなもんだと思うんですけど
それは、たしかにできることかもしれないけど考え付くまでにとても時間がかかるし
分かってしまえば簡単なことかもしれないけど現実的ではないと思うんですが・・・・

そういう意見ばっかりだからプログラミングの敷居を高くしちゃってるような気がするんですがね
別に「今すぐ早急に」を求めているわけではないんで、ゆっくり上達していけばいいと思うんですが
ここの人たちはみんなプロ志望かなんかなんですかね?

あなたたちから見たらクソみたいなものかもしれないけど
現に、数当てゲームを作るのだって乱数の知識を調べて身につけたし、今作ってる今年の漢字あてだって配列のポインタを身につけたし(みようみまねだけど)
そんなんじゃだめなんですかねえ・・・

まあ、俺みたいな駆け出しの考えが正しいはずないし、今作ってるの辞めて>>7に取り掛かります
ありがとうございます
0029名前は開発中のものです。2008/12/21(日) 11:59:04ID:fqBa+KQb
>>15でしてみな
コンソールじゃだめだよ
0030名前は開発中のものです。2008/12/21(日) 12:00:40ID:EtGJ5kM3
そういう意味で、Mentor の重要性を認識するべきなんだよ。

ネットで無責任な人に聞いたってロクなことはない。
必死に勉強し、できるだけ良い大学に入って、
同好の士が集まるサークルに所属して交友を深めるのが一番だ。

運が良ければ高校でも同好会はあるが、その時点でのめり込むと、
 専門学校・四流大 → 下層民  の転落ルート確定だから。
0031名前は開発中のものです。2008/12/21(日) 12:12:45ID:rKpGztZG
【初心者】課題をクリアしていくスレ【講習会】
http://pc11.2ch.net/test/read.cgi/gamedev/1086858349/
0032名前は開発中のものです。2008/12/21(日) 12:18:31ID:fqBa+KQb
成長するにはヒントを出されてといていく形式
がいいと思うんだがなこれができたら、
RPGまでいっきに行くつもりなんだがw
とりあえずコードはいいから
どういう考え(手法)でいくか書いてくれ
ここで方向を間違ったらもったいないしね
0033名前は開発中のものです。2008/12/21(日) 12:43:27ID:PQUSz0Mp
aaa
0034名前は開発中のものです。2008/12/21(日) 12:44:16ID:PQUSz0Mp
>>32
>>1いなくなったから代わりに俺に教えて
0035名前は開発中のものです。2008/12/21(日) 12:47:03ID:fqBa+KQb
label5*5で25個とボタン配置してきて
できたらスクショよろ
0036名前は開発中のものです。2008/12/21(日) 12:49:19ID:PQUSz0Mp
>>35
labelがよくわかんないんだけど
*****
*****
*****
*****
*****

こんな感じで四角形を並べればいいの?
0037名前は開発中のものです。2008/12/21(日) 12:52:02ID:fqBa+KQb
ああそうそうlabelは左上から右に行って
一段下がって右にいってをやるんやで
コピーもできるが一個ずつやで
labelのnameに意味があるからね注意してや
0038名前は開発中のものです。2008/12/21(日) 12:52:06ID:nqiZzAA2
俺がcinの罠で苦しんでる間にずいぶん話が進んでるな・・・(´・ω・)
数字以外入力すると、ふっとぶ。

他には難癖つけるほどでもないけど、気になったところ。
・srand(〜)はループの中に入れなくてもおk
・外側のループを while(n!=10){ で、flag変数いらない。

2重ループの構成を変えてみた。
ヘッダ>>19で。メイン以下

int main(){
int n,ans=0;srand(time(NULL));
while(1){
if(ans==0){ans=rand()%9+1;cout<<"1〜9で当てろ(終了は10)"<<endl;}
n=0;cin>>n;
if(n<=0||n>=11){cout<<"範囲外だ。"<<endl;cin.clear();cin.ignore(INT_MAX,'\n');continue;}
if(n==10){cout<<"これにて終了する。"<<endl;break;}else if(n==ans){cout<<"正解だ!"<<endl;ans=0;continue;}
if(abs(ans-n)<=2)cout << "もうちょっと";else cout<<"もっと";
if(n>ans)cout<<"小さい"<<endl;else cout<<"大きい"<<endl;}
return 0;}
0039名前は開発中のものです。2008/12/21(日) 12:57:49ID:PQUSz0Mp
>>37
何言ってるかわかんないから一応ググって見たけどググってもでてこないから俺には無理そうだ

>>38
>>19-20のプログラムはそんなに短くなるのか・・・感動したよ
>>1のやりたいことがなんとなくわかった、けどもう>>1はいない
これは悲しいな
0040名前は開発中のものです。2008/12/21(日) 13:03:10ID:fqBa+KQb
なにができないん?
フォームは表示してるか?自動でできてるやろ
0041名前は開発中のものです。2008/12/21(日) 13:09:06ID:PQUSz0Mp
>>40
http://www2.uploda.org/uporg1871845.png
ここから先に進まない
0042名前は開発中のものです。2008/12/21(日) 13:19:22ID:fqBa+KQb
見本や
http://www2.uploda.org/uporg1871862.jpg
ツールボックスからlabelを選んでそれをドラッグで配置やで
ツールボックスは表示から表示してな
0043名前は開発中のものです。2008/12/21(日) 13:21:52ID:fqBa+KQb
ああそうかこれも知らんかもな
デザイン画面は左のプロジェクトの中のform1.hを
ダブルクリックで表示やで
0044名前は開発中のものです。2008/12/21(日) 13:39:26ID:PQUSz0Mp
やっとできますた・・・
30分もかけちゃってすいません
http://www.uploda.org/uporg1871943.png
0045名前は開発中のものです。2008/12/21(日) 14:07:12ID:fqBa+KQb
君失格やで!
label適当にクリックで選択してみ、んでプロパティの中の
上のほうにあるnameどうなってる?
左上から順にlabel1 label2になっとるかい?
0046名前は開発中のものです。2008/12/21(日) 14:09:58ID:fqBa+KQb
それと君はレベルどれくらいなの?
入門書レベルはおkですかね
0047名前は開発中のものです。2008/12/21(日) 14:11:03ID:49OkHcC6
ありがちだなあw
0048名前は開発中のものです。2008/12/21(日) 14:15:24ID:PQUSz0Mp
>>46
入門書を数ヶ月前にやってそのまま堕落してる状態です
名前かえなきゃいけないのか・・
やってきます
0049名前は開発中のものです。2008/12/21(日) 14:17:16ID:fqBa+KQb
それとボタンも配置してプロパティのtextでstartやで
0050名前は開発中のものです。2008/12/21(日) 14:19:53ID:PQUSz0Mp
とりあえず
http://www.uploda.org/uporg1872054.png

>>49
はい
0051名前は開発中のものです。2008/12/21(日) 14:24:06ID:PQUSz0Mp
start までできますた
http://www2.uploda.org/uporg1872067.png
0052名前は開発中のものです。2008/12/21(日) 14:36:10ID:fqBa+KQb
おk
ここからはちょい、覚えないかんので
書くで

int main の下に自作関数

void mbox(void)
{
MessageBox::Show("aaa");
}
を書く
form1.h選んで右栗からコードの表示で
上のほうに#pragma onceがあるやろうから
そこに
void mbox(void);
これの意味はわかるか?
んでフォームデザインでstartをダブルクリック
すると勝手に
private: System::Void button1_Clickとかでるから
中に
mbox();
これでそれぞれ書く場所がわかるはずや
実行してみ
0053名前は開発中のものです。2008/12/21(日) 14:41:11ID:PQUSz0Mp
>>52
できますた
クリックでaaaって描かれたウインドウが表示されました
0054名前は開発中のものです。2008/12/21(日) 14:50:08ID:fqBa+KQb
labelをもう一個ボタンと上のボタン群の間の真ん中辺りに設置して

その名前->Text="なんでもええ/n改行した";
その名前->BackColor=Color::Red;
をmboxの中に書いてみプログラムで
プロパティで変えれるもんは変えれるって事や
これで状態をあらわすんや へぼいなw
0055名前は開発中のものです。2008/12/21(日) 14:55:30ID:PQUSz0Mp
>>54
なるほどなるほど
0056名前は開発中のものです。2008/12/21(日) 15:03:58ID:fqBa+KQb
じゃあ宿題な
ボタンを押したら毎回ランダムで3個の
labelの文字を敵という文字に変える
それ以外は何らかの文字にする。
ちゃんと前回の敵の文字は消すこと。

グローバル変数なんかは
void mbox(void);
あたりに書く
はっきりいうとswitch のおばけ文になる
あとはインテリセンスをググって調べとくこと
ほな(^^♪


0057名前は開発中のものです。2008/12/21(日) 15:09:04ID:fqBa+KQb
ああもう一個だけヒントというか知っ得?情報
int rの時
r.ToString()で文字列になる
0058おいちゃん ◆DlyW/s8ibQ 2008/12/21(日) 15:29:16ID:fqBa+KQb
トリップ付けさせてもらう
学ぶならRPGとシュミレーションどっちが先がいい?
それと>>1はいないんか、なんか悪いことしたな
別スレのほうがいいかな?
0059名前は開発中のものです。2008/12/21(日) 17:56:00ID:rKpGztZG
ID:PQUSz0Mpは変なおじさんについていくなって教わらなかったのか
悪いことは言わないからその人はやめとけ
0060名前は開発中のものです。2008/12/21(日) 17:56:32ID:xa3Nwc9G
コンソールでゲームってGUIより難しくないか?
006112008/12/21(日) 19:24:07ID:ymFJ1v3a
帰省中なので携帯から

コンソールのゲームは本当にイメージが大事だから練習にはいいと思ったんですがね……
下手にGUIに手を出しても、よく分からないし
言われたことそのままハイハイやってても身に付くわけないし
だからお題だけもらって分からないところはヒントもらう、完成したらソースを見てもらってもっといい書き方を教えてもらったり他人のソースと比べて別なアプローチを知ったり〜
みたいな感じがいいと思ったんですが
0062名前は開発中のものです。2008/12/21(日) 19:29:26ID:ymFJ1v3a
>>39
ありがとうございます
なるほど、数字の範囲外だけではなく文字も考えなくてはいけないのですね……
これはかなり大きいミスですね
以後気をつけます


そんなに短くなるのですか……
帰ったら自分のソースとよく見比べてみます
ありがとうございます
0063382008/12/21(日) 20:30:45ID:P2cMz3mF
ぶっちゃけ、>>38のソースの下3行=>>20
ロジック的にはなんの圧縮もしてないですから。
むしろ可読性悪くしてる気がする。if文羅列はこれ以上どうにもならなかったし。

インデントの無い縦長ソースよりは見やすいような気がするだけで。個人的に。
VisualStudioならコピペして、切れ目っぽいところで改行していけば
半自動で整形してくれる。
0064382008/12/21(日) 20:50:05ID:P2cMz3mF
なんか昔のメモ帳に
・ハノイの塔
・8王妃
・巡回セールスマン
・ナップザック
・安定的結婚

とか書いてあるページ見つけた。懐かしい。
このへんのロジックを自分で考えて作ることができれば
宿題スレで武者修行できるくらにはなれるんじゃないかと。

コンソールアプリではこのへんが限界。
テトリスとかの落ちもの作ろうと思ったら
コンソールでがんばるより次に進んだほうが早いと思う。
0065名前は開発中のものです。2008/12/21(日) 22:35:27ID:psCLGrAG
プログラムは、中でどうやって動いているか理解出来れば
びっくりするほどどんどん出来るようになると思う

上手く説明できないのが悔しいが
windowsなら、こういう風にループしてるんだという流れがわかれば
あとは付け足すだけだし
スケルトンプログラムでもさっさと理解した方が早い気がする
0066名前は開発中のものです。2008/12/22(月) 00:40:10ID:ASveWW9+
>>61
個人的にはコンソールはロジック部分(例えばRPGのダメージ処理とか)とかを
てっとりばやくテストしたい時に、検証用に使う。

逆に言えば文字列の入出力以外のUIを持たないので、UIが重要になるゲームを作りたい
ならコンソールを勉強しても大して意味は無い。angbandみたいなのが最終目標
とかいうなら別だが。
0067おいちゃん2008/12/22(月) 01:53:14ID:mUNaomub
GUI系はどうすればいいか書くんでやれると思うけどな
応用効く宿題しかださんからやってみてや
仕組みとかも自分であとあと考えられる力、これをみにつけられると思うで、一番大事だと思う。
あとな、コードがこれのほうがいいとか、無用やで
こうしたい、でその通りに動くだけでいい、ただ他人のは読めないかんと思う
0068名前は開発中のものです。2008/12/22(月) 04:06:11ID:75EKu/k5
初心者がRoguelikeを作るスレか。期待してるぞ
0069名前は開発中のものです。2008/12/22(月) 05:08:52ID:goIQAPxA
ネットワークゲームを作りたいのですが、
予算の関係で、マッチングサーバーをレンタルサーバーにしようと
思っているのですが、もし、ある程度売れてしまった場合に
専用のサーバーに変えるとしたら、IPアドレスが変わってしまった場合
どうやって、対処すれば良いですか?
0070おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 07:47:37ID:e0/X2/aD
すれ違いだな
でも答えたる
あのな、よくレンタルサーバーとかいうけどな
それはweb関連用途に限って貸してくれるねんで
だいたいcgiでさえ自作の範囲限られるのに
そうでない場合も相手がソースが見れるんやから
見れない自前アプリなんか入れさせるわけないやろ。
この点サーバーてっのがゲーム用途と同じだと思う奴多いな。
hp式(データベースにsqlserver利用)のマッチングだったら
ドメイン引き継げばいいやん、後は前の奴から飛ばせばいい

あーあとな宿題の答えは2日以内に書き込んでな
答えは3日目に書くから
0071名前は開発中のものです。2008/12/22(月) 12:39:12ID:7HSkpjqK
>>7とかむずかし過ぎだろわろた
0072名前は開発中のものです。2008/12/22(月) 12:46:37ID:7HSkpjqK
>>19
randの使い方に問題があるね。
なぜなら、いくつかのrandの実装では下位ビットがそれほどランダムでは無いとかうんたらかんたら

rnd=1+(int) (9.0*rand()/(RAND_MAX+1.0));

とすることを推奨します。
でも初心者のうちは割とどうでもいいような気もするので、今のままでもおk。
0073おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 13:32:16ID:e0/X2/aD
>>7が難しいとか
自分らで勝手に難しくしてないか?

マップの表示 もうできたな
敵の位置ランダムで表示 今回の宿題や
自分とゴールと通過地点の表示 敵がいないとこに表示しないとな
移動は上下と左右のみターン製 ここか難しいのは?
マップの仕様よう見てみ ヒントは縦横同数やで
障害物はない敵の動きは任せます 別に時機によって来るなんていってないぞ?

こういう問題解くときは自分で紙に書いていろいろ試してみ
例えば一番上の行にいるときに上に行かれんよな
ではどうすれば今一番上にいるか?ってことがわかるかとか
規則さがしてみ 

0074おいちゃん ◆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
これで考える力あるかわかるで
0075名前は開発中のものです。2008/12/22(月) 14:45:11ID:7HSkpjqK
>>73-74
「俺が好きなフルーツは何でしょう?」
「ええっと、バナナかな?」
「ぶっぶー。イチゴだよ。君には考える力が足らんな。滝にでも打たれて来い。」

っていう会話が頭に浮かんだ。

それはともかく>>7は説明が足りないよ。
GUIなのかCUIなのか?
GUIだとしたらWinAPI使うのか、何かのライブラリでラッピングするのかわからないし。
マスの表現方法についてだって、ドラクエみたいな表現なのか、クォータービューなのか
あるいは「敵1:右に3マス、上に2マス」みたいな文字による表現なのかわからない。
プレイヤーの移動はキーボードで行うのかマウスで行うのかさえわからない。
そもそも誰がプレイヤーを動かすのかについてさえ言及が無い。もしかしたらAIが勝手にゴールを探すのか?

いきなりそういうことを考える力を求められてるんなら敷居が高すぎるよ。
0076名前は開発中のものです。2008/12/22(月) 14:48:23ID:w5ew+bX6
本当なら今頃ほんのりえっちなAAが表示されたコンソール画面がうpされてたんだろうな
0077おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 15:01:29ID:oKMTflVf
だからw
勝手に難しくしてるって
何らかの形で表示って書いてありますがな
勝手にゴールを探すのか?も何ぜ難しくするの?
自分であれに当てはまるってやつでいいんよw
上下の移動でも一番上からしたに移動してもいいんやで
自由だ
>>74の答え書いてみないか?
ヒントはな、答えは小学生が解いても俺と同じ時間で説ける方法や
0078おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 15:34:38ID:oKMTflVf
あとなホントは書きたくないって思ったんやけどな
>randの実装では下位ビットがそれほどランダムでは無い
rnd=1+(int) (9.0*rand()/(RAND_MAX+1.0));
これおかしいとおもうんやけど
おいちゃんの知識が悪いんかな
よかったら書籍かホムペ教えてくれへんか?
0079名前は開発中のものです。2008/12/22(月) 15:38:16ID:or3ZWGZi
>>75
むしろ
「君は何のフルーツが好きだ?」
「ええっと、バナナかな」
「ぶっぶー。食事の時にバナナなんて食べてはいけません。ちゃんと、ごはんと味噌汁を食べましょう。君には常識と考えが足りない」
「・・・・・」
こうだと思う
前提条件も何もかもすっ飛ばしていきなり、GUIを使わせたりキチガイとしか思えない
コンソールが駄目ならそれなりの理由を提示すべきだし
こいつのやらせようとしてることのほうがよっぽど敷居高いよね
0080名前は開発中のものです。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 を見るとそう書いてあったから
そうなのかーって思ったんだけど。
0081おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 15:54:45ID:oKMTflVf
意地悪な事言うと
またか問題はそこにかいてあるやんかw
、は小数の意味やで
おしいな現実でそれでは遅いで
/2はなぜぬいたんやその理由が次のステップやで

サイトありがとなちょい見てみるな
0082おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 16:40:30ID:oKMTflVf
初めて知ったよありがとな

俺なりの答え書くな
ちょい意地悪問題だったんだけどな
論理ミスあったら言ってな
現実では底辺と高さの整数の桁数を足す大きいなら大きい
問題文で、で少数になる桁あわせてるやろ3桁区切りでないのは
他がないのでわかる、
あとは掛けるでなくて足す

この問題な3Dで自分からAとBどっちが近いかの
コード友人に見せたら訂正された時に出されたんや
真面目に公式当てはめないってな
なるほどって思うたで、あってるよな?
おいちゃん騙されてないよな?w

0083名前は開発中のものです。2008/12/22(月) 17:29:36ID:7HSkpjqK
>>82
俺は君の同僚じゃ無いんだから、そんな職場のローカル言語話されても意味分からんぞよ。
それに「3Dで」、「リアルタイムにオブジェクトの距離判定するけど」、「精度は適当でいいや」みたいな前提条件も
言ってもらわなきゃわかるはずないよ。

あってるかどうかは、その前提条件にモロに左右されるから何とも言えんね。
そのやり方だと、さっきの問題文ではどれも「大きさは同じ」って判定されるけど、それでいいの?
0084おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 18:16:55ID:oKMTflVf
>精度は適当でいいや
まず「どっちが近いか」であってどれくらいか?ではないよ
3D距離測るので√ぬきはてきとうでないとおもうけど
要点は共通なのは省ける場合がある
面積問題だと*は+でもいい

、の場所は意地悪問題だよw
しかも間違ってるなホントにごめんな

面積なんだから各長さはかならず+の値
従って A*B>C*Dの場合
必ずA+B>C+Dよって現実でもプログラムでも
+で判定すのが簡単って事、
これに例外はないでしょ?

言いたいのはあなたが/2を抜いた理由を
>>7にも当てはめて見ればいいってこと
もちろんおうようとしてね
きっとなんて単純にできるんだって思うよ

あとはホントに難しく考えすぎだと思う
市販レベルのゲームが頭にあるから
難しいと想像してるだけでしょ。
当たり判定も入れろとは書いてないんだよ?
あって当たり前とは言わせないよ、
勝手に仕様追加して難しいとか言ってるんだから
でも実際はゴールに着いたかの判定と同じだけどね
何度も言うけど>>7に当てはまれば何でもいい
てかあなたは作れると思うw
0085名前は開発中のものです。2008/12/22(月) 18:44:14ID:bQrlLW0A
>>84
3*4>1*10
3+4>1+10???
ならねぇ・・・
0086名前は開発中のものです。2008/12/22(月) 18:46:14ID:LFKaa8W/
>従って A*B>C*Dの場合
>必ずA+B>C+Dよって現実でもプログラムでも
>+で判定すのが簡単って事

3×2>1×5
つまり3+2>1+5ってこと?

揚げ足取りだけで終わりたくないから書いておくけど。

モデルの単純化による効率化・高速化はもちろん重要。
だけど、動くものが作れるようになった先の話で十分間に合うと思う。

おいちゃん氏、かなり優秀な人だと思うけど、天才様発言すぎる。
やりたいこと、もって行きたい方向が俺にも見えるだけに
TPOに合ってないというか空回りしてるなあと。
0087おいちゃん ◆DlyW/s8ibQ 2008/12/22(月) 18:57:04ID:oKMTflVf
ごめんwww
ほんとだ何これ結局/2抜くだけだったのか、
俺も実は初めこれだけだったんだよ、んでこれ教えてくれた
なんかサルみたいに図形切り貼りして
確かめとかやらされたんだけどなw
実は人を信用するなって教えてくれたんかなw
昨日も飯おごったのになw
やべっひょっとして√抜きもそうなのか?
誰か教えて;;
>>7も一応考えたんだがもう一回考えるんでまだ作るなよw
0088名前は開発中のものです。2008/12/22(月) 23:24:49ID:IFN4Pi9+
>>7
やりたいようにやってみた。自分のソース見ながら考えて進む感じ。
まさか3時間200行超えるとは。見積もり(想像)の1.5倍かかってる。
自分でも言いたいこと突っ込みどころは山ほどある。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8439.zip

クラスはなんとなく、関数ポインタは明らかな苦手意識あるんで
そのへんうまく使ってイベント処理をキレイにまとめられたらかっこいいかも。
0089名前は開発中のものです。2008/12/22(月) 23:35:30ID:v8weaYQN
流れをぶった切るけど段階学習でコンソールなら数当て(ハイアンドロー、
コードブレイカー)、4択クイズ、タイピング、しりとり(英語、日本語)の順が
いいとおも
初心者向けなんだから(特に最初は)1ステップは小さいほどいい
0090名前は開発中のものです。2008/12/22(月) 23:52:10ID:IFN4Pi9+
数当ては>>19-20でやらせた。ていうか勝手にやった。

次はヒット&ブロー(コードブレイカーby女神転生)か山崩しあたり。
タイピング→4拓クイズで、ファイル処理やら構造のカプセル化なんかを意識させて。
0091名前は開発中のものです。2008/12/22(月) 23:55:22ID:7HSkpjqK
>>88
うまくできてるね。乙。
0092名前は開発中のものです。2008/12/23(火) 06:44:34ID:1QOnu95u
かんたんな数当てとかは良いね
ってもう終わったみたいだけど
まあ一行表示で済むようなものならいっそのこと
windowのタイトルバー使っておなじことやったりするといいかも
0093おいちゃん ◆DlyW/s8ibQ 2008/12/23(火) 07:40:42ID:brrxgnQX
>>88見させれいただきましたで
int gMap[HEIGHT][WIDTH];
で事象の全て管理してるんですよね?
ちょっと言い方違うかな、前回の分を保持してるものを使うのは
上記だけですよね?
そしてこのゲームは、敵の移動はしない時があるが自分は必ずする。

これだとゲーム性として緊張感とか戦略性が薄いので
(勘違いしないでくださいね次の課題のためにステップアップ
できるところをわざと問題で作って、それをあなたが次の問題だせるように
解いてくれたってことですんで)
次の課題は敵は動かない時は次回に移動量を貯めこめる
移動は同じく単一方向のみで溜め込んだ分は使い切る(範囲制限は今のまま)
でどうでしょ?
これで管理のしかたが変わる修正しないといけない問題になると思うんやけど

問題の出し方としてソクラテスの問答法をしてる感じなんやけど
こういうやり方ではだめかな?







0094おいちゃん ◆DlyW/s8ibQ 2008/12/23(火) 10:25:56ID:brrxgnQX
>自分は必ずする。
間違いでしたごめんなさい
0095882008/12/23(火) 11:32:37ID:7Tc//R3b
>>93
俺に課題出してどうするんだ。
ここまででも結構気を使うポイント多いよ実際。
>>1氏の>>19-20見て、その今の実力で>>88は作れないだろうと思う。

200行のソース書ける人相手に、本質にかかわらない十数行の改変させても意味無い。
今回のだったら、敵Pow2、敵Pow3までenumで増やして、敵移動ルーチンで消化する。
個々にLvやHPなんかのステータスが必要になるまで、意地でも構造体作らねえ!

RPGっぽい感じで、作った自分でも結構気に入ってしまってたりするんだこれ。
敵に当たったとき戦闘モードに切り替えて、そのときに敵の能力設定しても十分間に合うし。


気にしてるのが、通過点・イベントの書き方。
個別処理してるので、このままではどうしてもイベントが増えるたびに肥大化していくのが避けられない。
うまいことラッピングできればいいんだけど。
0096名前は開発中のものです。2008/12/24(水) 06:12:29ID:O6ch0loZ
かわいそうな>>1
0097名前は開発中のものです。2008/12/24(水) 09:07:07ID:pKNbMfli
>>1にもちっと根性ありゃ良スレだったかもね。
0098名前は開発中のものです。2008/12/25(木) 01:19:22ID:dzWiyeO4
>>94
そうそう。君はそうやって人の言うことを聞いとくべきだよ。
中学生とは思えないほど稚拙な文章だったけど、面白かったよ。
0099名前は開発中のものです。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

ちらついてた人テストプレイお願いします
010012008/12/25(木) 08:26:15ID:gHJk9aT1
俺がC++とイチャイチャしてる間に一体何が………
0101名前は開発中のものです。2008/12/25(木) 09:13:42ID:+jZFnaM/
>ソース出せない奴に文句言う資格ないって信念あるから、
ちょっとからかってみたかった。

ぜんぜんわからないんだが
文句はどれも言ってないし
誰もからかわれてないように見えるんだが
>>88なのか?誰と戦ってるんだ
0102名前は開発中のものです。2008/12/25(木) 10:19:14ID:4QWifqYX
>>28>>7作ると言っている
作ってるのか?>>88を見てしまったのか

010312008/12/25(木) 10:41:23ID:47eJt85M
>>102
俺に聞いてるのかな?
コンソールやっていいのか、よくわからなかったんでC++を勉強してましたよ
数当てゲームから先は何も作ってません
0104名前は開発中のものです。2008/12/25(木) 11:34:37ID:ldpXmL3C
Hit&Blow作ろうぜ!

【ルール】
相手側に隠された4桁の数字を当てるんだ!
隠された数字は1〜9までで重複していない。
プレイヤーの提示する数字に対して、マスターがヒントを出していく。
ある桁に対して、答えの桁と一致したら1Hit。
桁は違うが、その数字を使っているなら1Blow。

答え 2468
入力 3456 のとき、
4のところで桁一致1Hit、6は両方に含まれているので1Blowとなる。

4Hitなら「おめでとう」表示して終了。

まずは、4桁の重複しない乱数を作成して表示することから始めよう。
それから、入力→判定。入力については難しいこと考えずにやりやすいように。
判定も、それっぽく動くようになってから矛盾する部分をつぶしていけばいい。
010512008/12/25(木) 11:45:26ID:47eJt85M
>>104
それなら作れるよ
ちょっと作ってくる
010612008/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だっけ?
それであたりかどうか判定
}

あとはメインループ
こんでいいんじゃないのかな?
0107名前は開発中のものです。2008/12/25(木) 12:49:09ID:D78e/bq5
ソースはすでにバグってるけど、考え方組み立て方は大丈夫っぽいね。

入力は最悪1桁目から4桁目までバラバラに入力させてもいい。
今、そこで悩むのは時間の無駄だと思う。
0108名前は開発中のものです。2008/12/25(木) 13:13:31ID:4QWifqYX
即答できるの作って意味あるのか疑問だな
某本は最初からソウコバんが題材だし
プロで2時間素人で2日かけたら遅い
って書いてるみたいだし。
>>88が理解できないわけがない

1は言ってることがおかしいな
言語そのものは本で学んだくせに
ゲームの仕組みは人から教えてもらえるチャンスを
自分から放棄してる、これだと後々クレクレ君になるよな
0109名前は開発中のものです。2008/12/25(木) 13:24:25ID:4QWifqYX
>>107
ある桁に対して、答えの桁と一致したら1Hit。
桁は違うが、その数字を使っているなら1Blow。
にたいして
>それであたりかどうか判定

この課題の出題意図おもいっきり
飛ばしてるじゃねえかw
0110名前は開発中のものです。2008/12/25(木) 13:41:17ID:tZ3uaTxD
俺もゲーム作りたいからプログラム始めて、入門書は済んだけど何しようって時期はあった
最初はGUIで四角形を表示できるようにして、それを入力で動くようにするっていう風に少しずつSTGに近づけていって完成まで行ったよ
俺は「Windowsゲームプログラミング」って本でGUIに入ったけど、これはあんまりオススメできない
>>1を見る限り「14歳からはじめる C言語わくわくゲームプログラミング教室」とかがいいんじゃないか?
俺は「Windowsゲームプログラミング」を初めて見たとき、「なんだこれ…全く分からない」と思った
でも原因は入門書の内容を理解してるつもりで、してなかっただけだった
DXライブラリのサンプルなんかすごい丁寧に書いてくれてる
分からない分からないって言ってたら進まない
何で分からないのか原因を考えて、それを潰していけばいい
0111名前は開発中のものです。2008/12/25(木) 13:57:08ID:4QWifqYX
出題意図も書いてあげなきゃいけないんだろう
4桁はランダムで重複はない

入力もじが同じ桁で同じ数字hitなら
Blowかどうかは判定しなくていい(重複はないから)
hitでないなら別の桁でBlowかどうか判定する
そこでBlowならそれ以外の桁は、数字の違うランダムだから
(重複はないから)判定しなくていいことになってる。
でいいのかは、ルールがはっきりしていないので実はわからない。
プレイヤーは同じ数字に対して挑戦できるんだろうがすべて同じ数字に
してもいいのかわからない。
出題意図以外の部分書き込んでなんになる?
始めの問題でcin>>n;だけ書くのと同じだろ
正直課題でなくて、なになに作って解説してくださいの方がいいと思う。
0112名前は開発中のものです。2008/12/25(木) 14:09:59ID:HaMdn/9b
ゲームってC/C++じゃないと駄目なの?
■ このスレッドは過去ログ倉庫に格納されています