PSP xvi
PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

記事の間違いを報告 新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク
公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル
TAG>
全記事にタグをつけています http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター
このブログについて
このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。
著作権などの こまかい利用規約については、こちらを開いてお読み下さい
このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ
当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。
このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all
著作権などの こまかい利用規約については、こちらを開いてお読み下さい
このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ
当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。
このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all
PSPプログラミング 乱数について
2010/11/08
Mon. 22:13
乱数をマスターしよう
乱数とは、予測できないでたらめな数値の事です
乱数が、ゲームで どういう事に使われているかというと、
・サイコロの目(1~6)
・カードゲームでのカード
・麻雀での牌
・じゃんけんゲームのCPUの「グー」「チョキ」「パー」の手
・テトリスでの次に出るブロック
・一般ゲームでの、敵の出現率
・RPGでの、敵との遭遇率
・格闘ゲームでの、CPUキャラの動作
…などなど、例を挙げると切りが無いので以下略
乱数(の予測数値)をテーブルで持つと、全部暗記されたりとかデータサイズ肥大とかで効率が悪いですね
予測できないでたらめな数値が欲しい時に、乱数の関数を呼び出して数値を得ます
PSPSDKでの乱数取得は、『 PSPデスクトップ ドドド v0.1』 お試し版 ソース解説 を読むといいかもです
DXライブラリPortable では、2種類のアルゴリズム(乱数生成器)から選択して乱数を得る事が出来ます
◆まず、ChangeRandMode()関数で、乱数生成器を選択します
返り値 == 成功…0、失敗… -1
◆次に、乱数をGET
得られる値は、0~MAXで指定した値までの32ビット整数値(int)
サンプル(サイコロの目を得たい場合)
●ヒント
サイコロの目は 1~6 なので、0~5 の乱数を得れば良いです
サンプル(格闘ゲームでの必殺技発動)
●ヒント
出現率を100%で考えてみるといいかも。1%の誤差とかの指摘は禁止(笑)
さて、カードゲームとかすごろくとか乱数を使うと効率の良いゲームは色々あります。
絵の素材があれば簡単なゲームが作れそうですね。
乱数とは、予測できないでたらめな数値の事です
乱数が、ゲームで どういう事に使われているかというと、
・サイコロの目(1~6)
・カードゲームでのカード
・麻雀での牌
・じゃんけんゲームのCPUの「グー」「チョキ」「パー」の手
・テトリスでの次に出るブロック
・一般ゲームでの、敵の出現率
・RPGでの、敵との遭遇率
・格闘ゲームでの、CPUキャラの動作
…などなど、例を挙げると切りが無いので以下略
乱数(の予測数値)をテーブルで持つと、全部暗記されたりとかデータサイズ肥大とかで効率が悪いですね
予測できないでたらめな数値が欲しい時に、乱数の関数を呼び出して数値を得ます
PSPSDKでの乱数取得は、『 PSPデスクトップ ドドド v0.1』 お試し版 ソース解説 を読むといいかもです
DXライブラリPortable では、2種類のアルゴリズム(乱数生成器)から選択して乱数を得る事が出来ます
◆まず、ChangeRandMode()関数で、乱数生成器を選択します
甲 ChangeRandMode(DXP_RANDMODE_MT);
メルセンヌ・ツイスター方式の乱数生成器。低速です
乙 ChangeRandMode(DXP_RANDMODE_HW);
PSPのハードウェアの乱数生成器を使います。高速です
返り値 == 成功…0、失敗… -1
◆次に、乱数をGET
得られる値は、0~MAXで指定した値までの32ビット整数値(int)
num = GetRand(MAX);
サンプル(サイコロの目を得たい場合)
●ヒント
サイコロの目は 1~6 なので、0~5 の乱数を得れば良いです
// サイコロの目を取得する関数サンプル
int Saikoron(void)
{
int saikoro;
saikoro = GetRand(5) + 1;
return(saikoro);
}
サンプル(格闘ゲームでの必殺技発動)
●ヒント
出現率を100%で考えてみるといいかも。1%の誤差とかの指摘は禁止(笑)
#define NONE 0
#define HADOU_KEN 1
#define SYOURYUU_KEN 2
#define TATSUMAKI_SENPUU_KYAKU 3
#define MESSATU_HADOU_KEN 4
// 必殺技を出すか決める関数(通常パンチ、通常キックの出現率は除く)
int HissatsuWaza(void)
{
int percent;
int command;
percent = GetRand(99);
if(percent > 60) {
if(percent < 80) {
command = HADOU_KEN; // 波動拳率は20%
}
else
if(percent < 95) {
command = TATSUMAKI_SENPUU_KYAKU; // 竜巻旋風脚率は15%
}
else
if(percent < 99) {
command = SYOURYUU_KEN; // 昇龍拳率は4%
}
else {
command = MESSATU_HADOU_KEN; // 滅殺波動拳率は1%
}
}
else {
command = NONE; // 必殺技が出ない率は60%
}
return(command);
}
さて、カードゲームとかすごろくとか乱数を使うと効率の良いゲームは色々あります。
絵の素材があれば簡単なゲームが作れそうですね。
- 関連記事
スポンサーサイト
[edit]
« PSP自作ゲーム 『チョピン8面耐久レース』 は 3Dポリゴンだっ! | PSPプログラミング 画面描画とスクロール ファミコン vs PSP »
この記事に対するコメント
トラックバック
| h o m e |




