[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
697(1): 名前は開発中のものです。 [sage] 2008/04/12(土) 16:46:13 ID:u1ebOeKL(1/2) AAS
>>696696(2): 名前は開発中のものです。 [sage] 2008/04/12(土) 16:41:42 ID:wUyPJZn0(1/2) AAS
>数値が偏りやすくなる可能性があること
気になったので実験。
下記プログラムにて偏りを目視で確認してみた。
(実行結果:外部リンク[phps]:gamdev.org)
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;
}
(整数演算で)「乱数範囲÷100×100」以上は再試行しないと…
698: 名前は開発中のものです。 [sage] 2008/04/12(土) 16:56:10 ID:wUyPJZn0(2/2) AAS
仮説をたててみた
乱数の元になる数が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セットってことかな
699: 名前は開発中のものです。 [sage] 2008/04/12(土) 17:04:10 ID:u1ebOeKL(2/2) AAS
例えば乱数範囲が0〜65535なら
65535÷100×100=65500になる。
65500〜65535は%100すると
結果のバラツキに繋がるので捨てるのが基本。
700: 名前は開発中のものです。 [sage] 2008/04/12(土) 17:37:14 ID:VRvbtz8m(1) AAS
乱数範囲による偏りに加えて、
線形合同法による乱数の下位nビットの周期が
高々2^nという点にも気をつけないといけない。
つまり、下位1ビットの周期は高々2^1 = 2。
偶数しか生成しないか、奇数しか生成しないか、
偶数と奇数が交互に生成されるかの3パターンしかない。
よって、線形合同法による疑似乱数生成関数randでサイコロを作ろうとして
rand()%6+1とかやっちゃうと、2人で遊んだ時に
片方のプレイヤーが偶数の目だけ、もう片方が奇数だけという状況が生まれる
(これをやっちゃった有名な例がカルドセプトサーガ)。
今でもCのrand関数は線形合同法のような形で実装されていることが多いけど、
下位kビットを捨て、k+1ビット目からを1ビット目と見なすことで
周期性の問題を解決しているものもある。
701: 名前は開発中のものです。 [sage] 2008/04/17(木) 23:00:01 ID:xfcPWlW/(1) AAS
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. おわり
702(1): 名前は開発中のものです。 [sage] 2008/06/04(水) 08:04:37 ID:PZn8j6Ch(1) AAS
新Gamedevできたのでかきかき
TopPage - game-develop.com wiki
外部リンク:wiki.game-develop.com
GameDevWikiを何とかするスレ
2chスレ:gamedev
703: 名前は開発中のものです。 [] 2008/06/14(土) 23:31:21 ID:nnavq8hB(1) AAS
数当てゲームはこんなので良いですかね
1.ウィンドウを表示する
2.ランダムに1〜10までの数字を一つ表示する
3.数字を入力して、その数字を表示する
4.2の数字と3の数字を比べて、入力された数よりも大きかったらBig
小さかったらSmallと表示させる
5.3と4を3回繰り返させる
もし正解したらそこでゲームを終わりにする
704: 名前は開発中のものです。 [sage] 2008/11/06(木) 02:05:29 ID:5LSMjBOf(1) AAS
>>702
間違っています。
以上。
↓次の方どうぞ
705: 名前は開発中のものです。 [sage] 2008/11/06(木) 23:24:20 ID:oz8drcUW(1) AAS
はい、次の人です。
お前の安価が間違ってるぞ、と。
706: 名前は開発中のものです。 [sage] 2008/11/24(月) 20:57:35 ID:qPCWYPAF(1/3) AAS
過疎ってるけれどお邪魔しますよっと
いきなりパックマン作ろうと思って挫折したので、
一からこちらで勉強しにきました
数当てゲームから挑戦していきたいと思います
707: 706 ◆Jg2hMRjtc. [sage] 2008/11/24(月) 21:26:57 ID:qPCWYPAF(2/3) AAS
1.数当てゲーム
Level1 ウィンドウを表示する
外部リンク:www.geocities.jp
708: 706 ◆Jg2hMRjtc. [sage] 2008/11/24(月) 21:55:12 ID:qPCWYPAF(3/3) AAS
1.数当てゲーム
Level2 ランダムに1〜10までの数字を一つ発生させ、表示する
外部リンク:www.geocities.jp
709: 706 ◆Jg2hMRjtc. [sage] 2008/11/25(火) 21:39:13 ID:GdvnSEyE(1) AAS
1.数当てゲーム
level3 数字を入力して、その数字を表示する
外部リンク:www.geocities.jp
710: 706 ◆Jg2hMRjtc. [sage] 2008/11/26(水) 21:45:19 ID:Wb2d5d5f(1) AAS
1.数当てゲーム
Level4 Level2の数字とLevel3の数字を比べて入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。
外部リンク:www.geocities.jp
711: 名前は開発中のものです。 [] 2009/01/05(月) 19:13:02 ID:F8IEg8lA(1) AAS
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(1): 名前は開発中のものです。 [] 2009/01/06(火) 21:32:51 ID:c5JPjzC/(1) AAS
いまから参加したいけど何すればいい?
713: 名前は開発中のものです。 [sage] 2009/01/06(火) 21:59:13 ID:364hVwSo(1) AAS
>>712
現在地も目的地もわからなければ道案内はできない
とりあえずプログラミング暦(スクリプト、ツールを含む)と最終的な目的(RPGが作りたいとか
Cをマスターしたいとか)を書いてくれ
714: 名前は開発中のものです。 [sage] 2009/01/06(火) 23:29:33 ID:UozvWyya(1) AAS
基礎からと言うならまずは英語かな。
英語を読むことができれば海外の情報をゲットできるよ。
これとか教材にすると面白いかも。
外部リンク:wiki.gamedev.net
715: 名前は開発中のものです。 [] 2009/01/14(水) 00:58:33 ID:uviUrAzN(1) AAS
自分の位置をみつける目安は?
716: 名前は開発中のものです。 [sage] 2009/01/14(水) 01:16:39 ID:yw67XO87(1) AAS
プログラミングスキル:
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 ぴきーん
717: 名前は開発中のものです。 [sage] 2009/01/14(水) 03:18:01 ID:7SW263aP(1) AAS
テトリスとインベーダーなら難易度はほぼ同じで
どちらかというとテトリスのほうが難しい
シューティングで並べるなら
Lv1インベーダ
Lv2ギャラガ
Lv3グラディウス
718: 名前は開発中のものです。 [sage] 2009/01/14(水) 22:36:11 ID:GiBTcIUW(1/2) AAS
プログラムスキル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
719: 名前は開発中のものです。 [sage] 2009/01/14(水) 23:15:49 ID:GiBTcIUW(2/2) AAS
プログラムスキル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にするとレベルが上がる
720(1): 名前は開発中のものです。 [sage] 2009/02/14(土) 21:54:59 ID:O8g6aplU(1/2) AAS
数当てゲーム完成
次15パズル挑戦してみたいと思います
level5
外部リンク:www.geocities.jp
721: 名前は開発中のものです。 [sage] 2009/02/14(土) 23:13:09 ID:O8g6aplU(2/2) AAS
15パズル level2
外部リンク:www.geocities.jp
上下前次1-新書関写板覧索設栞歴
あと 66 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s