Puissance 4 sur pocket (adaptation)

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Puissance 4 sur pocket (adaptation)

Message par charognard » 17 mars 2009 15:07

l'dée de base faire un puissance 4 sur nos machine graphique.
plutot que de me faire chier à faire ce qui est déjà fait je cherche dans les anciens hebdo un code ...
bingo j'en ai un sur l'AMSTRAD CPC je le télécharge, merde une image Disque.
j'ai CAPRICE le fameux émulateur, je charge le Disk
CAT
Image
LOAD "P4"
LIST
juste 1 seule ligne
1 CALL ...
ZUT
aller
RUN"P4"
je teste
Image
[ESC][ESC]
mode 2
list
nickel j'ai le source en basic
Image

Après parametrage de CAPRICE pour sortir le port imprimante vers un fichier windows et résolu mon problème de Buffer j'en tire le listing suivant

Commande : LIST#8 (merci fabrice :wink: )

Code : Tout sélectionner

1 ' &17D
10 SYMBOL AFTER 91:DEFINT A-D,F-Z:SYMBOL 93,24,24,24,24,24,24,24,24:SYMBOL 95,0,0,0,255,255,0,0,0:SYMBOL 252,24,24,36,36,66,90,161,1
61:SYMBOL 253,161,153,66,66,36,36,24,24:SYMBOL 254,126,126,129,129,129,157,137,137
20 SYMBOL 255,137,137,169,145,129,129,126,126:SYMBOL 91,24,24,24,255,255,24,24,24:DIM A(200):INK O,1:DATA 199,106,95,89,80,71:'
30 '
40 SCP=0:SJO=0:BORDER 0:MODE 1:PAPER 0:PEN 3:PRINT"          **  PUISSANCE  **":PRINT:INK 3,6,24:FOR I=100 TO 120 STEP 1.5:ORIGIN I+
55,200:DRAW I,110:NEXT:FOR I=200 TO 205:ORIGIN 170,I:DRAW 130,0:NEXT I:FOR I=250 TO 255:ORIGIN I,220:DRAW-15,-30:NEXT:PEN 1
50 LOCATE 4,23:PRINT STRING$(40,"_"):LOCATE 4,25:PRINT"APPUYER SUR <ENTER> POUR COMMENCER":GOSUB 1050:ENV 1,100,3,1:ENT 1,100,2,2:A=
0
60 IF A=0 THEN A=120:SOUND 1,200,110,1,1,1 ELSE A=A-1
70 R$=INKEY$:IF R$=""OR R$>=" "THEN 60
80 '
90 INK 3,1:CLS:B$="":LOCATE 1,10:PRINT"QUEL EST TON PRENOM ?? ":LOCATE 13,12:PRINT CHR$(143):LOCATE 1,12:GR=140
100 R$=INKEY$:GR=GR XOR 15:PRINT CHR$(GR);CHR$(8);:IF R$=""THEN 100
110 R$=UPPER$(R$):IF(R$<" "AND ASC(R$)<>13)THEN 100 ELSE IF ASC(R$)=13 THEN 130 ELSE IF(R$>"Z"AND ASC(R$)<>127)THEN 100 ELSE IF ASC(
R$)=127 AND LEN(B$)>0 THEN B$=LEFT$(B$,LEN(B$)-1):PRINT CHR$(8);"  ";CHR$(8);CHR$(8);:GOTO 100
120 IF LEN(B$)>10 THEN PRINT CHR$(7);:GOTO 100 ELSE B$=B$+R$:PRINT RIGHT$(B$,1);:GOTO 100
130 CLS:BORDER 0:INK 3,1:PAPER 3:CLS:LOCATE 1,5:PRINT"> VOICI MES PIONS :   "CHR$(252):PRINT TAB(23);CHR$(253):PRINT:PRINT"> VOICI L
ES VOTRES :  ";CHR$(254):PRINT TAB(23);CHR$(255):PRINT:PRINT STRING$(40,210):E=0:PRINT"** NIVEAU (1 a 3)":PEN 1:PRINT
140 PRINT" 1 = JEU MODERE":PRINT" 2 = JEU DEFENSIF":PRINT" 3 = JEU D'ATTAQUE":PRINT:PRINT STRING$(40,210):PRINT"SCORE  :       CPC  
   |";B$:PRINT TAB(18);SCP;TAB(24);"|";TAB(30);SJO
150 A$=INKEY$:IF A$=""OR A$<"1"OR A$>"3"THEN 150 ELSE E=VAL(A$):IF E=3 THEN E=0.5
160 INK 3,6:MODE 0:INK 15,9:PAPER 15:WINDOW#1,1,20,22,25:PAPER#1,5:BORDER 15:'
170 'CADRE
180 '
190 CLS:CLS#1:PEN 0:FOR N=1 TO 18 STEP 3:LOCATE 2,N:PRINT" [_[_[_[_[_[_[_[ ";:FOR I=1 TO 2:PRINT"  ]_]_]_]_]_]_]_] ";:NEXT I,N:FOR I
=1 TO 2:PRINT STRING$(17,"_"):NEXT I:PRINT TAB(4);"1 2 3 4 5 6 7":Q=42:G=0:FOR J=1 TO 7:A(J+90)=6:NEXT J:FOR I=1 TO 6
200 A(I+100)=7:NEXT I:FOR I=1 TO 6:FOR J=1 TO 7:A(I*9+J)=-1:NEXT J,I:FOR I=0 TO 7:A(I*9)=-2:A(I*9+8)=-2:NEXT I:FOR J=0 TO 8:A(J)=-2:
A(63+J)=-2:NEXT J
210 IF FLG=0 THEN ZJ2=INT(RND*2):IF ZJ2>1 THEN 210
220 IF FLG=0 THEN FLG=1 ELSE ZJ2=(ZJ2=1)+1
230 IF ZJ2=1 THEN Z=1:GOTO 250 ELSE IF Z=0 THEN Z=2:GOTO 240
240 J=4:GOTO 300
250 CLS#1:PRINT#1,"EN QUELLE COLONNE                       JOUEZ-VOUS ? ";:GOSUB 1050
260 R$=INKEY$:IF R$=""OR R$<"1"OR R$>"7"THEN 260 ELSE J=VAL(R$)
270 IF A(J+90)=0 THEN 250
280 CLS#1:A=J:Z=1:GOSUB 420:IF G=1 THEN PRINT#1,"     BRAVO  !       VOUS AVEZ GAGNE !!":GOSUB 980:SJO=SJO+1:GOTO 330
290 GOSUB 470
300 Z=0:GOSUB 420:IF G=1 THEN PRINT#1,"  AH AH AH  !!  J'AI GAGNE LA PARTIE":GOSUB 980:FOR J=1 TO 200:NEXT J:SCP=SCP+1:PRINT#1,"JE V
OUS DONNE VOTRE REVANCHE, OK ... ? ":GOTO 340
310 IF Q<>0 THEN 250
320 PRINT#1,"   BIEN JOUE !!  NOUS SOMME A EGALITE ...":ENT 1,20,3,5:FOR J=1 TO 4:SOUND 1,50,50,10,0,1:NEXT J:FOR J=1 TO 2000:NEXT J
330 PRINT#1,"UNE AUTRE PARTIE ? "
340 R$=INKEY$:IF R$=""OR(UPPER$(R$)<>"O"AND UPPER$(R$)<>"N")THEN 340
350 MODE 1:IF UPPER$(R$)="O"THEN GOTO 130
360 GOTO 40
370 RESTORE:FOR NUL=1 TO I:K=(2*J)+2:L=(NUL*2)+(NUL-1):LOCATE K,L:IF Z=0 THEN INK 14,3:PEN 14:PRINT CHR$(252);:LOCATE K,L+1:PRINT CH
R$(253);:GOTO 390
380 INK 8,5:PEN 8:PRINT CHR$(254);:LOCATE K,L+1:PRINT CHR$(255);:GOTO 390
390 '
400 READ MUS:SOUND 1,MUS,10:FOR XY=1 TO 150:NEXT XY:IF NUL<I THEN LOCATE K,L:PRINT" ";:LOCATE K,L+1:PRINT" ";
410 NEXT NUL:RETURN
420 'CALCULS
430 I=A(J+90):GOSUB 370:A(A(J+90)*9+J)=Z:R=A(J+90):S=J:A(A(J+90)+100)=A(A(J+90)+100)-1:A(J+90)=A(J+90)-1:Q=Q-1:IF Z=0 THEN RETURN
440 '
450 M=0:O=0:N=4:GOSUB 760:IF D=0 THEN G=0:RETURN
460 G=1:RETURN
470 N=4:S=1:O=2:M=45
480 R=A(S+90):IF R=0 THEN 510
490 A(R*9+S)=0:GOSUB 760:IF D=0 THEN A(R*9+S)=-1:GOTO 510
500 J=S:G=1:RETURN
510 S=S+1:IF S<8 THEN 480
520 N=4:S=1
530 R=A(S+90):IF R=0 THEN 560
540 A(R*9+S)=1:GOSUB 760:IF D=0 THEN A(R*9+S)=-1:GOTO 560
550 J=S:G=0:RETURN
560 S=S+1:IF S<8 THEN 530
570 FOR J=111 TO 117:A(J)=0:NEXT J:N=3:S=1
580 R=A(S+90):IF R=0 THEN 600
590 A(R*9+S)=0:GOSUB 760:A(S+110)=D/E:A(R*9+S)=-1
600 S=S+1:IF S<8 THEN 580
610 N=3:S=1
620 R=A(S+90):IF R=0 THEN 640
630 A(R*9+S)=1:GOSUB 760:A(S+110)=A(S+110)+D*E:A(R*9+S)=-1
640 S=S+1:IF S<8 THEN 620
650 N=3:S=1
660 R=A(S+90):IF R<2 THEN 700
670 A(R*9+S)=0:R=R-1:A(R*9+S)=1:GOSUB 760:IF D=0 THEN 690
680 A(S+110)=-D
690 A(R*9+S)=-1:R=R+1:A(R*9+S)=-1
700 S=S+1:IF S<8 THEN 660
710 K=-50:L=0:FOR J=111 TO 117:IF A(J)>K THEN K=A(J):L=J-110
720 NEXT J:IF A(L+90)=0 THEN A(L+110)=-60:GOTO 710
730 J=INT(RND*7)+1:IF A(J+90)=0 THEN 730
740 IF A(J+110)=K THEN RETURN
750 J=L:RETURN
760 Z=A(R*9+S):IF A(S+90)>=5 THEN D=0:GOTO 810
770 I=R+1:J=S:P=1
780 IF A(I*9+J)=Z THEN P=P+1:I=I+1:GOTO 780
790 IF P<N THEN D=0:GOTO 810
800 D=1
810 IF A(R+100)>=6 THEN 880
820 I=R:V=1
830 J=V+S:P=1
840 IF A(I*9+J)=Z THEN P=P+1:J=J+V:GOTO 840
850 IF V<>-1 THEN V=-1:U=P:GOTO 830
860 P=P+U-1:IF P<N THEN 880
870 D=D+1
880 V=1:W=1
890 I=R+W:J=S+V:P=1
900 IF A(I*9+J)=Z THEN P=P+1:J=J+V:I=I+W:GOTO 900
910 IF V<>-1 THEN V=-1:W=-W:U=P:GOTO 890
920 P=P+U-1:IF P<N THEN 940
930 D=D+1
940 IF W<>1 THEN V=1:GOTO 890
950 RETURN:'
960 '
970 MODE 2:PAPER 0:PEN 1:BORDER 0:GOTO 1080
980 '
990 '
1000 '
1010 RESTORE 1010:DATA 478,426,379,358,319,284,0,284,0,284,0,284,358,0,358,239,239,239,0,239,284,-1
1020 READ MU:IF MU=-1 THEN 1040 ELSE SOUND 1,MU,10,12:FOR I=1 TO 70:NEXT I
1030 GOTO 1020
1040 RESTORE 1010:RETURN
1050 FOR I=1 TO 20:R$=INKEY$:NEXT I:RETURN:'
1060 '
1070 '
1080 ON BREAK STOP:END
plus qu'a le comprendre
Dernière édition par charognard le 19 mars 2009 23:43, édité 5 fois.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 15:20

Une premiere analyse du code me donne la chose suivante
en ORANGE le code à remplacer ou à supprimer
en NOIR en noyau du programme
les autres couleurs correspondent aux sous programmes (calcul, déplacement, dessin, vérification ...)


1 ' &17D
10 SYMBOL AFTER 91:DEFINT A-D,F-Z:SYMBOL 93,24,24,24,24,24,24,24,24:SYMBOL 95,0,0,0,255,255,0,0,0:SYMBOL 252,24,24,36,36,66,90,161,1
61:SYMBOL 253,161,153,66,66,36,36,24,24:SYMBOL 254,126,126,129,129,129,157,137,137
20 SYMBOL 255,137,137,169,145,129,129,126,126:SYMBOL 91,24,24,24,255,255,24,24,24:DIM A(200):INK O,1:DATA 199,106,95,89,80,71:'
30 '

40 SCP=0:SJO=0:BORDER 0:MODE 1:PAPER 0:PEN 3:PRINT" ** PUISSANCE **":PRINT:INK 3,6,24:FOR I=100 TO 120 STEP 1.5:ORIGIN I+
55,200:DRAW I,110:NEXT:FOR I=200 TO 205:ORIGIN 170,I:DRAW 130,0:NEXT I:FOR I=250 TO 255:ORIGIN I,220:DRAW-15,-30:NEXT:PEN 1
50 LOCATE 4,23:PRINT STRING$(40,"_"):LOCATE 4,25:PRINT"APPUYER SUR <ENTER> POUR COMMENCER":GOSUB 1050:ENV 1,100,3,1:ENT 1,100,2,2:A=
0
60 IF A=0 THEN A=120:SOUND 1,200,110,1,1,1 ELSE A=A-1
70 R$=INKEY$:IF R$=""OR R$>=" "THEN 60
80 '
90 INK 3,1:CLS:B$="":LOCATE 1,10:PRINT"QUEL EST TON PRENOM ?? ":LOCATE 13,12:PRINT CHR$(143):LOCATE 1,12:
GR=140
100 R$=INKEY$:GR=GR XOR 15:PRINT CHR$(GR);CHR$(8);:IF R$=""THEN 100
110 R$=UPPER$(R$):IF(R$<" "AND ASC(R$)<>13)THEN 100 ELSE IF ASC(R$)=13 THEN 130 ELSE IF(R$>"Z"AND ASC(R$)<>127)THEN 100 ELSE IF ASC(
R$)=127 AND LEN(B$)>0 THEN B$=LEFT$(B$,LEN(B$)-1):PRINT CHR$(8);" ";CHR$(8);CHR$(8);:GOTO 100
120 IF LEN(B$)>10 THEN PRINT CHR$(7);:GOTO 100 ELSE B$=B$+R$:PRINT RIGHT$(B$,1);:GOTO 100
130 CLS:BORDER 0:INK 3,1:PAPER 3:CLS:LOCATE 1,5:PRINT"> VOICI MES PIONS : "CHR$(252):PRINT TAB(23);CHR$(253):PRINT:PRINT"> VOICI L
ES VOTRES : ";CHR$(254):PRINT TAB(23);CHR$(255):PRINT:PRINT STRING$(40,210):E=0:PRINT"** NIVEAU (1 a 3)":PEN 1:PRINT
140 PRINT" 1 = JEU MODERE":PRINT" 2 = JEU DEFENSIF":PRINT" 3 = JEU D'ATTAQUE":PRINT:PRINT STRING$(40,210):PRINT"SCORE : CPC
|";B$:PRINT TAB(18);SCP;TAB(24);"|";TAB(30);SJO
150 A$=INKEY$:IF A$=""OR A$<"1"OR A$>"3"THEN 150 ELSE
E=VAL(A$):IF E=3 THEN E=0.5
160 INK 3,6:MODE 0:INK 15,9:PAPER 15:WINDOW#1,1,20,22,25:PAPER#1,5:BORDER 15:'
170 'CADRE
180 '
190 CLS:CLS#1:PEN 0:FOR N=1 TO 18 STEP 3:LOCATE 2,N:PRINT" [_[_[_[_[_[_[_[ ";:FOR I=1 TO 2:PRINT" ]_]_]_]_]_]_]_] ";:NEXT I,N:FOR I
=1 TO 2:PRINT STRING$(17,"_"):NEXT I:PRINT TAB(4);"1 2 3 4 5 6 7":
Q=42:G=0:FOR J=1 TO 7:A(J+90)=6:NEXT J:FOR I=1 TO 6
200 A(I+100)=7:NEXT I:FOR I=1 TO 6:FOR J=1 TO 7:A(I*9+J)=-1:NEXT J,I:FOR I=0 TO 7:A(I*9)=-2:A(I*9+8)=-2:NEXT I:FOR J=0 TO 8:A(J)=-2:
A(63+J)=-2:NEXT J
210 IF FLG=0 THEN ZJ2=INT(RND*2):IF ZJ2>1 THEN 210
220 IF FLG=0 THEN FLG=1 ELSE ZJ2=(ZJ2=1)+1
230 IF ZJ2=1 THEN Z=1:GOTO 250 ELSE IF Z=0 THEN Z=2:GOTO 240
240 J=4:GOTO 300
250 CLS#1:PRINT#1,"EN QUELLE COLONNE JOUEZ-VOUS ? ";:GOSUB 1050
260 R$=INKEY$:IF R$=""OR R$<"1"OR R$>"7"THEN 260 ELSE J=VAL(R$)
270 IF A(J+90)=0 THEN 250

280 CLS#1:A=J:Z=1:GOSUB 420:IF G=1 THEN PRINT#1," BRAVO ! VOUS AVEZ GAGNE !!":GOSUB 980:SJO=SJO+1:GOTO 330
290 GOSUB 470
300 Z=0:GOSUB 420:IF G=1 THEN PRINT#1," AH AH AH !! J'AI GAGNE LA PARTIE":GOSUB 980:FOR J=1 TO 200:NEXT J:SCP=SCP+1:PRINT#1,"JE V
OUS DONNE VOTRE REVANCHE, OK ... ? ":GOTO 340
310 IF Q<>0 THEN 250
320 PRINT#1," BIEN JOUE !! NOUS SOMME A EGALITE ...":ENT 1,20,3,5:FOR J=1 TO 4:SOUND 1,50,50,10,0,1:NEXT J:FOR J=1 TO 2000:NEXT J
330 PRINT#1,"UNE AUTRE PARTIE ? "
340 R$=INKEY$:IF R$=""OR(UPPER$(R$)<>"O"AND UPPER$(R$)<>"N")THEN 340
350 MODE 1:IF UPPER$(R$)="O"THEN GOTO 130
360 GOTO 40
370 RESTORE:FOR NUL=1 TO I:K=(2*J)+2:L=(NUL*2)+(NUL-1):LOCATE K,L:IF Z=0 THEN INK 14,3:PEN 14:PRINT CHR$(252);:LOCATE K,L+1:PRINT CH
R$(253);:GOTO 390
380 INK 8,5:PEN 8:PRINT CHR$(254);:LOCATE K,L+1:PRINT CHR$(255);:GOTO 390
390 '
400 READ MUS:SOUND 1,MUS,10:FOR XY=1 TO 150:NEXT XY:IF NUL<I THEN LOCATE K,L:PRINT" ";:LOCATE K,L+1:PRINT" ";
410 NEXT NUL:RETURN

420 'CALCULS
430 I=A(J+90):GOSUB 370:A(A(J+90)*9+J)=Z:R=A(J+90):S=J:A(A(J+90)+100)=A(A(J+90)+100)-1:A(J+90)=A(J+90)-1:Q=Q-1:IF Z=0 THEN RETURN
440 '
450 M=0:O=0:N=4:GOSUB 760:IF D=0 THEN G=0:RETURN
460 G=1:RETURN

470 N=4:S=1:O=2:M=45
480 R=A(S+90):IF R=0 THEN 510
490 A(R*9+S)=0:GOSUB 760:IF D=0 THEN A(R*9+S)=-1:GOTO 510
500 J=S:G=1:RETURN
510 S=S+1:IF S<8 THEN 480
520 N=4:S=1
530 R=A(S+90):IF R=0 THEN 560
540 A(R*9+S)=1:GOSUB 760:IF D=0 THEN A(R*9+S)=-1:GOTO 560
550 J=S:G=0:RETURN
560 S=S+1:IF S<8 THEN 530
570 FOR J=111 TO 117:A(J)=0:NEXT J:N=3:S=1
580 R=A(S+90):IF R=0 THEN 600
590 A(R*9+S)=0:GOSUB 760:A(S+110)=D/E:A(R*9+S)=-1
600 S=S+1:IF S<8 THEN 580
610 N=3:S=1
620 R=A(S+90):IF R=0 THEN 640
630 A(R*9+S)=1:GOSUB 760:A(S+110)=A(S+110)+D*E:A(R*9+S)=-1
640 S=S+1:IF S<8 THEN 620
650 N=3:S=1
660 R=A(S+90):IF R<2 THEN 700
670 A(R*9+S)=0:R=R-1:A(R*9+S)=1:GOSUB 760:IF D=0 THEN 690
680 A(S+110)=-D
690 A(R*9+S)=-1:R=R+1:A(R*9+S)=-1
700 S=S+1:IF S<8 THEN 660
710 K=-50:L=0:FOR J=111 TO 117:IF A(J)>K THEN K=A(J):L=J-110
720 NEXT J:IF A(L+90)=0 THEN A(L+110)=-60:GOTO 710
730 J=INT(RND*7)+1:IF A(J+90)=0 THEN 730
740 IF A(J+110)=K THEN RETURN
750 J=L:RETURN

760 Z=A(R*9+S):IF A(S+90)>=5 THEN D=0:GOTO 810
770 I=R+1:J=S:P=1
780 IF A(I*9+J)=Z THEN P=P+1:I=I+1:GOTO 780
790 IF P<N THEN D=0:GOTO 810
800 D=1
810 IF A(R+100)>=6 THEN 880
820 I=R:V=1
830 J=V+S:P=1
840 IF A(I*9+J)=Z THEN P=P+1:J=J+V:GOTO 840
850 IF V<>-1 THEN V=-1:U=P:GOTO 830
860 P=P+U-1:IF P<N THEN 880
870 D=D+1
880 V=1:W=1
890 I=R+W:J=S+V:P=1
900 IF A(I*9+J)=Z THEN P=P+1:J=J+V:I=I+W:GOTO 900
910 IF V<>-1 THEN V=-1:W=-W:U=P:GOTO 890
920 P=P+U-1:IF P<N THEN 940
930 D=D+1
940 IF W<>1 THEN V=1:GOTO 890
950 RETURN
:'
960 '
970 MODE 2:PAPER 0:PEN 1:BORDER 0:GOTO 1080
980 '
990 '
1000 '
1010 RESTORE 1010:DATA 478,426,379,358,319,284,0,284,0,284,0,284,358,0,358,239,239,239,0,239,284,-1
1020 READ MU:IF MU=-1 THEN 1040 ELSE SOUND 1,MU,10,12:FOR I=1 TO 70:NEXT I
1030 GOTO 1020
1040 RESTORE 1010:RETURN
1050 FOR I=1 TO 20:R$=INKEY$:NEXT I:RETURN:'
1060 '
1070 '
1080 ON BREAK STOP:END




Je me lance dans la création des fonctions d'affichage sur le PC 1600
de façon à couvrir (en partie) les parties ORANGE

Affichage de la grille (au vu de la taille de l'écran une matrice de 7 par 6 en 5 points de haut avec des jeton de 3 pixel semble envisageable)

Code : Tout sélectionner

990 "-------------------
1000 "GRILLE"FOR NU=0TO 6
1010 LINE (DE+NU*5,0)-(DE+NU*5,30)
1020 LINE (DE,NU*5)-(DE+35,NU*5)
1030 NEXT NU
1040 LINE -(DE+35,0)
1050 RETURN
Gestion du curseur de selection (j'utilisarai un curseur pour selectionner la colonne et [ENTER] pour poser mon pion

Code : Tout sélectionner

1100 "SAISIE"GOSUB "CURAFFI"
1110 FE$=INKEY$ :IF ASC FE$<>8AND ASC FE$<>12AND ASC FE$<>13THEN 1110
1120 IF ASC FE$=12THEN GOSUB "CURCACH":CU=CU+1:IF CU>6LET CU=0
1130 IF ASC FE$=8THEN GOSUB "CURCACH":CU=CU-1:IF CU<0LET CU=6
1140 GOSUB "CURAFFI
1150 IF ASC FE$=13THEN RETURN
1160 GOTO 1110
1190 "------------------
1200 "CURAFFI"LINE (CU*5+DE,31)-(CU*5+DE+5,31):RETURN
1210 "CURCACH"LINE (CU*5+DE,31)-(CU*5+DE+5,31),R:RETURN
L'animation de la descente du PION

Code : Tout sélectionner

1300 "PION"
1310 GOSUB "CURCACH"
1320 CU=J-1:GOSUB "CURAFFI"
1350 FOR NU=0TO I-1
1360 GOSUB 1400+Z
1370 GOSUB 1402+Z
1380 NEXT NU
1390 RETURN
1400 LINE (DE+CU*5+1,NU*5+1)-(DE+CU*5+4,NU*5+4),,,B:RETURN
1401 LINE (DE+CU*5+1,NU*5+1)-(DE+CU*5+4,NU*5+4),,,BF:RETURN
1402 LINE (DE+CU*5+1,(NU-1)*5+1)-(DE+CU*5+4,(NU-1)*5+4),R,,B:RETURN
1403 LINE (DE+CU*5+1,(NU-1)*5+1)-(DE+CU*5+4,(NU-1)*5+4),R,,BF:RETURN
Dernière édition par charognard le 17 mars 2009 16:27, édité 3 fois.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 15:24

Ceci étant fait et testé je connecte mon 1600 sur mon Portable pour récupérer ma source

Hyperterminal sous VISTA avec USB <-> RS232

OK je fusionne avec la source AMSTRAD en agençant le programme différenment.

Retour d la source sur le 1600, débogage (léger) puis retransmission de la source sur PC pour SILICIUM

Code : Tout sélectionner

10 CLS :WAIT 0
20 DIM A(200):SP=0:SJ=0:A=0:CU=0:DE=80
30 GR=140:E=RND 3:IF E=3LET E=0.5
40 GOSUB "GRILLE"
60 Q=42:G=0:FOR J=1TO 7:A(J+90)=6:NEXT J:FOR I=1TO 6:A(I+100)=7:NEXT I
70 FOR I=1TO 6:FOR J=1TO 7:A(I*9+J)=-1:NEXT J:NEXT I:FOR I=0TO 7:A(I*9)=-2:A(I*9+8)=-2:NEXT I
80 FOR J=0TO 8:A(J)=-2:A(63+J)=-2:NEXT J
90 IF FL=0LET ZJ=RND 2-1
100 IF FL=0LET FL=1ELSE ZJ=(ZJ=1)+1
110 IF ZJ=1LET Z=1:GOTO 130ELSE IF Z=0LET Z=2
120 J=4:GOTO 180
130 GOSUB "SAISIE"
140 J=CU+1
150 IF A(J+90)=0THEN 130
160 A=J:Z=1:GOSUB "VERIF":IF G=1THEN PRINT "VOUS AVEZ GAGNE !!":END
170 GOSUB "PC"
180 Z=0:GOSUB "VERIF":IF G=1THEN PRINT "J'AI GAGNE LA PARTIE":END
310 IF Q<>0THEN 130
320 PRINT "EGALITE ...":END
990 "-------------------
1000 "GRILLE"FOR NU=0TO 6
1010 LINE (DE+NU*5,0)-(DE+NU*5,30)
1020 LINE (DE,NU*5)-(DE+35,NU*5)
1030 NEXT NU
1040 LINE -(DE+35,0)
1050 RETURN
1090 "------------------
1100 "SAISIE"GOSUB "CURAFFI"
1110 FE$=INKEY$ :IF ASC FE$<>8AND ASC FE$<>12AND ASC FE$<>13THEN 1110
1120 IF ASC FE$=12THEN GOSUB "CURCACH":CU=CU+1:IF CU>6LET CU=0
1130 IF ASC FE$=8THEN GOSUB "CURCACH":CU=CU-1:IF CU<0LET CU=6
1140 GOSUB "CURAFFI
1150 IF ASC FE$=13THEN RETURN
1160 GOTO 1110
1190 "------------------
1200 "CURAFFI"LINE (CU*5+DE,31)-(CU*5+DE+5,31):RETURN
1210 "CURCACH"LINE (CU*5+DE,31)-(CU*5+DE+5,31),R:RETURN
1290 "------------------
1300 "PION"
1310 GOSUB "CURCACH"
1320 CU=J-1:GOSUB "CURAFFI"
1350 FOR NU=0TO I-1
1360 GOSUB 1400+Z
1370 GOSUB 1402+Z
1380 NEXT NU
1390 RETURN
1400 LINE (DE+CU*5+1,NU*5+1)-(DE+CU*5+4,NU*5+4),,,B:RETURN
1401 LINE (DE+CU*5+1,NU*5+1)-(DE+CU*5+4,NU*5+4),,,BF:RETURN
1402 LINE (DE+CU*5+1,(NU-1)*5+1)-(DE+CU*5+4,(NU-1)*5+4),R,,B:RETURN
1403 LINE (DE+CU*5+1,(NU-1)*5+1)-(DE+CU*5+4,(NU-1)*5+4),R,,BF:RETURN
1490 "------------------
1500 "VERIF"I=A(J+90):GOSUB "PION":A(A(J+90)*9+J)=Z
1510 R=A(J+90):S=J:A(A(J+90)+100)=A(A(J+90)+100)-1:A(J+90)=A(J+90)-1:Q=Q-1
1520 IF Z=0THEN RETURN
1530 M=0:O=0:N=4:GOSUB "CALCUL":IF D=0LET G=0:RETURN
1540 G=1:RETURN
1590 "------------------
1600 "PC"N=4:S=1:O=2:M=45
1610 R=A(S+90):IF R=0THEN 1640
1620 A(R*9+S)=0:GOSUB "CALCUL":IF D=0LET A(R*9+S)=-1:GOTO 1640
1630 J=S:G=1:RETURN
1640 S=S+1:IF S<8THEN 1610
1650 N=4:S=1
1660 R=A(S+90):IF R=0THEN 1690
1670 A(R*9+S)=1:GOSUB "CALCUL":IF D=0LET A(R*9+S)=-1:GOTO 1690
1680 J=S:G=0:RETURN
1690 S=S+1:IF S<8THEN 1660
1700 FOR J=111TO 117:A(J)=0:NEXT J:N=3:S=1
1710 R=A(S+90):IF R=0THEN 1730
1720 A(R*9+S)=0:GOSUB "CALCUL":A(S+110)=D/E:A(R*9+S)=-1
1730 S=S+1:IF S<8THEN 1710
1740 N=3:S=1
1750 R=A(S+90):IF R=0THEN 1770
1760 A(R*9+S)=1:GOSUB "CALCUL":A(S+110)=A(S+110)+D*E:A(R*9+S)=-1
1770 S=S+1:IF S<8THEN 1750
1780 N=3:S=1
1790 R=A(S+90):IF R<2THEN 1840
1800 A(R*9+S)=0:R=R-1:A(R*9+S)=1:GOSUB "CALCUL":IF D=0THEN 1830
1810 A(S+110)=-D
1830 A(R*9+S)=-1:R=R+1:A(R*9+S)=-1
1840 S=S+1:IF S<8THEN 1790
1850 K=-50:L=0:FOR J=111TO 117:IF A(J)>KLET K=A(J):L=J-110
1860 NEXT J:IF A(L+90)=0LET A(L+110)=-60:GOTO 1850
1870 J=RND 7:IF A(J+90)=0THEN 1870
1880 IF A(J+110)=KTHEN RETURN
1890 J=L:RETURN
1990 "------------------
2000 "CALCUL"Z=A(R*9+S):IF A(S+90)>=5LET D=0:GOTO 2050
2010 I=R+1:J=S:P=1
2020 IF A(I*9+J)=ZLET P=P+1:I=I+1:GOTO 2020
2030 IF P<NLET D=0:GOTO 2050
2040 D=1
2050 IF A(R+100)>=6THEN 2120
2060 I=R:V=1
2070 J=V+S:P=1
2080 IF A(I*9+J)=ZLET P=P+1:J=J+V:GOTO 2080
2090 IF V<>-1LET V=-1:U=P:GOTO 2070
2100 P=P+U-1:IF P<NTHEN 2120
2110 D=D+1
2120 V=1:W=1
2130 I=R+W:J=S+V:P=1
2140 IF A(I*9+J)=ZLET P=P+1:J=J+V:I=I+W:GOTO 2140
2150 IF V<>-1LET V=-1:W=-W:U=P:GOTO 2130
2160 P=P+U-1:IF P<NTHEN 2180
2170 D=D+1
2180 IF W<>1LET V=1:GOTO 2130
2190 RETURN
Dernière édition par charognard le 23 mars 2009 13:22, édité 1 fois.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 15:30

ça marche par mal, le PC 1600 n'est pas trop lent mais il faut bien 15 à 20 secondes entre les coups je n'ose imaginer sur 1360 (ou sur CASIO :wink: )

le programme utilisé est plutot assez fort et je remercie son auteur, hebdogiciel et le site http://www.hebdogiciel.fr/ pour la mise à dispo de ce programme.

pour l'instant l'écran n'a que la grille et est totalement jouable reste à faire quelques graphisme et à ajouter quelques fonctions pour parfaire la chose

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 15:41

une photo pas terrible il est vrai on ne voie pas non plus l'animation des jetons (NOIR et BLANC) mais ça donne une idée
Image

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 15:45

Prochaine étape migration sur X07 pour voir la rapidité (à la paluche car pas de RS 232 :cry: ) à moins qu'un TXT2WAV existe ???!!!

ensuite suivant demande ajout de possibilités dans le programme mais là il y a moins d'interet.

Ah oui j'aurais bien fait une adaptation sur CASIO mais sur la 7000G (la seule que j'ai) je n'ai pas assez de mémoire et elle risque d'êtr très très lente. En plus les écrans en 1 seule matrice ça ne court pas les rues

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Message par Thierry Loiseau » 17 mars 2009 15:53

Ouf ! Je ne connais pas ce jeu :(
Peux-tu en donner le principe ?
...
Principe qui pourrait nous donner envie de le faire, ce jeu !

;)
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 15:55

WIKI EST TON AMI
ICI

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Message par Thierry Loiseau » 17 mars 2009 16:37

charognard a écrit : http://www.hebdogiciel.fr/ pour la mise à dispo de ce programme.
Pfff... Il n'y a pas mon listing de mon Jack-Pot fait avec un Casio FX-702P !
C'est toi l'administrateur du site, donc :(
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Inscription : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Message par Marcus von Cube » 17 mars 2009 18:02

charognard a écrit :Prochaine étape migration sur X07 pour voir la rapidité (à la paluche car pas de RS 232 :cry: ) à moins qu'un TXT2WAV existe ???!!
Un câble X-07/USB est vite fait à laide de câble TTL-232R-5.0V de FTDI. Vois mon post ici. J'ai modifié mon post pour inclusion du câblage.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 18:50

j'ai pas le cable, et puis la frappe de 2 ou 3Ko ne me rebute pas
merci marcus

je mettrais l'adaptation en WAV ICI pour le CANON

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 22:07

une petite video
LA

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Message par Thierry Loiseau » 17 mars 2009 22:14

charognard a écrit :ça marche par mal, le PC 1600 n'est pas trop lent mais il faut bien 15 à 20 secondes entre les coups je n'ose imaginer sur 1360 (ou sur CASIO :wink: )
Hum, ça doit pouvoir être OPtimisé, non ?

:arrow:
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 mars 2009 22:19

Thierry Loiseau a écrit :
charognard a écrit :ça marche par mal, le PC 1600 n'est pas trop lent mais il faut bien 15 à 20 secondes entre les coups je n'ose imaginer sur 1360 (ou sur CASIO :wink: )
Hum, ça doit pouvoir être OPtimisé, non ?

:arrow:
vas y te prive pas !!!

sur le X07 avec ses variables entieres à mon avis faut s'attendre à une belle perf

Avatar de l’utilisateur
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4571
Inscription : 09 août 2008 17:46
Localisation : 03

Message par Ythunder » 17 mars 2009 22:28

sympa la petite conversion
Quand j'aurai le temps (...), c'est que je voulais faire avec des prg en basic sur mes thomson. les reprendre, en essayant d'améliorer u peu niveau graphes. Ce n'est plus une conversion ensuite, je l'admet
On cherche a vendre la voiture neuve de mon père décédé en janvier, une KONA Hyundai diesel à boite automatique, sans doute - de 10000 kms. Superbe état. On cherche à payer le LOA en cours, donc si qq est intéressé me faire signe. Vuus pouvez acheter les yeux fermé, 0 défauts.

Je suis CHARLIE
Tell me boy, do you have a room, in your heart, for the Computer boom...

Répondre

Revenir vers « Tous les Pockets »