変数に連番を代入する方法

りばりー
記事: 4
登録日時: 2017年2月18日(土) 10:49

変数に連番を代入する方法

投稿記事by りばりー » 2017年2月18日(土) 11:09

こんにちは。初めて質問させていただきます。

例えば変数1~変数10の範囲に、1~10までの連番をランダムに代入していく、
という感じのことを考えています。
画像

標準のイベントコマンドの組み合わせでもできることはできるのですが非常に効率が悪いので、
なにか効率的な方法がありましたらご教授願います。

アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 変数に連番を代入する方法

投稿記事by まっつUP » 2017年2月18日(土) 11:41

りばりー様
お世話になります。

以下のスクリプトコマンドを実行することで代入できると思います。
多分他にもっとよい方法があると思いますがひとまずこれを貼っときます。
(スクリプトコマンド)
var a = 1;
var b = 10;
var array = [];
for(var i = a; i <= b; i++){
array[i - 1] = i;
}
for(var i = a; i <= b; i++){
var ai = Math.floor(Math.random() * array.length);
$gameVariables.setValue(i,array[ai]);
array.splice(ai ,1);
}
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: 変数に連番を代入する方法

投稿記事by 奏ねこま » 2017年2月18日(土) 12:01

イベントコマンドの「スクリプト」にて、こんな感じでどうでしょ?

コード: 全て選択

var i1 = 1;     // 変数番号の最初
var i2 = 10;    // 変数番号の最後
var v1 = 1;     // 連番の開始値
var v2 = 10;    // 連番の終了値
var value = Array.apply(null,Array(v2-v1+1)).map(function(v,i){return i+v1});
for(var i=i1;i<=i2;i++){
  var v = value.splice(Math.randomInt(value.length),1)[0];
  $gameVariables.setValue(i,v);
}
アバター
ぶちょー
記事: 40
登録日時: 2016年8月25日(木) 12:15
連絡を取る:

Re: 変数に連番を代入する方法

投稿記事by ぶちょー » 2017年2月18日(土) 13:13

こんにちは。

私ならこうするという感じのを張り付けておきます。

コード: 全て選択

var i1 = 1;
var i2 = 10;
var min = 1;
var max = 10;
for(var i = i1; i <= i2; i++) {
  var value = Math.randomInt(max - min + 1) + min;
  $gameVariables.setValue(i, value);
}
---------------------------------------------------------------------------------------
[Homepage] http://nyannyannyan.bake-neko.net/
  RGSS3/RGSS2/Pluginの配布を行っています。
  HPでのみ配布しているPluginもあります。
[Blog] http://kazaricat.blog.fc2.com/
  主にゲーム製作の進捗。
[Plugin]
  サンプルに「ゆるドラシル」を使用します(`・ω・´)
  http://yurudora.com/tkool/
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: 変数に連番を代入する方法

投稿記事by 奏ねこま » 2017年2月18日(土) 13:20

ぶちょー さんが書きました:こんにちは。

私ならこうするという感じのを張り付けておきます。

要件は「1~10までの連番をランダムに代入していく」なので、
同じ数字が2度出てしまってはダメなのではないでしょうか。
りばりー
記事: 4
登録日時: 2017年2月18日(土) 10:49

Re: 変数に連番を代入する方法

投稿記事by りばりー » 2017年2月18日(土) 13:59

まっつUP様、奏ねこま様、ぶちょー様
回答ありがとうございます!

奏ねこま様の方法で無事に解決いたしました。
御三方の素早く親切な回答に感謝いたします。
アバター
ぶちょー
記事: 40
登録日時: 2016年8月25日(木) 12:15
連絡を取る:

Re: 変数に連番を代入する方法

投稿記事by ぶちょー » 2017年2月18日(土) 19:01

奏ねこま さんが書きました:
ぶちょー さんが書きました:こんにちは。

私ならこうするという感じのを張り付けておきます。

要件は「1~10までの連番をランダムに代入していく」なので、
同じ数字が2度出てしまってはダメなのではないでしょうか。


うはー、そうですね!
恥ずかしくて穴に入りたい(´・ω・`)
---------------------------------------------------------------------------------------
[Homepage] http://nyannyannyan.bake-neko.net/
  RGSS3/RGSS2/Pluginの配布を行っています。
  HPでのみ配布しているPluginもあります。
[Blog] http://kazaricat.blog.fc2.com/
  主にゲーム製作の進捗。
[Plugin]
  サンプルに「ゆるドラシル」を使用します(`・ω・´)
  http://yurudora.com/tkool/

“MV:質問” へ戻る