Sokoban pour Alice

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Sokoban pour Alice

Message par Carl »

Sokoban pour Alice 4K
sokoban.jpg
sokoban.jpg (13.72 Kio) Consulté 3746 fois
(c) Jim Gerrie's software

Code : Tout sélectionner

1 CLS:DIMA$(16),X,Y,PX,PY,XV,YV,YY,MV,BC,MC,TB,TT,ML,TW,SK,WN,P,C,Z,I,S,R,N,F
5 DIMB$,I$,SP$,PR$,NM$,PL$,BX$,BF$
10 GOSUB900
20 GOSUB800:LV=LV+1:IFLV>TWTHEN400
90 GOSUB1000:GOSUB1100
100 FORMV=1TO64000:PRINT@((PY-I)*TT)+(PX-I),PL$;
110 I$=INKEY$:IFI$=""THEN110
120 IFI$="W"THENIFMID$(A$(PY-I),PX,I)<>NM$THENYV=-1:GOTO160
130 IFI$="Z"THENIFMID$(A$(PY+I),PX,I)<>NM$THENYV=1:GOTO160
140 IFI$="A"THENIFMID$(A$(PY),PX-I,I)<>NM$THENXV=-1:GOTO160
145 IFI$="S"THENIFMID$(A$(PY),PX+I,I)<>NM$THENXV=1:GOTO160
150 IFI$="R"THENGOSUB800:GOSUB1100
151 IFI$="C"THENMV=64000:SK=1:GOTO190
155 GOTO110
160 P=PEEK(MC+((PY-I+YV)*TT)+(PX-I+XV)):IFP=NORP=FTHENGOSUB200
170 IFMID$(A$(PY),PX,I)=PR$THENPRINT@((PY-I)*TT)+(PX-I),PR$;:GOTO180
175 PRINT@((PY-I)*TT)+(PX-I),SP$;
180 PY=PY+YV:PX=PX+XV:YV=Z:XV=Z:TM=TM+I:PRINT@ML,TM;
190 NEXT:GOTO20
200 P=PEEK(MC+((PY-I+YV+YV)*TT)+(PX-I+XV+XV))
210 IFP=STHENGOSUB350:GOTO290
220 IFP=RTHENGOSUB300:GOTO290
230 YV=Z:XV=Z
290 RETURN
299 REM BOX IS ON A PAD
300 PRINT@((PY-I+YV+YV)*TT)+(PX-I+XV+XV),BF$;
310 IFMID$(A$(PY+YV),PX+XV,I)<>PR$THEN BC=BC+I:IFBC=TBTHENMV=64000:WN=1
320 RETURN
350 PRINT@((PY-I+YV+YV)*TT)+(PX-I+XV+XV),BX$; 
360 IFMID$(A$(PY+YV),PX+XV,I)=PR$ANDMID$(A$(PY+YV+YV),PX+XV+XV,I)=SP$THEN BC=BC-I
370 RETURN
400 PRINT@((PY-1)*TT)+(PX-1),PL$;
410 IFSK=1THEN425
415 PRINT@150,"YOU";:PRINT@182,"COMPLETED";:SOUND 200,2
420 PRINT@214,"ALL THE";:PRINT@246,"LEVELS!";:SOUND 225,2
425 PRINT@278,"TRY AGAIN?";
430 I$=INKEY$:IFI$=""THEN430
435 IFI$="Y"THENRUN
440 IFI$="N"THENEND
450 GOTO430
799 REM NEW LEVEL VARIABLES
800 BC=0:MV=0
810 IFWN=0THEN890
820 PRINT@150,"LEVEL";:PRINT@182,"COMPLETED";
830 SOUND170,9:SOUND159,3:SOUND10,3:SOUND159,9:SOUND147,13
840 WN=0
890 RETURN
899 REM START VARIABLES
900 MC=16384:LV=0:MV=0:TM=0:TT=32:Z=0:I=1:ML=118:S=96:R=110:N=79:F=15:SK=0:WN=0
910 TW=16:REM ** THIS IS THE # OF LEVELS **
920 SP$=" ":PR$=".":NM$="#":PL$="^":BX$="O":BF$="o"
990 RETURN
1000 YY=0
1010 YY=YY+1:READ A$(YY):IFRIGHT$(A$(YY),1)<>"*"THEN1010
1020 C=RND(7)-1:RETURN
1100 CLS:TB=0:FORY=1TOYY
1105 FORX=1TOLEN(A$(Y)):B$=MID$(A$(Y),X,I)
1110 IFB$="#"THENPRINTCHR$(159+(16*C));:GOTO1150
1120 IFB$="$"THENPRINTBX$;:GOTO1150
1130 IFB$="."THENPRINTPR$;:TB=TB+I:GOTO1150
1135 IFB$="@"THENPRINTPL$;:PX=X:PY=Y:GOTO1150
1140 PRINTSP$;
1150 NEXT:IFY<16THENPRINT
1155 NEXT
1160 PRINT@22,"LEVEL";LV;
1170 PRINT@54,"BOXES";TB;
1180 PRINT@86,"MOVES";:PRINT@ML,TM;
1185 PRINT@342,"sokoban";
1186 PRINT@342+32,"VER 1.1";
1187 PRINT@342+64," JIM G.";
1190 RETURN
2000 DATA"    #####"
2020 DATA"    #   #"
2030 DATA"    #$  #"
2040 DATA"  ###  $##"
2050 DATA"  #  $ $ #"
2060 DATA"### # ## #   ######"
2070 DATA"#   # ## #####  ..#"
2080 DATA"# $  $          ..#"
2085 DATA"##### ### #@##  ..#"
2087 DATA"    #     #########"
2090 DATA"    #######*"
2100 DATA"############"
2110 DATA"#..  #     ###"
2120 DATA"#..  # $  $  #"
2130 DATA"#..  #$####  #"
2140 DATA"#..    @ ##  #"
2150 DATA"#..  # #  $ ##"
2160 DATA"###### ##$ $ #"
2170 DATA"  # $  $ $ $ #"
2180 DATA"  #    #     #"
2185 DATA"  ############*"
2200 DATA"        ########"
2205 DATA"        #     @#"
2210 DATA"        # $#$ ##"
2220 DATA"        # $  $#"
2230 DATA"        ##$ $ #"
2235 DATA"######### $ # ###"
2240 DATA"#....  ## $  $  #"
2245 DATA"##...    $  $   #"
2250 DATA"#....  ##########"
2255 DATA"########*"
2310 DATA"           ########"
2315 DATA"           #  ....#"
2320 DATA"############  ....#"
2325 DATA"#    #  $ $   ....#"
2330 DATA"# $$$#$  $ #  ....#"
2335 DATA"#  $     $ #  ....#"
2340 DATA"# $$ #$ $ $########"
2345 DATA"#  $ #     #"
2350 DATA"## #########"
2355 DATA"#    #    ##"
2360 DATA"#     $   ##"
2365 DATA"#  $$#$$  @#"
2370 DATA"#    #    ##"
2375 DATA"###########*"
2410 DATA"        #####"
2415 DATA"        #   #####"
2420 DATA"        # #$##  #"
2425 DATA"        #     $ #"
2430 DATA"######### ###   #"
2435 DATA"#....  ## $  $###"
2440 DATA"#....    $ $$ ##"
2445 DATA"#....  ##$  $ @#"
2450 DATA"#########  $  ##"
2455 DATA"        # $ $  #"
2460 DATA"        ### ## #"
2465 DATA"          #    #"
2470 DATA"          ######*"
2500 DATA"######  ###"
2510 DATA"#..  # ##@##"
2515 DATA"#..  ###   #"
2520 DATA"#..     $$ #"
2525 DATA"#..  # # $ #"
2530 DATA"#..### # $ #"
2535 DATA"#### $ #$  #"
2540 DATA"   #  $# $ #"
2545 DATA"   # $  $  #"
2550 DATA"   #  ##   #"
2555 DATA"   #########*"
2600 DATA"       #####"
2610 DATA" #######   ##"
2615 DATA"## # @## $$ #"
2620 DATA"#    $      #"
2625 DATA"#  $  ###   #"
2630 DATA"### #####$###"
2635 DATA"# $  ### ..#"
2640 DATA"# $ $ $ ...#"
2645 DATA"#    ###...#"
2650 DATA"# $$ # #...#"
2655 DATA"#  ### #####"
2660 DATA"####*"
2700 DATA"  ####"
2710 DATA"  #  ###########"
2715 DATA"  #    $   $ $ #"
2720 DATA"  # $# $ #  $  #"
2725 DATA"  #  $ $  #    #"
2730 DATA"### $# #  #### #"
2735 DATA"#@#$ $ $  ##   #"
2740 DATA"#    $ #$#   # #"
2745 DATA"#   $    $ $ $ #"
2750 DATA"#####  #########"
2755 DATA"  #      #"
2760 DATA"  #      #"
2765 DATA"  #......#"
2770 DATA"  #......#"
2775 DATA"  #......#"
2780 DATA"  ########*"
2800 DATA"          #######"
2810 DATA"          #  ...#"
2815 DATA"      #####  ...#"
2820 DATA"      #      . .#"
2825 DATA"      #  ##  ...#"
2830 DATA"      ## ##  ...#"
2835 DATA"     ### ########"
2840 DATA"     # $$$ ##"
2845 DATA" #####  $ $ #####"
2850 DATA"##   #$ $   #   #"
2855 DATA"#@ $  $    $  $ #"
2860 DATA"###### $$ $ #####"
2865 DATA"     #      #"
2870 DATA"     ########*"
2910 DATA" ###  #############"
2915 DATA"##@####       #   #"
2920 DATA"# $$   $$  $ $ ...#"
2925 DATA"#  $$$#    $  #...#"
2930 DATA"# $   # $$ $$ #...#"
2935 DATA"###   #  $    #...#"
2940 DATA"#     # $ $ $ #...#"
2945 DATA"#    ###### ###...#"
2950 DATA"## #  #  $ $  #...#"
2955 DATA"#  ## # $$ $ $##..#"
2960 DATA"# ..# #  $      #.#"
2965 DATA"# ..# # $$$ $$$ #.#"
2970 DATA"##### #       # #.#"
2975 DATA"    # ######### #.#"
2980 DATA"    #           #.#"
2985 DATA"    ###############*"
3000 DATA"          ####"
3010 DATA"     #### #  #"
3015 DATA"   ### @###$ #"
3020 DATA"  ##      $  #"
3025 DATA" ##  $ $$## ##"
3030 DATA" #  #$##     #"
3035 DATA" # # $ $$ # ###"
3040 DATA" #   $ #  # $ #####"
3045 DATA"####    #  $$ #   #"
3050 DATA"#### ## $         #"
3055 DATA"#.    ###  ########"
3060 DATA"#.. ..# ####"
3065 DATA"#...#.#"
3070 DATA"#.....#"
3075 DATA"#######*"
3100 DATA"################"
3110 DATA"#              #"
3115 DATA"# # ######     #"
3120 DATA"# #  $ $ $ $#  #"
3125 DATA"# #   $@$   ## ##"
3130 DATA"# #  $ $ $###...#"
3135 DATA"# #   $ $  ##...#"
3140 DATA"# ###$$$ $ ##...#"
3145 DATA"#     # ## ##...#"
3150 DATA"#####   ## ##...#"
3155 DATA"    #####     ###"
3160 DATA"        #     #"
3165 DATA"        #######*"
3200 DATA"   #########"
3210 DATA"  ##   ##  #####"
3215 DATA"###     #  #    ###"
3220 DATA"#  $ #$ #  #  ... #"
3225 DATA"# # $#@$## # #.#. #"
3230 DATA"#  # #$  #    . . #"
3235 DATA"# $    $ # # #.#. #"
3240 DATA"#   ##  ##$ $ . . #"
3245 DATA"# $ #   #  #$#.#. #"
3250 DATA"## $  $   $  $... #"
3255 DATA" #$ ######    ##  #"
3260 DATA" #  #    ##########"
3265 DATA" ####*"
3300 DATA"       #######"
3310 DATA" #######     #"
3315 DATA" #     # $@$ #"
3320 DATA" #$$ #   #########"
3325 DATA" # ###......##   #"
3330 DATA" #   $......## # #"
3335 DATA" # ###......     #"
3340 DATA"##   #### ### #$##"
3345 DATA"#  #$   #  $  # #"
3350 DATA"#  $ $$$  # $## #"
3355 DATA"#   $ $ ###$$ # #"
3360 DATA"#####     $   # #"
3365 DATA"    ### ###   # #"
3370 DATA"      #     #   #"
3375 DATA"      ########  #"
3380 DATA"             ####*"
3400 DATA"   ########"
3410 DATA"   #   #  #"
3415 DATA"   #  $   #"
3420 DATA" ### #$   ####"
3425 DATA" #  $  ##$   #"
3430 DATA" #  # @ $ # $#"
3435 DATA" #  #      $ ####"
3440 DATA" ## ####$##     #"
3445 DATA" # $#.....# #   #"
3450 DATA" #  $..**. $# ###"
3455 DATA"##  #.....#   #"
3460 DATA"#   ### #######"
3465 DATA"# $$  #  #"
3470 DATA"#  #     #"
3475 DATA"######   #"
3480 DATA"     #####*"
3500 DATA"#####"
3510 DATA"#   ##"
3515 DATA"#    #  ####"
3520 DATA"# $  ####  #"
3525 DATA"#  $$ $   $#"
3530 DATA"###@ #$    ##"
3535 DATA" #  ##  $ $ ##"
3540 DATA" # $  ## ## .#"
3545 DATA" #  #$##$  #.#"
3550 DATA" ###   $..##.#"
3555 DATA"  #    #.*...#"
3560 DATA"  # $$ #.....#"
3565 DATA"  #  #########"
3570 DATA"  #  #"
3575 DATA"  ####*"

jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Sokoban pour Alice

Message par jester »

Euhhh c'est d'époque ou il y a encore des gens qui programment en BASIC de nos jours... je veux dire en BASIC des années 80 :lol:
Fou ce qu'on pouvait quand même faire avec 4ko !
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17531
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: Sokoban pour Alice

Message par fneck »

C'est actuel :lol:

Il existe un groupe assez actif sur le Tandy MC10 via Yahoo, je pense que le Sokoban vient de là.
http://tech.groups.yahoo.com/group/trs80mc10club/

Par contre, c'est forcément en anglais.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Sokoban pour Alice

Message par Carl »

Oui, ce groupe est très actif sur le MC10 et en Basic principalement !

carl
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: Sokoban pour Alice

Message par Patrice »

Merci Carl pour cette trouvaille, je pense qu'elle pourrait éventuellement être ajoutée dans un nouveau chapitre du Wiki d'Alice de la page Software, si l'auteur du programme donne son accord! :wink:
Répondre