2019-07-24
昔はなかった百ます計算、2003年あたりから学校でも使われている様子。

プログラミングする際に知ってほしい、コンピューターの実力。1秒間にできる計算回数、いったい自分はどのくらい? 100回計算ゲームではかってみよう!


84秒でした。

10 CLS 20 FORX=1TO10:LCX*3,0:[X]=RND(10)+1:?[X]:NEXT 30 FORY=1TO10:LC0,Y*2:[Y+10]=RND(10)+1:?[Y+10]:NEXT 40 CLT 50 FORY=1TO10:FORX=1TO10 60 LC X*3,Y*2:?" " 70 LC X*3,Y*2:INPUT"",A 80 IF [X]+[Y+10]!=A BEEP20:GOTO60 90 NEXT:NEXT 100 ?TICK()/60;"sec ";

プログラムはこんな感じです。
FORコマンドで横と縦にランダムな数値をかきつつ、配列(並びで使える変数)に値を覚えておきます。
CLTでタイマーリセット、間違ったら音をならし、正解なら次へ。横縦それぞれ10回の2重ループで、100回終わったら時間を表示して、終了!

繰り返しの構造(ループ)を丁寧に書くと、こんな感じにもかけます。

100 CLS 110 FOR X=1 TO 10 120 LC X*3,0:[X]=RND(10)+1 130 ?[X] 140 NEXT 150 FOR Y=1 TO 10 160 LC 0,Y*2:[Y+10]=RND(10)+1 170 ?[Y+10] 180 NEXT 190 CLT 200 FOR Y=1 TO 10 210 FOR X=1 TO 10 220 LC X*3,Y*2:?" " 230 LC X*3,Y*2:INPUT"",A 240 IF [X]+[Y+10]!=A BEEP20:GOT220 250 NEXT 260 NEXT 270 ?TICK()/60;"sec ";

120行と160行のランダムな値をいろいろ工夫すると難易度自由自在!

105 SRND 1

と追加すると、ランダム具合を固定できるので友達と同条件で勝負できます。
1を2など変えるとステージ変更可能です。

繰り返しの構造を分かりやすくするためにプログラムを字下げすることをインデントと呼びます。
プログラミング言語や、慣習によって何文字空けるかはいろいろですが、IchigoJam BASIC では、1文字空けるのがちょうどいいですね。
それと合わせて、ver1.4からはタブキーによる字下げを1文字に変更する予定です。

ichigojam-1.4.0b06.zip
- タブ文字の表示をスペース2文字から1文字へ変更(PRINTコマンド内のコンマ使用時にも適応されます)


コンピューターに解いてみてもらいました。(RUN on IchigoJam web)

220 LC X*3,Y*2:?[X]+[Y+10] 230 240

220行で正解を表示するように変更し、230、240行を消せばOK!
100回計算を1秒!1回あたり0.01秒、画面表示とかいろいろやりながらこの速度!なかなかに速いでしょう。

かつては、夏休みじゃなくてもあった自由研究
いすゞ自動車から、素敵なコンテンツが登場です!

アイロンビーズでつくったトラックに、LEDを仕込みウィンカーとヘッドライトをプログラムで制御する方法を動画で解説!


アイロンビーズを作ったいすゞのトラックでプログラミングに挑戦しよう - 特別企画 | HaKoBu いすゞ自動車 コミュニティ

Enjoy クリエイティブな夏休み!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS