Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2024/12/09 21:16:03

MixJuice GET URL : kidspod.club/mj/2232

Slide Puzzle

5x5のフィールド上に複数の矢印が配置されています。ルールに従ってすべての矢印を使い、左上にある人型キャラを右下に移動させるとクリアになります。全60面。

タイトル画面でエンターキーを押すとゲームを開始します。
カーソルキーで点滅するカーソルを上下左右に動かします。
スペースキーでカーソル位置にある矢印を使用します。縦方向であれば縦一列が、横方向であれば横一列が、矢印の方向に1マス分スライドします。使用した矢印は消えてしまいます。ただし、スライドする列に他の矢印、または人型キャラが存在しないと、その矢印を使用することができません。
人型キャラがフィールドの右下に移動しても、フィールドに矢印が残っているとクリアになりません。
エンターキーでいつでもやり直すことができます。また、クリアしたあとはエンターキーで次の面に進みます。

※電子工作マガジン2024年夏号の「マイコンBASICマガジン」コーナーに掲載されました

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

SOURCE CODE

NEW

1 '### "SLIDE PUZZLE" DATA ###
2 Z=#C03:Y=#700:U=0
3 X=0:IF PEEK(Z)!=39 GOTO 9
4 X=X-1:W=PEEK(Z-X)
5 W=W-41-W/32*6:IF W<0 GOTO 8
6 V=V<<6+W:POKE Y,V>>(X*2&7)
7 Y=Y+(X&3<3):U=U^W:GOTO 4
8 IF U LIST PEEK(Z-3):END
9 Z=Z+PEEK(Z-1)+4:W=PEEK(Z-3)
10 IF W GOTO 3 ELSE LRUN 1
11 'T/gU/c/1N/KE4Y0N/KEM/1N/O
12 '0EwR///////I/8NEw////33IA
13 '/440FE4s/OE0Im3oaE27ID849
14 '/XFY1//5F30b/NU0ENY/FgmoD
15 '//66E7/79N//0Ed///5k/12/A
16 '5E0E3IO4/FE/2ZU0s/2:5nTbn
17 'Ad8PO/0E/KZB8EcxYB1U/wwQN
18 'Ut1Y/0i/Ad::k/1N/E7/IN2hZ
19 '/1JkT/jVaC/4///Kf:/jk/A/y
20 '//7uMf8:/N/0Y2P/0GU/S90:9
21 'E/o::0///A/01U/is0O//Uc/D
22 'xX/2z/3/3AU/UKM/m6QUI//XS
23 '/5Mfk//kU/U058Z/Es7mmBkEH
24 'A5/N//Ssg0ZU0yv7/44/HGKom
25 '/1U0c5/:mk7w/m/3lE/W/AU/d
26 '/c2rZU/U/2BAU/0HBYw1gnbsS
27 'qsS0rnDw4Fgls4:/0/bg11/Un
28 'nc032/HEcw30/FbkHGN9/QX9i
29 'K/aFk/w317U/KU/A/NWE0a//p
30 'B15E9N/t/0Y/1N/0E2Bw/JEMn
31 'U54////I0H02k/0Zb/FXD7/oJ
32 '/HE/w7B/aE0P8:/Y//3I/7j/6
33 'XxY9/40wwqN/U/owIc0UE7A3y
34 'm64/730nC

SAVE 0

NEW

10 '### "SLIDE PUZZLE" MAIN ###
20 VIDEO 5:CLS:R=1:?:?"Slide"
30 ?"  Puzzle":?"by@OBONO";
40 IF INKEY()!=10 CONT
50 CLS:BEEP 40,10:LC 6:?R
60 X=0:Y=0:Q=0:P=#900:POKE P,27
70 A=#6F8+R*7:Q=0:FOR I=1 TO 8
80 D=D<<8|PEEK(A+I):B=D>>I&127
90 FOR J=1 TO 3:Z=P&4:P=P+!Z+Z
100 C=B%5:IF C Q=Q+1 ELSE C=117
110 POKE P,C+27:B=B/5:NEXT:NEXT
120 K=INKEY():IF K=10 GOTO 50
130 X=(X+(K=29)-(K=28)+5)%5
140 Y=(Y+(K=31)-(K=30)+5)%5
150 C=SCR(X,Y):P=#900+Y*8+X
160 POKE P,1:WAIT 2:POKE P,C
170 WAIT 2:IF K!=32 GOTO 120
180 V=(C=29)-(C=28):T=!V
190 W=(C=31)-(C=30):U=!W
200 IF T&&U GOTO 120
210 S=0:FOR I=0 TO 4
220 Z=SCR(X*T+I*!T,Y*U+I*!U)<32
230 S=S+Z:NEXT:IF S=1 GOTO 120
240 BEEP C-20:POKE P,12:WAIT 3
250 Q=Q-1:FOR I=0 TO 4
260 X=(X-V+5)%5:Y=(Y-W+5)%5
270 C=SCR(X,Y):IF I=4 C=144
280 POKE P,C:P=#900+Y*8+X:NEXT
290 IF Q||SCR(4,4)!=27 GOTO 120
300 R=R+1:BEEP 3,15:LC 0,2
310 IF R<=60 ?"Clear":GOTO 40
320 ?"Complete":VIDEO 6:WAIT 15
330 BEEP 2,30:WAIT 60:VIDEO 5

SAVE 1

LRUN 0

COMMENT