Ne programmant en C que depuis 1 semaine date à laquele j'ai eu mon PC je vous demande d'etre indulgeant.
depuis le temps que je voulais m'y mettre !
le programme est tout a fait jouable mais ne demande qu'a etre amelioré
alors pour utilisé le programme
aller en mode basic
frapper MON
puis
user 0400
on charge ensuite ces 2 programmes
keyasm.h
Code : Tout sélectionner
10 void keyasm(unsigned short adr)
20 {
30 poke(adr++,205);
40 poke(adr++,83);
50 poke(adr++,190);
60 poke(adr++,111);
70 poke(adr++,38);
80 poke(adr++,0);
90 poke(adr++,201);
100 }brick.c
Code : Tout sélectionner
1 /*****casse-brique******/
2 /****adaptation en C****/
3 /****sur SHARP G850V****/
5 /****par charognard*****/
10 #define m 65535
15 #define vit 250
20 #include"keyasm.h"
30 void vie(int nbr)
40 {
50 int b;
60 gcursor(2,18);
70 for(b=1;b<=nbr;b++) {
80 gprint("0207070707070200");
90 }
100 gprint("0000000000000000");
110 }
120 main()
130 {
140 int vi=5,sc=0,x=96,y=10,ox=x,oy=y,rx=3,ry=2,bx=x,obx=x,b;
150 int inkey=0x300;
160 keyasm(inkey);
170 printf("Score:1");
180 line(59,0,59,30,0,m,0);
190 line(135,0,135,30,0,m,0);
200 line(60,0,134,3,0,m,2);
210 line(60,6,134,9,0,m,2);
220 vie(vi);
230 do
240 {
250 line(bx,30,bx+8,30,0,m,0);
255 for(b=1;b<vit;++b){}
260 x+=rx;y+=ry;
270 if(x<60|x>132)
280 {
290 beep(10,10,1);
300 rx=-rx;x+=2*rx;
310 }
320 if(y>=30)
330 {
340 if(bx<=ox&&ox<bx+9)
350 {
360 beep(10,20,1);
370 ry=-ry;y=oy+ry;
380 } else {
390 if(ox+rx==bx||x-rx==bx+9)
400 {
410 beep(10,20,1);
420 ry=-ry;rx=-rx;y=oy+ry;x=ox+rx;
430 } else {
440 line(ox,oy,ox+2,oy+1,1,m,1);
441 line(x,y,x+2,y+1,0,m,1);
442 vi=vi-1;
443 vie(vi);
444 for(b=1;b<256;b+=3)
445 {
446 beep(2,b,1);
447 }
448 line(x,y,x+2,y+1,1,m,1);
449 line(bx,30,bx+8,30,1,m,0);
450 x=96;y=10;ox=x;oy=y;rx=3;ry=2;bx=x;obx=x;
455 }
460 }
465 } else {
470 if(y==-2)
480 {
490 beep(10,20,1);
500 ry=-ry;y=oy+ry;
510 }
520 if (point(x,y))
530 {
540 beep(10,10,1);
550 sc+=5;
560 gotoxy(6,0);printf("%d",sc);
570 line(x,y,x+2,y+1,1,m,1);
580 y-=ry;ry=-ry;
590 }
595 b=call(inkey,0);
596 bx=bx+6*(b==34)*(bx<123)-6*(b==33)*(bx>63);
597 line(obx,30,obx+8,30,1,m,0);
598 line(bx,30,bx+8,30,0,m,0);
599 obx=bx;
600 line(x,y,x+2,y+1,0,m,1);
610 line(ox,oy,ox+2,oy+1,1,m,1);
620 ox=x;oy=y;
625 }
630 }
640 while(vi>0);
650 }
remarquez :
- La variable vit permettant de regler la vitesse, pour info en basic cette boucle est inutile (ligne15)
- La gestion du son pour peut d'avoir un piezo interne oule boitier USB de ralf (ligne 290...)
- Fonction inkey en assembleur car en C sur sharp il ni a pas !! (ligne 595)
à noter ce programme est une adaptation d'un programme basic trouvé sur un site pour SHARP E500








