5/9.1 Définition de caractères multiplesGrâce à ce programme, vous pourrez définir des caractères graphiques dans une grille de 6 x 10 caractères, soit 48 x 80 pixels. Ce programme utilise les concepts manipulés par le précédent, et, en particulier les mêmes commandes. 1000 ' ======================================= 1010 ' Redéfinition de caractères multiples 1020 '======================================== 1030 ' 1040 '------------------- 1050 'Initialisation 1060 '---------------- 1070 MODE 1 1080 DIM T(48,80) 1090 X=1:Y=1 'Position de départ 1100 '------------------------------ 1110 'Gestion du curseur graphique 1120 '------------------------------ 1130 LOCATE INT((X - l)/2)+1,INT <(Y-1)/2)+1 1140 L$=INKEY$: IF L$="" THEN 1140 1150 L=ASC(L$) 1160 IF UPPER$(L$) = "P" THEN T ( Y , X ) = 1 : CP= 1 : GOSUB 2000: PRINT CHR$(CA) 'Plein 1170 IF L$="V" THEN T ( Y , X ) =0: CP=0: GOSUB 2000: PRINT CHR$(CA) 'Vide 1180 IF L=243 AND X1190 IF L=242 AND X>1 THEN X=X-1 1200 IF L=241 AND Y1210 IF L=240 AND Y>1 THEN Y=Y-1 1220 IF L< >243 AND L< >242 AND L < >241 AND L < >240 AND L < >80 AND L< >86 AND LOI 12 AND L < > 118 AND L < > 13 THEN PRINT CHR$(7) 'Action refusee 1230 IF L < >13 THEN 1130 'Boucle principale 1240 '------------------------ 1250 'Affichage des résultats 1260 '----------------------- 1270 CLS 1280 PRINT"1) Sur écran" 1290 PRINT"2) Sur imprimante" 1300 PRINT:INPUT "Votre choix";R 1310 IF ROI AND R<>2 THEN 1300 1320 IF R=1 THEN C=1 ELSE C=8 1330 MODE 2 1340 FOR I=1 FO 6 1350 FOR J=1 TO 10 1360 PRINT#C:PRINT#C,"Ligne"I"Colonne"J":"; 1370 FOR K=1 TO 8 1380 A=0 1390 FOR L=1 TO 8 1400 A=A+(2^(8—L))*T(K+(I-1)*8,L+(J-1)*8) 1410 NEXT L 1420 PRINT #C,A; 1430 NEXT K 1440 NEXT J 1450 NEXT I 1460 '2000' 2010 'Zone des sous-programmes 2030 ' 2040 '----------------------------------------- 2050 'Carre plein ou Carre vide (CP=1 OU CP=0) 2060 '----------------------------------------- 2070 S=0 2080 IF INT ( X/2) < >X/2 AND INT <Y/2) < > Y/2 THEN GOSUB 2140 2090 IF INT(X/2) = X/2 AND INT (Y/2) < > Y/2 THEN GOSUB 2220 2100 IF INT(X/2)< >X/2 AND INT (Y/2)=Y/2 THEN GOSUB 2300 2110 IF INT(X/2)=X/2 AND INT (Y/2)=Y/2 THEN GOSUB 2380 2120 CA= 128+S 'Caractere a afficher 2130 RETURN 2140 '----------------------------------------- 2150 'Caractere en haut et a gauche 2160 '----------------------------------------- 2170 IF CP=1 THEN S=S+1 2180 IF T(Y,X + 1)=1 THEN S=S+2 2190 IF T(Y+1,X)=1 THEN S=S+4 2200 IF T(Y+1,X+1)=1 THEN S=S+8 2210 RETURN 2220 ------------------------------------------ 2230 'Caractere en haut et a droite 2240 '----------------------------------------- 2250 IF CP=1 THEN S=S+2 2260 IF T(Y,X—1)=1 THEN S=S+1 2270 IF T(Y+1,X—1)=1 THEN S=+4 2280 IF T(Y+1,X)=1 THEN S=S+8 2290 RETURN 2300 ------------------------------------------ 2310 'Caractere en bas et a gauche 2320 '----------------------------------------- 2330 IF CP=1 THEN S=S+4 2340 IF T(Y-1,X)=1 THEN S=S+1 2350 IF T(Y-1,X+1)=1 THEN S=S+2 2360 IF T(Y,X+1)=1 THEN S=S+8 2370 RETURN 2380 '----------------------------------------- 2390 'Caractere en bas et a droite 2400 '----------------------------------------- 2410 IF CP=1 THEN S=S+8 2420 IF T(Y-1,X-1)=1 THEN S=S+1 2430 IF T(Y-1,X)=1 THEN S=S+2 2440 IF T(Y,X—1)=1 THEN S-S+4 2450 RETURN Lignes 1000 à 1090 : Lignes 1100 à 1230 : - Gestion du curseur graphique (affichage ou effacement d'un pixel sur l'écran)
Lignes 1240 à 1460 : - Affichage des données à programmer par SYMBOL sur écran ou imprimante
Lignes 2000 à 2450 : - Zone des sous-programmes.
- Calcul du motif à afficher en fonction de la position du point courant et du contexte précédent.
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 416 millisecondes et consultée 823 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|