読者です 読者をやめる 読者になる 読者になる

tanaka's Programming Memo

プログラミングについてのメモ。

506 乱数の使い方

ここでマスターしたいこと

  • 乱数が何かを知ること
  • 乱数を使えるようにすること

乱数とは

  • サイコロのようなもの
  • 出したい目の範囲は自由に設定できる
  • シミュレーションやゲームによく利用する(RPGの戦闘など)
  • ランダムともいう

サイコロを作ってみる

新しいプロジェクト(projSaikoroなど)を作成して、ボタンを押したら1~6の数値が表示されるプログラムを作成してみよう。

手順

  • プロジェクトを作成する
  • ボタンを1つ置く
  • ボタンをダブルクリックする
  • 乱数を使うために、Randomというクラスを用意する
    • 定義する場所は、classの定義ブロックの中
    • プログラムは以下の通り。Randomというクラスをrandという名前で利用できるようにしている
private Random rand = new Random();
  • ボタンを押した時の処理で、1~6を生成
int saikoro = rand.Next(1,7);
  • 生成した数値をMessageBoxで表示する
MessageBox.Show("" + saikoro);

確認問題

次の範囲を求める方法を検討してみよう

  • 1 ~ 100
  • -10 ~ 10

応用演習:ラベルをランダムな方向に動かす

ラベルの速度を乱数にすることで、起動するごとに違う方向に動くラベルを作ることができる。先に作成したマウスを追いかけるプロジェクトを読み込み、以下を追加してみよう。

作業手順

  • Labelをもう一つ置く
  • timer1をダブルクリックしてコードを開く
  • 乱数を使えるようにrandを定義する。方法はサイコロの時と同じ
  • Labelの移動速度を記録するためのint型の変数vxとvyを定義する
    • randの定義の下に、以下を追加しよう
private int vx,vy;
vx = rand.Next(カッコの中の書き方は自分で考えてみよう);
    • vyにも、-20~20の乱数を求める
vy = rand.Next(カッコの中の書き方は自分で考えてみよう);
  • タイマーの処理で、以下を行う
    • label2.Leftにvxを足す
    • label2.Topにvyを足す

ヒント

必要な技術は以下の通り。

完成した時のプログラムのイメージ

f:id:am1tanaka:20141115164304g:plain

  • label2が、起動する度に違う方向に動いていけば正解


前へ | 目次 | 次へ