Skip to content

Instantly share code, notes, and snippets.

@teaplanet
Created November 14, 2012 03:43
Show Gist options
  • Select an option

  • Save teaplanet/4070128 to your computer and use it in GitHub Desktop.

Select an option

Save teaplanet/4070128 to your computer and use it in GitHub Desktop.
15PUZZLE(SHARPポケコン PC-G815) 学生の頃に作ったやつっぽい。 ※注意 "|" ポケコンの [SHIFT + H]
10 CLS:CLEAR
20 F$="1"'OPENNING
30 FOR J1=J3 TO 17
40 LOCATE (23-J1+J2),1:PRINT F$
50 NEXT
60 IF F$="1" THEN F$="5":J2=J2+1:J3=J3+1:GOTO 30
70 IF F$="5" THEN F$=" ":J2=J2+1:J3=J3+1:GOTO 30
80 IF F$=" " THEN F$="P":J2=J2+1:J3=J3+1:GOTO 30
90 IF F$="P" THEN F$="U":J2=J2+1:J3=J3+1:GOTO 30
100 IF F$="U" THEN F$="Z":J2=J2+1:J3=J3+1:GOTO 30
110 FOR J1=0 TO 11
120 LOCATE 23-J1:PRINT "Z"
130 NEXT
140 FOR J1=0 TO 10
150 LOCATE 23-J1:PRINT "L"
160 NEXT
170 FOR J1=0 TO 9
180 LOCATE 23-J1:PRINT "E"
190 NEXT
200 FOR J1=0 TO 8
210 LOCATE 23-J1:PRINT " "
220 NEXT
230 LOCATE 7,3:PRINT "[SPACE]"
240 IF INKEY$ =" " THEN 260
250 GOTO 240
260 CLS
270 FOR I1=0 TO 3
280 LOCATE I1,I2:PRINT CHR$ (65+I1+I3)
290 NEXT
300 IF I2=3 THEN 330
310 I2=I2+1:I3=I3+4
320 GOTO 270
330 FOR I=0 TO 3
340 LOCATE 4,I:PRINT "|"
350 NEXT
360 LOCATE 7,0:PRINT "GAME LEVEL":LOCATE 8,1:PRINT "1:EASY":LOCATE 8,2:PRINT "2: NORMAL":LOCATE 8,3:PRINT "3:HARD"
370 IF INKEY$ ="1" THEN L=50:G=(5/2):GOTO 420
380 IF INKEY$ ="2" THEN L=100:G=(5):GOTO 420
390 IF INKEY$ ="3" THEN L=150:G=(15/2):GOTO 420
400 IF INKEY$ =CHR$ 2 THEN L=300:G=(15):GOTO 420
410 GOTO 370
420 I1=0:I2=0
430 DIM N1$(3,3):I3=65
440 FOR I1=0 TO 3
450 N1$(I1,I2)= CHR$ (I1+I3)
460 NEXT
470 IF I2=3 THEN N1$(3,3)=" ":GOTO 500
480 I2=I2+1:I3=I3+4
490 GOTO 440
500 I1=0:I2=0
510 CLS :X=3:Y=3
520 LOCATE 5,0:PRINT "Please Wait!"
530 LOCATE 6,1:PRINT "Now Loadinfg!"
540 GOSUB 950'MAIN
550 CLS
560 FOR I1=0 TO 3
570 LOCATE I1,I2:PRINT N1$(I1,I2)
580 NEXT
590 IF I2=3 THEN 620
600 I2=I2+1
610 GOTO 560
620 FOR I=0 TO 3
630 LOCATE 4,1:PRINT "|"
640 NEXT
650 LOCATE 8,0:PRINT "MOVE":LOCATE 9,1:PRINT "8":LOCATE 8,2:PRINT "4":LOCATE 10, 2:PRINT "6":LOCATE 9,3:PRINT "2":LOCATE 16,0:PRINT "OK!":LOCATE 15,2:PRINT " SPACE"
660 IF INKEY$ ="4" THEN 720
670 IF INKEY$ ="6" THEN 730
680 IF INKEY$ ="8" THEN 740
690 IF INKEY$ ="2" THEN 750
700 IF INKEY$ =" " THEN 860
710 GOTO 660
720 IF X=3 THEN 660 ELSE V=1:GOSUB 770:GOTO 660
730 IF X=0 THEN 660 ELSE V=2:GOSUB 770:GOTO 660
740 IF Y=3 THEN 660 ELSE V=3:GOSUB 770:GOTO 660
750 IF Y=0 THEN 660 ELSE V=4:GOSUB 770:GOTO 660
760 ON V GOTO 770,790,810,830
770 WAIT 10:N$=N1$(X,Y):N1$(X,Y)=N1$(X+1,Y):N1$(X+1,Y)=N$
780 LOCATE X+1,Y:PRINT N1$(X+1,Y):LOCATE X,Y:PRINT N1$(X,Y):X=X+1:WAIT 0:GOTO 9 0
790 WAIT 10:N$=N1$(X,Y):N1$(X,Y)=N1$(X-1,Y):N1$(X-1,Y)=N$
800 LOCATE X-1,Y:PRINT N1$(X-1,Y):LOCATE X,Y:PRINT N1$(X,Y):X=X-1:WAIT 0:GOTO 89 0
810 WAIT 10:N$=N1$(X,Y):N1$(X,Y)=N1$(X,Y+1):N1$(X,Y+1)=N$
820 LOCATE X,Y+1:PRINT N1$(X,Y+1):LOCATE X,Y:PRINT N1$(X,Y):Y=Y+1:WAIT 0:GOTO 89 0
830 WAIT 10:N$=N1$(X,Y):N1$(X,Y)=N1$(X,Y-1):N1$(X,Y-1)=N$
840 LOCATE X,Y-1:PRINT N1$(X,Y-1):LOCATE X,Y:PRINT N1$(X,Y):Y=Y-1:WAIT 0:GOTO 89 0
850 RETURN
860 I1=0:I2=0:I3=0:Z=0
870 IF N1$(I1,I2)= CHR$ (65+I1+I3) THEN 880 ELSE 660
880 IF I2=3 THEN 900
890 IF I1=3 THEN I2=I2+1
900 IF N1$(0,3)="M" AND N1$(1,3)="N" AND N1$(2,3)="O" AND N1$(3,3)=" " THEN H=1: GOTO 910 ELSE 660
910 IF H=1 THEN 1140
920 IF I1=3 THEN I1=0:I2=I2+1:I3=I3+4
930 I1=I1+1
940 GOTO 870
950 WAIT 0:RANDOMIZE
960 LOCATE 0,3:PRINT "0%"
970 LOCATE 9,3:PRINT "50%"
980 LOCATE 20,3:PRINT "100%":U=22
990 FOR C=1 TO L
1000 IF (5*C/G)=10 OR (5*C/G)=100 THEN U=U-1
1010 LOCATE (C/G),2:PRINT ">"
1020 P$= STR$ INT (5*C/G):LOCATE U,2:PRINT P$;"%"
1030 D= RND 4
1040 IF D=1 THEN GOSUB 1100
1050 IF D=3 THEN GOSUB 1110
1060 IF D=2 THEN GOSUB 1120
1070 IF D=4 THEN GOSUB 1130 ELSE 1030
1080 NEXT
1090 RETURN
1100 IF X=3 THEN RETURN ELSE 1370
1110 IF X=0 THEN RETURN ELSE 1390
1120 IF Y=3 THEN RETURN ELSE 1410
1130 IF Y=0 THEN RETURN ELSE 1430
1140 CLS
1150 F$="*"
1160 FOR I1=0 TO 23
1170 LOCATE I1,I2:PRINT F$
1180 NEXT
1190 IF I2=3 THEN 1220
1200 I2=I2+1
1210 GOTO 1160
1220 IF F$=" " THEN 1250
1230 F$=" " :I2=0
1240 GOTO 1160
1250 IF L=50 THEN 1290
1260 IF L=100 THEN 1300
1270 IF L=150 THEN 1310
1280 IF L=300 THEN 1320
1290 LOCATE 0,1:PRINT "CHARENGE NORMAL LEVEL!!!":GOTO 1330
1300 LOCATE 0,1:PRINT "CHARENGE HARD LEVEL!!!!!":GOTO 1330
1310 LOCATE 0,1:PRINT "SET LEVEL:HIT [CLS]!!!!!":GOTO 1330
1320 LOCATE 3,1:PRINT "ALL LEVEL CLEAR!!!":GOTO 1330
1330 LOCATE 4,3:PRINT "ONE MORE? [Y/N]"
1340 IF INKEY$ ="Y" THEN 10
1350 IF INKEY$ ="N" THEN 1370
1360 GOTO 1340
1370 CLS :CLEAR :END
1380 N$=N1$(X,Y):N1$(X,Y)=N1$(X+1,Y):N1$(X+1,Y)=N$:X=X+1
1390 RETURN
1400 N$=N1$(X,Y):N1$(X,Y)=N1$(X-1,Y):N1$(X-1,Y)=N$:X=X-1
1410 RETURN
1420 N$=N1$(X,Y):N1$(X,Y)=N1$(X,Y+1):N1$(X,Y+1)=N$:Y=Y+1
1430 RETURN
1440 N$=N1$(X,Y):N1$(X,Y)=N1$(X,Y-1):N1$(X,Y-1)=N$:Y=Y-1
1450 RETURN
1460 END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment