RANKING by すがぁら。

再生

 ちょっと懐かしい、3文字ネーム制のハイスコアランキング処理の投稿だ。
 説明不要かもしれないが、スコアの高い順に1位~10位までのネームが並び、そこに割り込めるスコアが出れば名前を入力させ、以下は下にズラしながら再び1位~10位まで並べ直す、というプログラムになっている。
 自分のゲームにハイスコア処理を入れておきたい、けど1から作るのはメンドくさいなあ……というモノグサ君はぜひ組み込んでもらいたい。

私が作りました

すがぁら。
twitter

約20年ぶりにBASICでプログラミングしました。


 CHECK POiNT 

ワンパク
ナンだ? 勝手に足し算が始まって、ネームエントリーが始まったぞ?

インテリ
このプログラムは、そのネームエントリーとランキング部分だけ抽出した投稿なのさ。プチコンプログラマーのみんなに応用してもらうためのモノだね。

博士
つまり足し算の部分は仮にスコアを出すためのサンプルじゃな。
実際にはそこに各自のゲームを入れ替えて使う、というワケじゃ。変数名などがかぶらないよう要注意じゃが。

神崎
ランキング画面はゲーム本体じゃなくってプラスアルファの部分だから、わざわざ作らなくても……って気になっちゃうのはわかるなあ。自分用の取っかかりにこういうのがあると助かるよね。

プログラムリスト

  1. ’    ランキンク゛ フ゜ロク゛ラム
  2. GOSUB @SHOKI
  3. ’カリノ フ゜ロク゛ラム
  4. FOR A=1 TO 10
  5. READ C(A)
  6. NEXT A
  7. FOR A=1 TO 10
  8. READ N$(A)
  9. NEXT A
  10. @GAME
  11. X=RND(40):Y=RND(40):Z=X+Y
  12. LOCATE 2,3:PRINT X;”+”;Y;”=”;Z
  13. P=0
  14. @LOOP
  15. P=P+1
  16. IF Z < C(10) GOTO @RANKING
  17. IF Z < C(P) AND P<11 GOTO @LOOP
  18. IF Z >= C(P) AND P<11 GOTO @RANK
  19. @RANKING
  20. CLS
  21. FOR X=1 TO 10
  22. IF X<10 THEN LOCATE 16,X+3:PRINT X;”.”;C(X);”┠”;N$(X)
  23. IF X==10 THEN LOCATE 15,X+3:PRINT X;”.”;C(X);”┠”;N$(X)
  24. NEXT X
  25. GOTO @GAME
  26. @BTN
  27. BT=BUTTON()
  28. IF BT == 16 GOTO @GAME
  29. GOTO @BTN
  30. @RANK
  31. LOCATE 3,18:PRINT ”NEW RECORD!!”:INPUT ”ナマエヲ イレテクタ゛サイ”;NM$
  32. NM$=MID$(NM$,0,3)
  33. FOR Q=10 TO P+1 STEP -1
  34. C(Q)=C(Q-1)
  35. N$(Q)=N$(Q-1)
  36. NEXT Q
  37. C(P)=Z:N$(P)=NM$
  38. GOTO @RANKING
  39. @SHOKI
  40. CLS:CLEAR
  41. DIM C(11),N$(11)
  42. DATA 40,35,30,22,21,18,16,8,3,0
  43. DATA ”SUG”,”BUN”,”TAK”,”JOH”,”BIG”,”LEN”,”AIИ”,”マサト”,”トム”,”SAM”
  44. RETURN