2022/09/08に更新

【GASで暇潰し】10秒ぴったりゲームで遊ぶ

ゲームジョークスプレッドシート

ぴったり10秒を当てるゲームをGoogle Apps Scriptで作ってみました。

こんな悩みを解決します


  • なんだか無性に10秒ぴったり数えたくなってきた。

用意するもの


特にありません。スプレッドシートのコンテナバインド型プロジェクトとして作りました。

このスクリプトで出来ること


  • 10秒ぴったり当てるゲームが楽しめます。

使い方


1.スクリプトの実行

上のメニューにある「スクリプト実行」から「10秒ぴったりゲーム」を実行します。

開始のメッセージが表示されます。
OKを押すと計測がスタート、キャンセルを押すと何もせずにスクリプトが終了します。

「10秒たったと思ったらOKを押して!」とメッセージが表示されます。
OKを押すと・・・

実際に経過した時間と、成績に応じたメッセージが表示されます。

2.注意点

GASの実行速度はかなりムラがありますので、本当に10秒かどうかは怪しいです・・・。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00141/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('10秒ぴったりゲーム', 'just_10_seconds');

  // メニューを画面に追加する
  menu.addToUi();
}


function just_10_seconds() {

  // メッセージを表示するためUIオブジェクトを取得
  const ui = SpreadsheetApp.getUi();

  // 開始のメッセージを表示
  const prompt = ui.alert('10秒ぴったりゲームを始めます', 'OKを押すとスタートです!', ui.ButtonSet.OK_CANCEL);

  // キャンセルボタンが押されたら処理を中止
  if (prompt == ui.Button.CANCEL) {
    return;
  }

  // 開始時点の時刻を取得。比較するのでgetTime()でミリ秒として取得。
  const time_start = new Date().getTime();

  // 終了時に押すボタンを表示する
  ui.alert('10秒たったと思ったらOKを押して!', ui.ButtonSet.OK);

  // 終了時点の時刻を取得
  const time_end = new Date().getTime();

  // 終了時刻から開始時刻を引いて所要時間を求める。ミリ秒なので1000で割って秒にする。
  const time_result = (time_end - time_start) / 1000;

  // 所要時間から10秒を引いて、差がどれだけあったか求める。マイナスになりうるので絶対値を取る。
  let diff = Math.abs(time_result - 10);

  // メッセージ表示用の変数
  let message;

  // 差の秒数に応じてメッセージを変える
  if (diff == 0) {
    message = 'ジャスト10秒! 本当に人間か?'
  } else if (0 < diff && diff <= 0.5) {
    message = '誤差0.5秒以内。すごい!';
  } else if (0.5 < diff && diff <= 1) {
    message = '誤差1秒以内。まあまあすごい!';
  } else if (1 < diff && diff <= 2) {
    message = '誤差2秒以内。フツーって感じ?';
  } else if (2 < diff) {
    message = 'ぴったりへの道は険しい・・・もっとがんばって!';
  }

  // 結果を画面表示
  ui.alert('結果は' + time_result + '秒でした\n\n【コメント】\n' + message);

}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp