地元情報誌が山口県を深堀していくウェブマガジン

トライアングルスタッフの○○やってみたvol.24【スプレッドシートを使って、ゲームを作ってみた】

ブラウザ上で動く、
簡単なゲームを作ってみよう!

このコーナーは山口県タウン情報トライアングルのスタッフが、今気になることを挑戦・検証するコラムです。
といってもかなりゆる~いものなので、気楽にお付き合いいただけますと幸せます。


今回の担当:ゆうぼう
小さな頃から家にパソコンがあり、遊び道具にしてました。
10代の頃、遊び半分に触れていたVisual Basicの中途半端な知識を元に、プログラミングに挑戦してみます!

こんにちは。トライアングルスタッフのゆうぼうです。

皆さんは、googleの「スプレッドシート」を使ったことはありますか?

某エクセルのような表計算ができるアプリなんですが、トライアングルでは、取材先のリストをまとめたりと、仕事でよく使っています。

今回は、そんなスプレッドシートを使って(まったく仕事の役に立たない!)簡単なゲームを作ってみます!

※作業中は絵になりそうな部分がまったくないので、イメージ画像をお送りします。

スプレッドシートを使って、プログラミング!

スプレットシードの良いところは、新しくソフトなどをダウンロードしなくても、ブラウザ上で動いてくれるところ。
調べてみると「Google Apps Script」(GAS)という、機能を使ってプログラミングもできるようでした。

この機能を使って、まずはランダムで文章を作るゲームを作ってみます。
初心者が手探りで作るので、変なことをしているかもしれませんが…。


途中経過を書いても退屈なので、出来上がったものがコチラ!!(見本)

https://bit.ly/3hwuFGM

文章自動作成ゲームの遊び方

遊び方は、左にある「GO!!」を押すだけ。上の表にある文章の中からランダムに1つずつ選んで、下に表示されます。文章を出来るだけ変なものにしておくと、組み合わさった時に笑える文章になります。
…本当は、上のスプレッドシート上で遊べるようにしたかったのですが、技術不足でできませんでした…。

今回作ったプログラムがこちら↓

function game1() {
  let Spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
   let Sheet = Spreadsheet.getActiveSheet();

       for(let i=1;i<=5;i++){
         //ランダムで数を算出
         let getVal =  Math.floor(Math.random()*7 + 4);
         Sheet.getRange(i,1).setValue(getVal);
       } 

 //セルの値取得1
      let getVal3 = Sheet.getRange(“A1”).getValues();
   let getVal32 = Sheet.getRange(‘C’+getVal3).getValue();
   Range = Sheet.getRange(“C15”).setValue(getVal32);

 //セルの値取得2
      let getVal4 = Sheet.getRange(“A2”).getValues();
   let getVal42 = Sheet.getRange(‘D’+getVal4).getValue();
   Range = Sheet.getRange(“D15”).setValue(getVal42);

 //セルの値取得3
      let getVal5 = Sheet.getRange(“A3”).getValues();
   let getVal52 = Sheet.getRange(‘E’+getVal5).getValue();
   Range = Sheet.getRange(“E15”).setValue(getVal52);

 //セルの値取得4
      let getVal6 = Sheet.getRange(“A4”).getValues();
   let getVal62 = Sheet.getRange(‘F’+getVal5).getValue();
   Range = Sheet.getRange(“F15”).setValue(getVal62);

}

 
   

・簡単な解説
let getVal =  Math.floor(Math.random()*7 + 4);
    ↑7+4の部分で、ランダムな数字を出すセルの行を指定
    (4番目から7つ分)
let getVal42 = Sheet.getRange(‘D’+getVal4).getValue();
    ↑ランダムで出した数字に、選びたいシート(ここではD)の番号を足して、当たりのセルを決める
    (Dのシート+ランダム数字)
Range = Sheet.getRange(“D15”).setValue(getVal42);
    ↑さっき出した「当たりのセル」の内容を(D15)にコピーする

手探りで作っていたので、めちゃくちゃエラーばかり出していましたが、きちんと動いてくれた時の感動はひとしおでした!

まだまだ課題も…。


実は今回のプログラム、スマホでは起動しません…。
スマホからも動くように作る方法もあるようなのですが、今回はその部分をちゃんと作れませんでした…。
色々とまだまだ勉強不足ですが、次回はその辺りを解決してみたいと思います。

つたない説明ばかりでしたが、お付き合いありがとうございました!


SNSでフォローする