Killcow.cpp

Description

ce code ne peut etre compilé qu'avec djgpp
les sources "graphG.cpp","bmp.cpp","gui.cpp"et "souris.cpp" sont ds le zip fournis avec

Source / Exemple :


#include <stdlib.h>
#include "gui.cpp"
#include <unistd.h>
#include "souris.cpp"
#include "graphG.cpp"
#include <time.h>

#define nbrPoint 100

int nbrPointVar=10;
int score=0;
int IncrScore =100;
int Bonus=0;

struct direction
{

 int dirX;
 int dirY;
};

struct point
{
 int startX;
 int startY;
 direction dir;
 char couleur;
 int vitesse;
 direction sens;
 int attendre;
 int tue;
 char *nom;
 int arrete;

};

point table[nbrPoint];
__dpmi_regs curseur;

void InitTable(int g);
void RemplirTable(int g);
void InitTableT();
void RemplirTableT();
void direction();

void InitTable(int g)
{
  table[g].startX=0;
  table[g].startY=0;
  table[g].dir.dirX=1;
  table[g].dir.dirY=1;
  table[g].couleur=0;
  table[g].vitesse=0;
  table[g].attendre=0;
  table[g].tue=0;
  table[g].arrete=0;
  if(Bonus==0)table[g].nom="vache2.bmp";
  if(Bonus==1)table[g].nom="meme.bmp";
}

void RemplirTable(int g)
{
 table[g].startX=random()%319;
 table[g].startY=random()%199;
 table[g].dir.dirX=(random()%5)+1;
 table[g].dir.dirY=(random()%5)+1;
 table[g].couleur=(random()%255)+1;
 table[g].vitesse=(random()%3)+2;
 table[g].sens.dirX=(random()%2);
 table[g].sens.dirY=(random()%2);
 table[g].attendre=0;
 table[g].tue=0;
 table[g].arrete=0;
 if(Bonus==0)table[g].nom="vache2.bmp";
 if(Bonus==1)table[g].nom="meme.bmp";
}

void InitTableT()
{
 for(int i=0;i<nbrPoint;i++)
  {
   InitTable(i);
  }
}

void RemplirTableT()
{
 for(int i=0;i<nbrPoint;i++)
  {
   RemplirTable(i);
  }
}

void main()
{
 int keyc,choix;
 ScreenClear();
 graphicG();
 InitMouse(304,186,curseur);

 loadbmp("PresenteVache.bmp",320,200,buffer_virtuel);
 LigneG(0,0,320,0,0,VIRTUEL);
 memcpy(video_buffer,buffer_virtuel,64000L);

 sleep(3);

 loadbmpT("killc.bmp",320,200,buffer_virtuel);
 LigneG(0,0,320,0,0,VIRTUEL);
 memcpy(video_buffer,buffer_virtuel,64000L);

 toucheKey(13);

 InitTableT();
 RemplirTableT();
 int g=0,x=0,y=0;
 int sensPMX=1,sensPMY=1;
 int sensT;
 int interupt=1;
 int ransens=0;
 int colorR=0,colorV=0,colorB=0;
 int test=0;
 int temps=0,tps;
 int affMB=0;

 loadbmp("champ.bmp",320,200,buffer_virtuel);
 BoxG(0,0,120,5,15,1,VIRTUEL);
 loadsprite("feurouge.bmp",0,6,buffer_virtuel);
 memcpy(video_buffer,buffer_virtuel,64000L);
 toucheKey(13);

do
 {
   temps=clock()/CLOCKS_PER_SEC;
   tps=60-temps;
   loadbmp("champ.bmp",320,200,buffer_virtuel);

   if(Bonus==1&&affMB<20)loadbmpT("bonus.bmp",320,200,buffer_virtuel);

   if(Bonus==1)
    {
     nbrPointVar=10;
     affMB++;
    }

   for(int i=0;i<nbrPointVar;i++)
   {

    if(interupt==1)
     {
      switch(table[i].sens.dirX)
       {
        case 0:sensPMX=-1;break;
        case 1:sensPMX=1;break;
       }
      switch(table[i].sens.dirY)
       {
       case 0:sensPMY=-1;break;
       case 1:sensPMY=1;break;
       }
     }

    if(table[i].startX<0)  {InitTable(i);RemplirTable(i);};
    if(table[i].startX>320){InitTable(i);RemplirTable(i);};
    if(table[i].startY<0)  {InitTable(i);RemplirTable(i);};
    if(table[i].startY>200){InitTable(i);RemplirTable(i);};

    if(table[i].tue==0)
     {
      table[i].startX+=(table[i].dir.dirX*sensPMX);
      table[i].startY+=(table[i].dir.dirY*sensPMY);
     }

    if(Bonus==1 && table[i].tue==0)table[i].nom="meme.bmp";

    loadsprite2(table[i].nom,table[i].startX,table[i].startY,buffer_virtuel);
    test=SourisTest(table[i].startX,table[i].startX+32,table[i].startY,table[i].startY+32,curseur,1,16);

    if(test==1)
     {
      table[i].tue=1;
      score=score+IncrScore;
     }

    if(table[i].tue==1)
     {
      table[i].attendre++;
      if(Bonus==0)table[i].nom="vachetue.bmp";
      if(Bonus==1)table[i].nom="censur.bmp";
     }

    if(table[i].attendre>20)
     {
      RemplirTable(i);
     }
    curseur=LireSouris(curseur,"viseur.bmp",buffer_virtuel);

  }

  wait();
  BoxG(0,0,tps*2,5,15,1,VIRTUEL);
  loadsprite("feuvert.bmp",0,6,buffer_virtuel);
  memcpy(video_buffer,buffer_virtuel,64000);

   if(tps<15 && score <25000)
   {
    IncrScore=200;
    Bonus=1;
   }
}
while(tps!=0);

loadbmp("fin.bmp",320,200,buffer_virtuel);
memcpy(video_buffer,buffer_virtuel,64000L);
toucheKey(13);
Revenir();
gotoxy(1,1);
printf("ton score   :  %d",score);
toucheKey(13);
}

Conclusion :


pour jouer :avec la souris et le bouton 1

Codes Sources

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.