現在GASで人狼ゲームを行うためのスクリプトを作成していますが、GASの6分の時間制限の対策のために、プレイヤーの氏名と役職の連想配列をスプレッドシートの"secretに転記させようとしたところで詰まっています。
function start_game(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getSheetByName("secret"); var num = Browser.inputBox("人数を入力してください"); var roles = input_players(num);//人数に応じて役職の配分を決める関数。戻り値は役職の配列 var time = Browser.inputBox("話し合いの時間を入力してください"); var player = getrole(roles,num);//プレイヤーの氏名を入力し、ランダムで役職を与える関数。戻り値は氏名と役職の連想配列 sh.getRange(1,1,num,2).setValues(player); //一旦スプレッドシート上に連想配列を転記したい }
コードを実行したところ以下のエラ〜メッセージが出ました
Exception: パラメータ((class))が SpreadsheetApp.Range.setValues のメソッドのシグネチャと一致しません。(行 9、ファイル「コード」)
スプレッドシートに転記する処理が何かしらおかしいのかと思って色々調べたのですが原因がよくわかりません。
どなたか原因を教えていただけると幸いです。
よろしくお願いします。
↓これの戻値の形はどんな感じでしょうか。
```
var player = getrole(roles,num);//プレイヤーの氏名を入力し、ランダムで役職を与える関数。戻り値は氏名と役職の連想配列
```
console.log(player);としてログに出して頂き、処理実行後に 「表示」→「ログ」と出して、見せて頂けないでしょうか。
こんな感じですね
{ hoge: '人狼',
hogehoge: '市民',
hogehogehoge: '市民',
hogehogehogehoge: '市民',
hogehogehogehogehoge: '市民' }
その構造なら私の回答で動きませんか?
動きました!
回答1件
あなたの回答
tips
プレビュー