サウンドテスト by すもろでぃ

再生

 プチコンにプリセットで入っているBGMPLAY文とBEEP文のサウンドだけど、実際に聴いてみないとどんな音なのかなかなかわからない。コンソールで数字を1つずつ変えて鳴らしてみるのもけっこうタイヘンかもしれない。
 そこで登場するこのプログラムだけど、これはそんなプリセットサウンドの試聴にUI(ユーザーインターフェース)を付けて簡単にしたもの。ゲームのサウンドテスト風に作ってあるのが遊びゴコロだね。

私が作りました

すもろでぃ

BASICというのはまともに触るのはコレが始めて、というか、プログラムを組むことも殆ど無く生活してきたので、初心者でも頑張ればやれるってのを伝えられたらなぁと思います。
説明書のBGMとSEを文字で見て、「わからん!」と思ったので作ってみました。
PRINTとIF THENを主軸として、必要そうなら他の命令を探す形で作っていきました。
プログラムのスマートさは無いかもしれないけれど、少ない命令でもどうにかできる!


 CHECK POiNT 

博士
プリセット音にはいちおう名前もついておるが、たしかにこれだけでは心もとないのう。必要は発明の母、というやつじゃな。

ワンパク
(……サラッと人ごとみてぇに言ってやがる……このジジイ、あなどれねえぜ……)

神崎
作者コメントにも書いてあるように、基本的な命令だけでうまくやりくりして作ってあるね。

インテリ
それだけわかりやすいプログラムだし、ダイエットや改造のしがいもありそうだね。たとえばPRINT文を繰り返して改行にしてある所はLOCATE文1つにまとめられそうだよ。

博士
そういう風に、プログラムリストをよりシンプルに見直してみるのも楽しさのひとつじゃな。新しい発見もあるかもしれんぞ。

プログラムリスト

  1. ’-+- サウント゛テスト -+-
  2. ’- ショキカ -
  3. CLEAR
  4. VISIBLE 1,1,0,0,1,1
  5. CLS:COLOR 0
  6. GPAGE 0:GCOLOR 0:GCLS 0
  7. SPPAGE 0:SPCLR
  8. BGPAGE 1
  9. BGOFS 0,0,0
  10. PX=123
  11. PY=95
  12. ’-- カ-ソルク゛ラフィック --
  13. SPSET 0,100,2,0,0,PR
  14. SPANIM 0,2,10,0
  15. SPOFS 0,PX,PY
  16. ’-- N=10ノクライ - M=1ノクライ --
  17. N=0
  18. M=0
  19. ’-- モ-ト゛ --
  20. MODE=1
  21. ’-- カ゛メンヒョウシ゛ --
  22. @PRI
  23. CLS:COLOR 0
  24. VSYNC 1
  25. PRINT ” ”
  26. PRINT ” ”
  27. PRINT ” ”
  28. PRINT ” ”
  29. PRINT ” ”
  30. PRINT ” ”
  31. PRINT ” ”
  32. IF MODE==2 THEN PRINT ”            SE TEST ”
  33. IF MODE==1 THEN PRINT ”           BGM TEST ”
  34. PRINT ” ”
  35. PRINT ” ”
  36. PRINT ”              ”N,””M
  37. PRINT ” ”
  38. PRINT ” ”
  39. PRINT ” ”
  40. PRINT ” ”
  41. PRINT ” ”
  42. PRINT ”      -------------------”
  43. PRINT ”      -+:ハ゛ンコ゛ウセンタク     -”
  44. PRINT ”      -A:サイセイ  B:テイシ    -”
  45. PRINT ”      -X:モ-ト゛  Y:シュウリョウ -”
  46. PRINT ”      -------------------”
  47. @SEL
  48. BUT=BUTTON()
  49. IF BUT==16 THEN IF MODE==2 THEN BEEP (N*10+M)
  50. IF BUT==16 THEN IF MODE==1 THEN BGMPLAY (N*10+M)
  51. IF BUT==32 THEN BGMSTOP
  52. IF BUT==64 THEN IF MODE==2 THEN MODE=1 VSYNC 10 M=0 N=0 GOTO @PRI
  53. IF BUT==64 THEN IF MODE==1 THEN MODE=2 VSYNC 10 M=0 N=0 GOTO @PRI
  54. IF BUT==128 GOTO @EN
  55. VSYNC 10
  56. ’-- カ-ソル←→ --
  57. IF PX==107 THEN IF BUT==8 THEN PX=123
  58. SPOFS 0,PX,PY
  59. IF PX==123 THEN IF BUT==4 THEN PX=107
  60. ’-- カ-ソル↑↓ --
  61. SPOFS 0,PX,PY
  62. ’- 10ノクライ -
  63. IF MODE==2 THEN IF PX==107 THEN IF N==6 THEN IF BUT==1 THEN N=0 GOTO @PRI
  64. IF MODE==1 THEN IF PX==107 THEN IF N==2 THEN IF BUT==1 THEN N=0 GOTO @PRI
  65. IF PX==107 THEN IF BUT==1 THEN N=N+1 GOTO @PRI
  66. IF MODE==2 THEN IF PX==107 THEN IF N==0 THEN IF BUT==2 THEN N=6 GOTO @PRI
  67. IF MODE==1 THEN IF PX==107 THEN IF N==0 THEN IF BUT==2 THEN N=2 GOTO @PRI
  68. IF PX==107 THEN IF BUT==2 THEN N=N-1 GOTO @PRI
  69. ’- 1ノクライ -
  70. IF PX==123 THEN IF M==9 THEN IF BUT==1 THEN M=0 GOTO @PRI
  71. IF PX==123 THEN IF BUT==1 THEN M=M+1 GOTO @PRI
  72. IF PX==123 THEN IF M==0 THEN IF BUT==2 THEN M=9 GOTO @PRI
  73. IF PX==123 THEN IF BUT==2 THEN M=M-1 GOTO @PRI
  74. GOTO @SEL
  75. @EN
  76. CLEAR
  77. BGMSTOP
  78. END