Sinksub by grboss sous turbo c++

Contenu du snippet

Coulez les sous-marin avec votre bateau.

Source / Exemple :


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

void bateau();
void sub();
void tir();
void gauche();
void droite();
void dessine();
void ennemi();
void tirennemi();

void touche();
void detect();

int touch='6';
int a=110;
int position;
int dr=1;
int ga=0;
int t=0;
int b=75;
int ex=150;
int positionen;
int u=0;
int c=140;
int al;
int g=20;
int niveau=1;
int test=20;
int vie=3;

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

void setmode(unsigned int mode)
{
asm {
MOV AX, [mode]
INT 0x10
}}

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

void main()
{
setmode(0x10);
dessine();
}

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=='4') gauche();
if(touch=='6') droite();
if(touch=='5') tir();
if (touch=='0') break;
}}

void dessine()
{
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);}
for(int b5=100;b5<220;b5++) {pixel(b5,65,3,ecran);}

ennemi();
}

void bateau()
{
pixel(a,64,5,ecran);
pixel(a+1,64,5,ecran);
pixel(a+2,64,5,ecran);
pixel(a+3,64,5,ecran);
pixel(a+4,64,5,ecran);
pixel(a+5,64,5,ecran);
pixel(a+6,64,5,ecran);
pixel(a+7,64,5,ecran);
pixel(a+8,64,5,ecran);
pixel(a+9,63,5,ecran);
pixel(a+10,62,5,ecran);
pixel(a+11,61,5,ecran);
pixel(a-1,63,5,ecran);
pixel(a-2,62,5,ecran);
pixel(a-3,61,5,ecran);
for (int b6=a-2;b6<a+11;b6++) {pixel(b6,61,5,ecran);}
pixel(a+8,60,5,ecran);
pixel(a+8,59,5,ecran);
pixel(a+4,60,5,ecran);
pixel(a+4,59,5,ecran);
pixel(a+6,59,5,ecran);
pixel(a+6,58,5,ecran);
pixel(a+5,59,5,ecran);
pixel(a+7,59,5,ecran);

if (t == 1)
{
delay(60);
pixel(position,b,7,ecran);
pixel(position,b+1,7,ecran);
pixel(position+1,b,7,ecran);
pixel(position+1,b+1,7,ecran);

pixel(position,b-4,0,ecran);
pixel(position,b-3,0,ecran);
pixel(position+1,b-4,0,ecran);
pixel(position+1,b-3,0,ecran);

if (b > 142 && ga == 1 && dr ==0)
{
pixel(position,143,0,ecran);
pixel(position+1,143,0,ecran);
pixel(position,144,0,ecran);
pixel(position+1,144,0,ecran);

t=0;
b=75;
gauche();

}

if (b > 142 && ga == 0 && dr == 1)
{
pixel(position,143,0,ecran);
pixel(position+1,143,0,ecran);
pixel(position,144,0,ecran);
pixel(position+1,144,0,ecran);
t=0;
b=75;
droite();
}

if (position > ex && position < ex+7 && b > 137)
{
text();
g=g-5;

if (g == 5)
{
cout<<"Bravo ! vous avez gagner la guerre !";
getch();
exit(1);
}

niveau++;
VGA();
cout<<"Niveau :"<<niveau;
getch();

touch='6';
a=110;

dr=1;
ga=0;
t=0;
b=75;
ex=150;
test=20;
u=0;
c=140;

VGA();
dessine();
}

}

if (u == 1)
{

pixel(positionen,c,9,ecran);
pixel(positionen,c+4,0,ecran);

if (positionen > a-3 && positionen < a+11 && c < 63)
{
vie--;

if (vie == 0)
{

text();
cout<<"coule !";
getch();
exit(1);
}
}

if (c < 63 && ga == 0 && dr == 1)
{
pixel(positionen,c,0,ecran);
c=140;
u=0;
droite();

}

if (c < 63 && ga == 1 && dr == 0)
{
pixel(positionen,c,0,ecran);
c=140;
u=0;
gauche();

}

detect();
}

detect();

}

void tir()
{
t=1;

position=a+4;

if (ga == 1 && dr == 0)
{
touch='4';
}

if (ga == 0 && dr == 1)
{
touch='6';
}

dessine();

}

void droite()
{
delay(40);
dr=1;
ga=0;
pixel(a,64,0,ecran);
pixel(a+1,64,0,ecran);
pixel(a+2,64,0,ecran);
pixel(a+3,64,0,ecran);
pixel(a+4,64,0,ecran);
pixel(a+5,64,0,ecran);
pixel(a+6,64,0,ecran);
pixel(a+7,64,0,ecran);
pixel(a+8,64,0,ecran);
pixel(a+9,63,0,ecran);
pixel(a+10,62,0,ecran);
pixel(a+11,61,0,ecran);
pixel(a-1,63,0,ecran);
pixel(a-2,62,0,ecran);
pixel(a-3,61,0,ecran);
for (int b6=a-2;b6<a+11;b6++) {pixel(b6,61,0,ecran);}
pixel(a+8,60,0,ecran);
pixel(a+8,59,0,ecran);
pixel(a+4,60,0,ecran);
pixel(a+4,59,0,ecran);
pixel(a+6,59,0,ecran);
pixel(a+6,58,0,ecran);
pixel(a+5,59,0,ecran);
pixel(a+7,59,0,ecran);

if (a > 208)
{
a=208;
dessine();
}

a++;

if (t == 1)
{
b=b+4;
dessine();
}

if (u == 1)
{
test++;
c=c-4;
dessine();
}

dessine();

}

void gauche()
{
delay(40);
dr=0;
ga=1;
pixel(a,64,0,ecran);
pixel(a+1,64,0,ecran);
pixel(a+2,64,0,ecran);
pixel(a+3,64,0,ecran);
pixel(a+4,64,0,ecran);
pixel(a+5,64,0,ecran);
pixel(a+6,64,0,ecran);
pixel(a+7,64,0,ecran);
pixel(a+8,64,0,ecran);
pixel(a+9,63,0,ecran);
pixel(a+10,62,0,ecran);
pixel(a+11,61,0,ecran);
pixel(a-1,63,0,ecran);
pixel(a-2,62,0,ecran);
pixel(a-3,61,0,ecran);
for (int b6=a-2;b6<a+11;b6++) {pixel(b6,61,0,ecran);}
pixel(a+8,60,0,ecran);
pixel(a+8,59,0,ecran);
pixel(a+4,60,0,ecran);
pixel(a+4,59,0,ecran);
pixel(a+6,59,0,ecran);
pixel(a+6,58,0,ecran);
pixel(a+5,59,0,ecran);
pixel(a+7,59,0,ecran);

if (a < 104)
{
a=104;
dessine();
}

a--;

if (t == 1)
{
b=b+4;
}

if (u == 1)
{
test++;
c=c-4;
dessine();
}

dessine();
}

void ennemi()
{
al=random(g)+1;

pixel(ex,143,8,ecran);
pixel(ex+1,143,8,ecran);
pixel(ex+2,143,8,ecran);
pixel(ex+3,143,8,ecran);
pixel(ex+4,143,8,ecran);
pixel(ex+5,143,8,ecran);
pixel(ex+6,143,8,ecran);
pixel(ex,142,8,ecran);
pixel(ex+1,142,8,ecran);
pixel(ex+2,142,8,ecran);
pixel(ex+3,142,8,ecran);
pixel(ex+4,142,8,ecran);
pixel(ex+5,142,8,ecran);
pixel(ex+6,142,8,ecran);

if (ex > 212)
{
pixel(ex,143,0,ecran);
pixel(ex+1,143,0,ecran);
pixel(ex+2,143,0,ecran);
pixel(ex+3,143,0,ecran);
pixel(ex+4,143,0,ecran);
pixel(ex+5,143,0,ecran);
pixel(ex+6,143,0,ecran);
pixel(ex,142,0,ecran);
pixel(ex+1,142,0,ecran);
pixel(ex+2,142,0,ecran);
pixel(ex+3,142,0,ecran);
pixel(ex+4,142,0,ecran);
pixel(ex+5,142,0,ecran);
pixel(ex+6,142,0,ecran);
ex=106;

bateau();
}

ex++;
pixel(ex-1,143,0,ecran);
pixel(ex-2,143,0,ecran);
pixel(ex-3,143,0,ecran);
pixel(ex-4,143,0,ecran);
pixel(ex-5,143,0,ecran);
pixel(ex-6,143,0,ecran);
pixel(ex-7,143,0,ecran);
pixel(ex-1,142,0,ecran);
pixel(ex-2,142,0,ecran);
pixel(ex-3,142,0,ecran);
pixel(ex-4,142,0,ecran);
pixel(ex-5,142,0,ecran);
pixel(ex-6,142,0,ecran);
pixel(ex-7,142,0,ecran);

if (al == 2 && test > 19)
{
test=0;
tirennemi();
}

bateau();
}

void tirennemi()
{
u=1;
positionen=ex+3;
bateau();

}

Conclusion :


Compilez de préf. avec Turbo C++ 3.0 en Mode Large.
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.