サイドビュー型のシンプルなパットゴルフゲームだ。
まずはプレイするホール数を選ぼう。メイン画面が表示されたら、Lボタンで素振りの開始。上下するショットゲージのちょうどいい強さを見計らって、Rボタンで打ち込もう。ボールがカップに向かって転がっていくぞ。
ホールごとにある規定打数(パー)を上回らないよう、少ない打数のカップインでハイスコアを狙おう。
すがぁら。
Twitter
20年近く前に組んだパットゴルフゲームを、プチコンに移植してみました。
Lボタンでショットゲージが動くので、球の強さを決定してRボタンでショットします。
距離によってパーがかわります。
97〜100行目で、球の強さの計算をしています。ゲームバランスが悪い場合は調整してみてください。
目指せ、ホールインワン!
- ’
- ’ PATPAT
- ’
- ’ショキ ショリ
- @SHOKI
- VISIBLE 1,1,0,0,0,1
- CLS:GCLS:CLEAR
- HC=1:SC=0
- GOSUB @TITLE
- ’
- ’ ホールノ ショキセッテイ
- ’
- @HOLE
- BEEP 42
- CLS
- GFILL 0,0,255,90,4
- GFILL 0,90,255,255,10
- GFILL 150,3,250,70,0
- GBOX 150,3,250,70,0
- GFILL 70,3,140,30,0
- GBOX 70,3,140,30,0
- GFILL 20,36,35,130,0
- GBOX 20,36,35,130,0
- BL=1 ’タマノ ショキイチ
- SH=0 ’ショットカウント リセット
- LOCATE BL,18
- COLOR 0:PRINT ”.”
- CP=FLOOR(RND(20)+8)
- IF CP<10 THEN PER=2
- IF CP>9 THEN PER=3
- IF CP>17 THEN PER=4
- IF CP>25 THEN PER=5
- ’
- ’ 1タ゛ コ゛トノ ホール ショリ
- ’
- @SET
- LOCATE CP,18
- COLOR 1:PRINT ”●”
- LOCATE 10,1
- COLOR 15:PRINT ”К:スインク゛”
- LOCATE 10,2
- COLOR 15:PRINT ”К:ショット”
- LOCATE 20,1
- COLOR 15:PRINT HC;” ホール”
- LOCATE 20,3
- COLOR 15:PRINT ”キョリ :”;CP
- LOCATE 20,4
- COLOR 15:PRINT ”ハ゜ー :”;PER
- LOCATE 20,6
- COLOR 15:PRINT ” スコア:”;SC
- LOCATE 20,7
- COLOR 15:PRINT ”ショット:”;SH
- ’
- ’ スインク゛ ショリ
- ’
- @BTN
- B = BUTTON()
- IF B == 256 GOTO @PLAY
- GOTO @BTN
- ’
- ’ ハ゜ワーケ゛ーシ゛ ト ショット
- ’
- @PLAY
- FOR TM = 0 TO 10000:NEXT TM
- FOR LV=0 TO 10
- FOR TM = 0 TO 1500
- X=BUTTON()
- IF X == 512 GOTO @SHOT
- NEXT TM
- LOCATE 3,15-LV
- COLOR 7:PRINT”┿”
- NEXT LV
- FOR LV =10 TO 0 STEP -1
- FOR TM = 0 TO 1500
- X=BUTTON()
- IF X == 512 GOTO @SHOT
- NEXT TM
- LOCATE 3,15-LV
- COLOR 7:PRINT” ”
- NEXT LV
- GOTO @SET
- ’
- ’ ホ゛ールノ ヒキョリ セッテイ
- ’
- @SHOT
- BEEP 29:SH=SH+1
- LOCATE 20,7
- COLOR 15:PRINT ”ショット:”;SH
- IF LV<3 THEN LV=RND(LV/2)+1
- IF LV>2 THEN LV=RND(LV)+LV-1
- IF LV>6 THEN LV=RND(LV/3)+LV
- IF LV>8 THEN LV=RND(LV/2)+LV*1.2
- LV=FLOOR(LV)
- IF BL<CP GOTO @PTN1A
- IF BL>CP GOTO @PTN2A
- ’
- ’ ホ゛ールカ゛ カッフ゜ノ ヒタ゛リカ゛ワ
- ’
- @PTN1A
- FOR H=1 TO LV
- IF BL>27 THEN Y=H:GOTO @PTN1B
- BL=BL+1
- FOR TM=1 TO 3000:NEXT TM
- LOCATE BL,18
- COLOR 15:PRINT ”.”
- LOCATE BL-1,18
- PRINT ” ”
- LOCATE CP,18
- COLOR 1:PRINT ”●”
- NEXT H
- GOTO @HOLEIN
- @PTN1B
- FOR H=Y TO LV
- CP=CP-1
- FOR TM=1 TO 3000:NEXT TM
- LOCATE CP,18
- COLOR 15:PRINT ”●”
- LOCATE CP+1,18
- PRINT ” ”
- NEXT H
- GOTO @HOLEIN
- ’
- ’ ホ゛ールカ゛ カッフ゜ノ ミキ゛カ゛ワ
- ’
- @PTN2A
- FOR H=1 TO LV
- IF BL<1 THEN Y=H:GOTO @PTN2B
- BL=BL-1
- FOR TM=1 TO 3000:NEXT TM
- LOCATE BL,18
- COLOR 15:PRINT ”.”
- LOCATE BL+1,18
- PRINT ” ”
- LOCATE CP,18
- COLOR 1:PRINT ”●”
- NEXT H
- GOTO @HOLEIN
- @PTN2B
- FOR H=Y TO LV
- CP=CP+1
- FOR TM=1 TO 3000:NEXT TM
- LOCATE CP,18
- COLOR 15:PRINT ”●”
- LOCATE CP-1,18
- PRINT ” ”
- NEXT H
- GOTO @HOLEIN
- ’
- ’ カッフ゜イン ハンテイ
- ’
- @HOLEIN
- FOR LV=0 TO 10
- LOCATE 3,15-LV
- PRINT ” ”
- NEXT LV
- IF BL!=CP GOTO @SET
- BEEP 23
- FOR TM=0 TO 50000:NEXT TM
- SC=SC+SH-PER
- LOCATE 20,6
- COLOR 15:PRINT ” スコア: ”
- LOCATE 20,6
- COLOR 15:PRINT ” スコア:”;SC;” ”
- HC=HC+1
- IF HC<=HL GOTO @HOLE
- @ENDING
- LOCATE 7,12:COLOR 15
- PRINT ”PUSH [START] TO TITLE”
- ST=BUTTON()
- IF ST == 1024 GOTO @SHOKI
- GOTO @ENDING
- @TITLE
- COLOR 5:LOCATE 0,3
- PRINT ”┿┿┿┰ ┝┿┿┰ ┿┿┿┿┿│┿┿┿┰ ┝┿┿┰ ┿┿┿┿┿│”;
- PRINT ”───┿│┿┌─┿│──┿┌─┘───┿│┿┌─┿│──┿┌─┘”;
- PRINT ” ┿│┿│ ┿│ ┿│ ┿│┿│ ┿│ ┿│ ”;
- PRINT ”┿┿┿┸ ┿┿┿┿│ ┿│ ┿┿┿┸ ┿┿┿┿│ ┿│ ”;
- PRINT ”┿┌─ ┿┌─┿│ ┿│ ┿┌─ ┿┌─┿│ ┿│ ”;
- PRINT ”┿│ ┿│ ┿│ ┿│ ┿│ ┿│ ┿│ ┿│ ”;
- PRINT ”─┘ ─┘ ─┘ ─┘ ─┘ ─┘ ─┘ ─┘ ”;
- LOCATE 7,12
- COLOR 15
- PRINT ”SELECT COURSE”
- LOCATE 9,14:PRINT ”A: 1HOLE”
- LOCATE 9,15:PRINT ”B: 3HOLES”
- LOCATE 9,16:PRINT ”X: 9HOLES”
- LOCATE 9,17:PRINT ”Y:18HOLES”
- ST=BUTTON()
- IF ST == 16 THEN HL=1:RETURN
- IF ST == 32 THEN HL=3:RETURN
- IF ST == 64 THEN HL=9:RETURN
- IF ST == 128 THEN HL=18:RETURN
- GOTO @TITLE