【はじプロ】ランダムノードンを攻略:初心者がつまづきやすいポイントを解説してみた

【はじプロ】ランダムノードンを攻略:初心者がつまづきやすいポイントを解説してみた

【PR】この記事には広告を含みます。

この記事はこんな人に読んでもらいたい

  • ランダムノードンをどのように使えるかイメージできていないあなた
  • ランダム要素をもったゲームを作りたいあなた

この記事を読めばこんなことがわかる

  • ランダムノードン = 『好き勝手に』『数字を出力する』気まぐれな子
  • 入力された数値が0か、0以外か判断して出力する
  • 1/60秒前の数値から変わったかどうかを判断して出力する

「ナビつき!つくってわかる はじめてゲームプログラミング」(はじプロ)でゲームを作ろうと頑張っているお子さんも多いでしょう。

ナビ付きレッスンをクリアしたうえでゲームを作っていくと、

クリアのしかたを覚えちゃったら飽きちゃうよね・・・。

毎回違う仕掛けを作るにはどうすればいいのかな?

と、せっかく作ったゲームを何回も楽しんでもらいたい、と欲がでてくるのではないでしょうか?

過去に私がつくったゲームには、1〜4の数字がかかれたパネルを順番にタッチする、というミニゲームがあります。

ランダムノードンを使わないと、1〜4のパネルは毎回同じ場所に出現してしまいます。

押す場所がわかってしまっているとミスのしようがないので、ゲームとして飽きてしまうと思いませんか?

また、皆さんは『ドラゴンクエスト』、『ファイナルファンタジー』、『ポケットモンスター』をプレイしたことはありますか?

どのゲームでも冒険中に敵が出てきますが、皆さんは敵が出現するタイミングを100%知ることができるでしょうか?

おそらく大半のかたは知ることができないでしょう。

これらのゲームでは、敵が出てくるタイミングがランダムに決まる、いわゆる”ランダムエンカウント”と呼ばれる仕組みが使われています。

この仕組みがあることで、プレイヤーに予測をさせないように工夫しているのですね。

今回は、このようなランダムなしくみをつくりだすことができる”ランダムノードン”の解説をします。

この記事を読めば、ランダムなしくみをご自身のゲームに組み込むことができますよ。

ランダムノードンとは?好き勝手に数字を出力する気まぐれな子

ランダムノードンの役割を覚えよう

ランダムノードンの特徴を一言でいうと、ランダムノードン = 『好き勝手に』『数字を出力する』気まぐれな子です。

身近なもので例えると、ランダムノードン = ビンゴゲームのガラガラ と覚えてもらえたら、とてもイメージしやすいと思います。

ランダムノードンをわかりやすく例えると
ランダムノードンをわかりやすく例えるとビンゴゲームのガラガラ
(画像引用元:
任天堂HP

ランダムノードンの役割をひと言でいうと次のとおりです。

ランダムノードンの役割
あらかじめ決められた数字の範囲からランダムに1つだけ出力する

ランダムノードンを使うために覚えること

ランダムノードンには、入力ポートが1つ、出力ポートが1つあります。

ランダムノードンの入力ポート1つ目「?」(はてな)
  • 0が入力された場合:何も出力しない
  • 0以外が入力された場合:あらかじめ決められた範囲の数字をランダムに出力する
ランダムノードンの入力ポート2つ目「リセット」
  • 0が入力された場合:何もしない
  • 0以外が入力された場合:0を出力する(=リセットする)
ランダムノードンの出力ポート
  • あらかじめ決められた範囲の数字をランダムに出力する
  • 出力したい数字の範囲は、設定>出力はんい で設定することができる

ここで、設定画面のなかで理解が難しいポイントである、『数を更新するタイミング』を解説します。

数を更新するタイミングのくわしい設定
  • 0から変わったしゅんかん:入力ポート「?」に入る数が0から変わったしゅんかん”だけ”出力ポートからランダムに出力する
  • 0以外のときずっと:入力ポート「?」に入る数が0でないときは”ずっと”、出力ポートからランダムに出力する

ここで、はじプロのルールについて復習です。

過去記事:【はじプロ】カウンターノードンと時間表示を攻略:つまづきやすいポイントを解説してみた で説明していますが、ノードンガレージで作られたプログラムは、1/60秒ごとに処理を行っています。

今回解説しているランダムノードンは、1秒間のあいだに60回、次のような処理をやっているのです。

  1. ランダムノードンの入力ポートにつながっているノードンから、入力を受け取る。
  2. 入力された数値が 0か?0以外か? 判断する。
  3. 0以外の数値だったら、決められた範囲の数字をランダムに選ぶ。
  4. 出力ポートから次のノードンへ選んだ数字を送る。

この説明と、『数を更新するタイミング』とどんな関係性があるのか、定数ノードン&ランダムノードン&数つきモノノードンをつなげたプログラムで確認してみましょう。

確認する前に、どんな違いが見られるようになるか、一度ご自身で考えてみてくださいね。

数を更新するタイミングと出力される結果の違い
0から変わったしゅんかん
入力ポート「?」に入る数値が0から変わった瞬間”だけ”出力ポートからランダムに出力する
→【出力結果】ランダムな数値が1つ表示され、いつまでたっても表示される数値は変わらない。
0以外のときずっと
入力ポート「?」に入る数値が0でないときは”ずっと”、出力ポートからランダムに出力する
→【出力結果】ランダムな数値が1秒間の60個表示され、目で追うことができないほど表示される数値が変わり続ける。

実際のゲーム画面で見てみましょう。

(0から変わったしゅんかんに設定した場合)

(0以外のときずっとに設定した場合)

設定の違いを擬人化するように例えてみました。

0から変わったしゅんかん:ランダムな数値が1つ表示され、いつまでたっても表示される数値は変わらない。

0以外のときずっと:ランダムな数値が1秒間の60個表示され、目で追うことができないほど表示される数値が変わり続ける。

まとめ

今回はランダムノードンの使い方について解説しました。

ランダムノードンの使い方まとめ

  • ランダムノードン = 『好き勝手に』『数字を出力する』気まぐれな子
  • 入力された数値が0か、0以外か判断して出力する
  • 1/60秒前の数値から変わったかどうかを判断して出力する

今回、ランダムノードンをとりあげた理由として2つあります。

解説するノードンとしてランダムノードンをとりあげた理由
  • ゲームではひんぱんに使うしくみなので理解してほしいから
  • 『重複しない乱数』を見つけて感動したから

私も自身でゲームをつくっている際、発生する乱数が重複(ちょうふく・じゅうふく)してしまう問題にぶち当たりました。

そのときに調べた際に見つけたプログラムが『重複しない乱数』だったのです。

重複しない乱数

ランダムノードンの出力をそのまま使うのではなく、ランダムノードンの大小関係を使ってランダムな順番を生み出す、という言葉では表現しにくいしくみが考えられています。

発想が柔軟だと思って感動し、ぜひ知ってもらいたいと思ったので、まずは基礎知識として必要なランダムノードンの解説をしました。

次回はこの『重複しない乱数』の解説をします。

\あわせて読んでね/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

はじプロから次のステップへ
詳細はこちら!
はじプロから次のステップへ
詳細はこちら!