[過去ログ]
【初心者】課題をクリアしていくスレ【講習会】 (787レス)
【初心者】課題をクリアしていくスレ【講習会】 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
691: 名前は開発中のものです。 [sage] 2008/03/31(月) 01:57:42 ID:gUB5EALr プログラミングの知識ほぼゼロですがC言語に挑戦してみようと思います。 690の「段階的学習!」のコメント欄によると >一番の最初には数当てゲーム。その次にマスターマインドとか。この辺から始めないとな -- 2005-11-25 (金) 02:10:27 とあるので、まず数当てゲームの作成に取り組んでみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/691
692: 名前は開発中のものです。 [] 2008/03/31(月) 06:10:02 ID:6Xmv80aV 雑魚晒しage http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/692
693: 名前は開発中のものです。 [] 2008/04/06(日) 03:23:16 ID:3FIXnopP >>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; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/693
694: 名前は開発中のものです。 [sage] 2008/04/06(日) 04:47:09 ID:6iQTQxIz >>693 とりあえず、 ・srand()を使わないと答えのパターンが毎回同じになること ・rand()のような線形合同法が用いられている(と推測できる)関数の 返り値の余りを採るやり方は、数値が偏りやすくなる可能性があること を覚えるべき。2番目はわからなければ今は無視してもいいけど 1番目だけは絶対に理解しておくべき。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/694
695: 名前は開発中のものです。 [sage] 2008/04/06(日) 05:32:21 ID:pZ63dDRm %cで1〜9を入力すると数字の'1'(0x30)〜'9'(0x39)になる。 %dで1〜9を入力すると数値の1(0x0)〜9(0x9)になる。 この場合欲しいのは数値なので%dで正解だと思う。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/695
696: 名前は開発中のものです。 [sage] 2008/04/12(土) 16:41:42 ID:wUyPJZn0 >数値が偏りやすくなる可能性があること 気になったので実験。 下記プログラムにて偏りを目視で確認してみた。 (実行結果: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; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/696
697: 名前は開発中のものです。 [sage] 2008/04/12(土) 16:46:13 ID:u1ebOeKL >>696 (整数演算で)「乱数範囲÷100×100」以上は再試行しないと… http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/697
698: 名前は開発中のものです。 [sage] 2008/04/12(土) 16:56:10 ID:wUyPJZn0 仮説をたててみた 乱数の元になる数が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セットってことかな http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/698
699: 名前は開発中のものです。 [sage] 2008/04/12(土) 17:04:10 ID:u1ebOeKL 例えば乱数範囲が0〜65535なら 65535÷100×100=65500になる。 65500〜65535は%100すると 結果のバラツキに繋がるので捨てるのが基本。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/699
700: 名前は開発中のものです。 [sage] 2008/04/12(土) 17:37:14 ID:VRvbtz8m 乱数範囲による偏りに加えて、 線形合同法による乱数の下位nビットの周期が 高々2^nという点にも気をつけないといけない。 つまり、下位1ビットの周期は高々2^1 = 2。 偶数しか生成しないか、奇数しか生成しないか、 偶数と奇数が交互に生成されるかの3パターンしかない。 よって、線形合同法による疑似乱数生成関数randでサイコロを作ろうとして rand()%6+1とかやっちゃうと、2人で遊んだ時に 片方のプレイヤーが偶数の目だけ、もう片方が奇数だけという状況が生まれる (これをやっちゃった有名な例がカルドセプトサーガ)。 今でもCのrand関数は線形合同法のような形で実装されていることが多いけど、 下位kビットを捨て、k+1ビット目からを1ビット目と見なすことで 周期性の問題を解決しているものもある。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/700
701: 名前は開発中のものです。 [sage] 2008/04/17(木) 23:00:01 ID:xfcPWlW/ 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. おわり http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/701
702: 名前は開発中のものです。 [sage] 2008/06/04(水) 08:04:37 ID:PZn8j6Ch 新Gamedevできたのでかきかき TopPage - game-develop.com wiki http://wiki.game-develop.com/ GameDevWikiを何とかするスレ http://pc11.2ch.net/test/read.cgi/gamedev/1156117275/ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/702
703: 名前は開発中のものです。 [] 2008/06/14(土) 23:31:21 ID:nnavq8hB 数当てゲームはこんなので良いですかね 1.ウィンドウを表示する 2.ランダムに1〜10までの数字を一つ表示する 3.数字を入力して、その数字を表示する 4.2の数字と3の数字を比べて、入力された数よりも大きかったらBig 小さかったらSmallと表示させる 5.3と4を3回繰り返させる もし正解したらそこでゲームを終わりにする http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/703
704: 名前は開発中のものです。 [sage] 2008/11/06(木) 02:05:29 ID:5LSMjBOf >>702 間違っています。 以上。 ↓次の方どうぞ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/704
705: 名前は開発中のものです。 [sage] 2008/11/06(木) 23:24:20 ID:oz8drcUW はい、次の人です。 お前の安価が間違ってるぞ、と。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/705
706: 名前は開発中のものです。 [sage] 2008/11/24(月) 20:57:35 ID:qPCWYPAF 過疎ってるけれどお邪魔しますよっと いきなりパックマン作ろうと思って挫折したので、 一からこちらで勉強しにきました 数当てゲームから挑戦していきたいと思います http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/706
707: 706 ◆Jg2hMRjtc. [sage] 2008/11/24(月) 21:26:57 ID:qPCWYPAF 1.数当てゲーム Level1 ウィンドウを表示する ttp://www.geocities.jp/shobo_dankaiteki/ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/707
708: 706 ◆Jg2hMRjtc. [sage] 2008/11/24(月) 21:55:12 ID:qPCWYPAF 1.数当てゲーム Level2 ランダムに1〜10までの数字を一つ発生させ、表示する ttp://www.geocities.jp/shobo_dankaiteki/ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/708
709: 706 ◆Jg2hMRjtc. [sage] 2008/11/25(火) 21:39:13 ID:GdvnSEyE 1.数当てゲーム level3 数字を入力して、その数字を表示する ttp://www.geocities.jp/shobo_dankaiteki/ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/709
710: 706 ◆Jg2hMRjtc. [sage] 2008/11/26(水) 21:45:19 ID:Wb2d5d5f 1.数当てゲーム Level4 Level2の数字とLevel3の数字を比べて入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。 ttp://www.geocities.jp/shobo_dankaiteki/ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/710
711: 名前は開発中のものです。 [] 2009/01/05(月) 19:13:02 ID:F8IEg8lA 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; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/711
712: 名前は開発中のものです。 [] 2009/01/06(火) 21:32:51 ID:c5JPjzC/ いまから参加したいけど何すればいい? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/712
713: 名前は開発中のものです。 [sage] 2009/01/06(火) 21:59:13 ID:364hVwSo >>712 現在地も目的地もわからなければ道案内はできない とりあえずプログラミング暦(スクリプト、ツールを含む)と最終的な目的(RPGが作りたいとか Cをマスターしたいとか)を書いてくれ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/713
714: 名前は開発中のものです。 [sage] 2009/01/06(火) 23:29:33 ID:UozvWyya 基礎からと言うならまずは英語かな。 英語を読むことができれば海外の情報をゲットできるよ。 これとか教材にすると面白いかも。 http://wiki.gamedev.net/index.php/Tools:Programming http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/714
715: 名前は開発中のものです。 [] 2009/01/14(水) 00:58:33 ID:uviUrAzN 自分の位置をみつける目安は? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/715
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 72 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s