忍者ブログ
Admin*Write*Comment
35歳からのC言語ゲームプログラミング
[28]  [27]  [26]  [25]  [24]  [23]  [22]  [21]  [20]  [19]  [18
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

乱数を得る①

2匹で一組のぷよを、Zキーを押すたびに組み合わせを変えて表示するプログラムを書こうとして、壁に当たった。
この処理は毎回落ちて来るぷよの組み合わせを変えるために、欠かせない処理だ。
しかし、僕の今までの勉強で乱数を得る処理は通っていなかった。

こんな時『苦C』の出番。
サイトの目次を見ると、ありますよー、乱数の項目が!

取り合えず、一番簡単な乱数生成方法を関数にして実装。
そのソースがこれだ。

#include "DxLib.h"
#include < stdlib.h >

int GetRandom ( int min, int max ); //乱数用関数のプロトタイプ宣言

int g_puyoimage[6];

int WINAPI WinMain(HINSTANCE hI,HINSTANCE hP,LPSTR lpC,int nC) {
ChangeWindowMode( TRUE );
    if( DxLib_Init() == -1 ) return -1;
 
    LoadDivGraph( "puyo.bmp",6,6,1,32,32,g_puyoimage );
    //1組目の組み合わせを乱数で決める
    int puyo1 = GetRandom( 1, 4);
    int puyo2 = GetRandom( 1, 4);

    SetDrawScreen( DX_SCREEN_BACK );

    while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 ) {
       ClsDrawScreen();

      int key = GetJoypadInputState( DX_INPUT_KEY_PAD1 );
       if( key & PAD_INPUT_A ) {  //Zキーが押されるたびに組み合わせを乱数で変える
puyo1 = GetRandom( 1, 4);
          puyo2 = GetRandom( 1, 4);
       }

       DrawGraph( 288, 224, g_puyoimage[puyo1],TRUE );
       DrawGraph( 320, 224, g_puyoimage[puyo2],TRUE );
       ScreenFlip();
    }
  
DxLib_End();
return 0;
}

//乱数を得る関数
int GetRandom( int min, int max) {
return min + ( int )( rand()*( max-min+1.0 )/( 1.0+RAND_MAX ) );
}

無事に動いたけど、問題もある。
問題① 乱数の返す値が毎回同じになる。
問題② Zキーの押しっぱなしが有効になってしまって、一瞬押しただけで数回組み合わせが変る。

この問題を解決してみよう。

あ、そうそう、ぷよの色と対応する数字は合わせてあります。
赤、青、黄、緑の順に1、2、3、4で。
よって、1~4の間で乱数を得るプログラムになっていますヨン。

 

PR
この記事にコメントする
お名前
タイトル
メール
URL
コメント
文字色
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret
この記事へのトラックバック
この記事にトラックバックする:
  • ABOUT
やってやれないことはないっ!たぶん・・・
  • カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • 最新コメント
[11/09 CALL MY NAME]
[11/09 erin]
[08/18 うずランド]
[07/11 うずランド]
[06/23 うずランド]
  • プロフィール
HN:
Call my name
年齢:
50
性別:
男性
誕生日:
1974/05/22
職業:
スロ屋店員
趣味:
いろいろ
自己紹介:
やる気だけはあるつもりです。
はい。
  • バーコード
  • ブログ内検索
  • カウンター
  • アクセス解析
Copyright © 35歳からのC言語ゲームプログラミング All Rights Reserved.*Powered by NinjaBlog
Graphics By R-C free web graphics*material by 工房たま素材館*Template by Kaie
忍者ブログ [PR]