RANKING by すがぁら。

再生

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

私が作りました

すがぁら。
twitter

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


 CHECK POiNT 

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

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

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

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

プログラムリスト

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