LoginSignup
1
0

More than 3 years have passed since last update.

4つの数字で10を作る「テンパズル」の問題用紙を生成する

Last updated at Posted at 2020-02-09

といってもやっていることはmake10 問題一覧と解答の問題を拝領しているのですが。

子供の頃に、電車の切符に記載されている4桁の数字を使って10を作るというのをよくやっていたと思います(こういうのをテンパズルと呼ぶのは知りませんでした)。Suicaになって、そういう数字を見ることもなくなってしまい、あっても車のナンバーくらいでしょうか。ドラゴン桜2で、この計算が数字に強くなるのに適していると書いてありました。とはいえ、毎度切符を買うわけにもいかないし、ドライブしている時くらいしかできないのは辛いです。

テンパズル - Wikipedia

アプリでもあるようですが、子供向けには紙でプリントされた状態で、手を動かす方が学習効果は大きいかと思います。ということで、問題用紙を生成するGoogleスプレッドシートを作りました。

誰でも編集権限を与えていますが、GoogleドライブにアクセスするのでGoogleログイン必須のようです。また、このシート自体はGoogleの承認を得ていないので、警告メッセージが出ます。

手順

Googleスプレッドシートにアクセスします。問題生成ボタンを押すと、承認が必要といわれます。

Screenshot_ 2020-02-09 10.02.51.png

このアプリは確認されていませんと出ます。

Screenshot_ 2020-02-09 10.02.58.png

詳細のリンクをクリックします。 テンパズル(安全ではないページ)に移動 をクリックします。この時点で私が信頼できない方は止めておいてください(生成に際して、編集権限を付与しているので、悪意を持った人が編集している可能性もあります…)。

Screenshot_ 2020-02-09 10.03.02.png

権限を付与します。

Screenshot_ 2020-02-09 10.03.05.png

問題が生成できるようになります。

Screenshot_ 2020-02-09 10.03.17.png

自分で作る場合

こちらの方がお勧めです。Googleスプレッドシートの 問題用紙問題一覧 の内容をそのままコピーしてください。シート名も同じにしてください。

ツールメニューのスクリプトエディタを開いて、次のコードを貼り付けます。552というのは問題の数で、決め打ちです(問題一覧シート参照)。なお、今回は全問解けるものだけにしています。解けないものを入れることもできますが、0000とか簡単すぎるものも入ってしまうので、今回は除外しています。

function generate() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('問題一覧');
  var s = ss.getSheetByName('問題用紙');
  var data = sheet.getRange(1, 1, 552, 3).getValues();
  for (var i = 0; i < 5; i++) {
    var params = data[Math.floor(Math.random() * data.length)];
    var numbers = zeroPadding(params[0], 4).split('');
    var row = (i + 1) * 4;
    for (var j = 0; j < 4; j++) {
     s.getRange(row, (j + 1) * 2).setValue(numbers[j]); 
    }
  }
}

function zeroPadding(num,length){
  return ('0000000000' + num).slice(-length);
}

やっていることは問題一覧を取得して、その中からランダムに4問取り出して、問題用紙に貼り付けているだけです。

後は問題用紙にある 問題生成 ボタンのトリガーとして generate 関数を実行しています。

まとめ

問題はボタンを押す度に新しいものに変わります。色々な問題を作って、算数脳を鍛えてみてください。なお、小学校5〜6年生レベルだそうですが、中高生で数学が苦手な人にもいいそうです。

謝辞&参考:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0