1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
AListe productionChateau(char couleur, int X, int Y){
AListe ch;
ch = (Agent*)malloc(sizeof(Agent));
if(ch!=NULL){
ch->couleur=couleur;
ch->genre='c';
ch->posx=X;
ch->posy=Y;
ch->asuiv=NULL;
ch->aprec=NULL;
ch->vsuiv=NULL;
ch->vprec=NULL;
return ch;
}}
AListe ajouteChateau(char couleur, AListe *liste ,int x,int y,Case plateau[x][y]){
AListe ch;
if((ch=productionChateau(couleur,x,y))!=NULL){
if((*liste)==NULL){
(*liste)=ch;
plateau[x][y].chateau=ch;
return (*liste);
}
}
}
AListe productionAgent(char couleur,char genre, int px, int py ){
AListe ag;
ag = (Agent*)malloc(sizeof(Agent));
if(ag!=NULL){
ag->couleur=couleur;
ag->genre=genre;
ag->posx=px;
ag->posy=py;
ag->destx=px;
ag->desty=py;
ag->aprec=NULL;
ag->asuiv=NULL;
return ag;
}}
AListe ajouteAgent(char couleur, char genre,AListe *liste,int x,int y, Case plateau[x][y]){
AListe ag;
if((ag=productionBaron(couleur,x,y))!=NULL){
AListe tmp=(*liste);
if((*liste)!=NULL){
while(tmp->asuiv!=NULL){
tmp=tmp->asuiv;
}
tmp->asuiv=ag;
ag->aprec=tmp;
plateau[x][y].habitant=ag;
return tmp;
}
}
}
void afficheCase(int x,int y,Case plateau[x][y]){
if(plateau[x][y].chateau!=NULL){
printf("(%c)",plateau[x][y].chateau->genre);
}
if(plateau[x][y].habitant!=NULL){
printf("(%c)",plateau[x][y].habitant->genre);
}
}
int main(){
Monde jeux;
Case plateau[12][18];
int i,j;
for(i=0;i<12;i++){
for(j=0;j<18;j++){
jeux.plateau[i][j].chateau=NULL;
jeux.plateau[i][j].habitant=NULL;
}
}
ajouteChateau('R',&jeux.rouge,0,0,jeux.plateau);
ajouteAgent('R','b',&jeux.rouge,0,1,jeux.plateau);
afficheCase(0,0,jeux.plateau);
afficheCase(0,1,jeux.plateau);
return 0;
} |
Partager