Lander by grboss sous turbo c++

Contenu du snippet

Voila, faites aterrir votre vaisseau dans la zone prévue en utilisant le moins d'énergie posssible.

Source / Exemple :


//*************Lander by grboss*****************
//**********Compilé avec Turbo C++ 3.0**********
//************Edité avec Dev C++ 4**************
//*********A compiler en Mode LARGE*************

#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <iostream.h>

void graphique();
void engin();
void touche();
void detect();
void gauche();
void droite();
void VGA();
void text();
void comete();
void haut();

char *ecran  = (char *) (0xA0000000L);
char *virtuel = new unsigned char[64000L];

void pixel(unsigned x, unsigned y, unsigned char couleur, unsigned char * endroit)
{
endroit[320*y+x]=couleur;
}

int niveau=1;
int touch='6';
int couleur;
int x;
int y;
int d;
int a=160;
int b=55;
int ga;
int dr;
int force=100;
int al=random(80)+116;
int taille=random(10)+15;
int r=210;

void text()
{
_AX = 0x03;
geninterrupt(0x10);
}

void VGA()
{
_AX = 0x13;
geninterrupt(0x10);
}

void detect()
{
if (kbhit())
{
touch=toupper(getch());
}
touche();
}

void touche()
{
while (touch!=27){
if(touch=='6') gauche();
if(touch=='4') droite();
if(touch=='5') haut();
if (touch=='0') break;
}}

void main()
{
text();
cout<<"Votre vaisseau doit aterrir.\nIl ne vous reste plus beaucoup d'energie pour le controler.\nVisez juste entre les balises.\nVotre energie est symbolisee par la barre bleue en haut.\nles touches sont 456 (droite haut gauche).\nAppuyez sur une touche pour commencer...";
getch();

VGA();

printf("\t    LANDER BY Grboss");
for (int b12=110;b12<211;b12++) {pixel(b12,31,1,ecran);}
graphique();
}

void droite()
{
delay(60);
dr=1;
ga=0;

pixel(a,b,0,ecran);
pixel(a+1,b,0,ecran);
pixel(a+2,b,0,ecran);
pixel(a+3,b,0,ecran);
pixel(a+4,b,0,ecran);
pixel(a+5,b,0,ecran);
pixel(a+6,b,0,ecran);
pixel(a,b-1,0,ecran);
pixel(a+6,b-1,0,ecran);
pixel(a+1,b-2,0,ecran);
pixel(a+5,b-2,0,ecran);
pixel(a+3,b-1,0,ecran);
pixel(a+3,b-2,0,ecran);
pixel(a+3,b-3,0,ecran);
pixel(a+3,b-4,0,ecran);

a=a+4;
b=b+(300/a);

graphique();
}

void gauche()
{

delay(60);
ga=1;
dr=0;

pixel(a,b,0,ecran);
pixel(a+1,b,0,ecran);
pixel(a+2,b,0,ecran);
pixel(a+3,b,0,ecran);
pixel(a+4,b,0,ecran);
pixel(a+5,b,0,ecran);
pixel(a+6,b,0,ecran);
pixel(a,b-1,0,ecran);
pixel(a+6,b-1,0,ecran);
pixel(a+1,b-2,0,ecran);
pixel(a+5,b-2,0,ecran);
pixel(a+3,b-1,0,ecran);
pixel(a+3,b-2,0,ecran);
pixel(a+3,b-3,0,ecran);
pixel(a+3,b-4,0,ecran);

a=a-4;
b=b+(300/a);

graphique();
}

void haut()
{

delay(25);

force--;
r--;
pixel(r,31,0,ecran);

pixel(a,b,0,ecran);
pixel(a+1,b,0,ecran);
pixel(a+2,b,0,ecran);
pixel(a+3,b,0,ecran);
pixel(a+4,b,0,ecran);
pixel(a+5,b,0,ecran);
pixel(a+6,b,0,ecran);
pixel(a,b-1,0,ecran);
pixel(a+6,b-1,0,ecran);
pixel(a+1,b-2,0,ecran);
pixel(a+5,b-2,0,ecran);
pixel(a+3,b-1,0,ecran);
pixel(a+3,b-2,0,ecran);
pixel(a+3,b-3,0,ecran);
pixel(a+3,b-4,0,ecran);

if (ga == 1 && dr == 0 && force > 0)
{
delay(30);
b=b-(a/75)^(1/2);
a--;

}

if (dr == 1 && ga == 0 && force > 0)
{
delay(30);
b=b-(a/75)^(1/2);
a++;

}

if (force < 1)
{
b=b+(a/75)^(1/2);
graphique();
}

graphique();
}

void graphique()
{

for (int b10=110;b10<211;b10++) {pixel(b10,30,1,ecran);}
for (int b11=110;b11<211;b11++) {pixel(b11,32,1,ecran);}

for(int b1=100;b1<220;b1++) {pixel(b1,50,3,ecran);}
for(int b2=100;b2<220;b2++) {pixel(b2,150,3,ecran);}
for(int b3=50;b3<150;b3++) {pixel(100,b3,3,ecran);}
for(int b4=50;b4<150;b4++) {pixel(220,b4,3,ecran);}
pixel(al,134,3,ecran);
pixel(al,133,3,ecran);
pixel(al+taille,134,3,ecran);
pixel(al+taille,133,3,ecran);
for(int b5=100,b6=150;b5<111,b6>135;b5++,b6--) {pixel(b5,b6,3,ecran);}
for(int b7=220,b8=150;b7<209,b8>135;b7--,b8--) {pixel(b7,b8,3,ecran);}
for(int b9=115;b9<205;b9++) {pixel(b9,135,3,ecran);}

engin();
}

void engin()
{

pixel(a,b,7,ecran);
pixel(a+1,b,7,ecran);
pixel(a+2,b,7,ecran);
pixel(a+3,b,7,ecran);
pixel(a+4,b,7,ecran);
pixel(a+5,b,7,ecran);
pixel(a+6,b,7,ecran);
pixel(a,b-1,7,ecran);
pixel(a+6,b-1,7,ecran);
pixel(a+1,b-2,7,ecran);
pixel(a+5,b-2,7,ecran);
pixel(a+3,b-1,7,ecran);
pixel(a+3,b-2,7,ecran);
pixel(a+3,b-3,7,ecran);
pixel(a+3,b-4,7,ecran);

if (a > al && a+4 < al+taille && b > 134)
{
niveau++;
text();
cout<<"Niveau"<<" "<<niveau;
getch();

al=random(80)+116;
taille=random(10)+15;
a=160;
b=55;

ga=1;
dr=0;
VGA();
printf("\t       LANDER BY Grboss");
for (int b12=110;b12<r;b12++) {pixel(b12,31,1,ecran);}

graphique();
}

if (b > 134 & a < al)
{
text();
cout<<"perdu\n";
cout<<"score : "<<(niveau*100)-(100-force);
exit(1);
}

if (b > 134 & a+4 > al+taille)
{
text();
cout<<"perdu\n";
cout<<"score : "<<(niveau*100)-(100-force);
getch();
exit(1);
}

if (a < 101)
{
text();
cout<<"perdu\n";
cout<<"score : "<<(niveau*100)-(100-force);
getch();
exit(1);
}

if (a > 214)
{
text();
cout<<"perdu\n";
cout<<"score : "<<(niveau*100)-(100-force);
getch();
exit(1);
}

if (b <53)
{
text();
cout<<"perdu\n";
cout<<"score : "<<(niveau*100)-(100-force);
getch();
exit(1);
}

detect();
}

Conclusion :


Compilez de pref. avec Turbo C++ 3.0 en mode LARGE
Je rajouterai des commentaires plus tard....
d'autres sources sur http://www.partnc.fr.st

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.