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

2020/09/24 22:42:48

MixJuice GET URL : kidspod.club/mj/1016

KNIGHT

※電子工作マガジン 2020年夏号 付属 マイコンBASICマガジン 掲載作品

チェスのナイトを使ったパズルゲームです。
ナイトを動かして、8x8マスの盤面上のすべてのコインを取ればクリアとなります。
ナイトはコインの無いマスには移動できません。
全15ステージです。

カーソルキーの左右で、ナイトを中心にカーソルを時計回り、または反時計回りに動かします。
カーソル位置にコインがあれば、スペースキーで移動ができます。
移動先が無くなってしまった場合は、エンターキーを押すことで、そのステージをやり直すことができます。

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

SOURCE CODE

NEW

1 '### "KNIGHT" 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 '//AA3lQj:mw/k227uDHox1wbB
12 '3l/A/k//xCH7122///2zzw2/T
13 'kA///////kA2/zzzzzzAoxTjq
14 ':mzotAg:AwDzzkQ20kwT0zgxB
15 'EA2Uw8XAzjtx2Vc30kUT/:vQR
16 'sC2U3DU//UA62lYnTrzUkC2k9
17 'yC2Tj6ov0kQ610w/jb0M7C/EN
18 'y/0EcpNsCXW2/U//3/EU13//B
19 '///iuevc///I40kQ60k71003d
20 'C9csF0//51EMNdZa////35ksl
21 'T2Vg32nbNhhOEWG0/Es9DaVMG
22 'A7//T6lwT6k//0/ET4FwC2Us9
23 'uWvxTrnse1//TbtyTbty/9eeT
24 'JJKeeZJJ56tyzzxyTVVzzzzzK
25 'zzzzzkD

SAVE 0
 
NEW

10 '### [KNIGHT] MAIN ###
20 LET [0],1,2,2,1,-1,-2,-2,-1
30 C="    (#E0)(#E1)(#E2)(#E3)(#E4)  (#E5)(#E6)(#E1)(#E2)(#E7)(#E8)(#E9)(#EA)(#EB)(#EC)(#ED)(#EE)(#EF)"
40 CLS:VIDEO 5:X=-3:Y=-1:A=16
50 GSB@P:?"KNIGHT":SCROLL 1
60 @T:IF INKEY()=0 GOTO@T
70 PLAY"L16<CDEFG8":VIDEO 1:R=1
80 @R:CLS:LC 12,1:?"STAGE ";R
90 FOR I=0 TO 1
100 Y=7+I*33:DRAW 15,Y,48,Y
110 X=15+I*33:DRAW X,7,X,40
120 NEXT:N=0:A=4:FOR Y=0 TO 7
130 Z=PEEK(#780+R*8+Y)
140 FOR X=0 TO 7
150 IF Z>>(7-X)&1 N=N+1:GSB@P
160 NEXT:NEXT
170 Z=PEEK(#780+R/2)>>(R%2*4)
180 K=Z&3:L=Z>>2&3
190 X=K:Y=L:A=16:GSB@P:D=2:M=0
200 @K:D=(D+M)&7:GSB@D:X=K+V
210 Y=L+W:IF (X|Y)&8 GOTO@K
220 E=(SCR(X*2+8,Y*2+4)=#E0)
230 A=8+E*4:GSB@P
240 @L:B=INKEY():IF B=0 GOTO@L
250 IF B=10 BEEP 80,15:GOTO@R
260 IF B=32 && E GOTO@E
270 M=(B=29)-(B=28):IF!M GOTO@L
280 BEEP16,2:A=E*4:GSB@P:GOTO@K
290 @E:M=4:K=X:L=Y:A=16+(D>3)*4
300 GSB@P:X=K-V:Y=L-W:A=0:GSB@P
310 N=N-1:IF N BEEP 24,5:GOTO@K
320 LC 13,22:?"CLEAR!":BEEP4,20
330 WAIT 120:R=R%15+1:GOTO@R
340 @D:V=[D]:W=[(D+6)&7]:RTN
350 @P:LC X*2+8,Y*2+4
360 ?STR$(C+A,2):LC X*2+8,Y*2+5
370 ?STR$(C+A+2,2):RTN

SAVE 1

LRUN 0

COMMENT

Kidspod運営チーム
Kidspod運営チーム2020/09/29 12:57:25

お、おもしろい……。ステージ次第で、ものすごい読みの力が要求されますね。これだけルールがシンプルなのにすごいです。ビジュアルもかっこいい!