En vu de l'option ISN, ma partenaire et moi avons décider de créer un programme générant des labyrinthes. Ceci se présente sous forme de jeu avec un personnage que l'on dirige vers la sortie.
Le programme du labyrinthe marche mais je rencontre des problèmes avec la création du personnage.
Quelqu’un peut il m'aider s'il vous plait? Je met le programme du joueur à la suite.
- Code: Tout sélectionner
#include "toolbox.h"
#include "LABYRINTHE.c"
#define taille 35
POINT J;
POINT S;
POINT joueur;
POINT sortie;
//J = joueur, E = Entrée, S = Sortie
int i,j,tab[taille][taille];
void Initialiser_joueur()
{
S.x = taille+1;
S.y = taille+1;
}
void Afficher_joueur()
{
/*J.x = (544+528)/2;
J.y = (544+528)/2;*/
for(i=1;i<taille;i++)
{
for(j=1;j<taille;j++)
{
J.x = i*16;
J.y = j*16;
dessine_cercle_plein( J, 5, yellow );
}
}
}
void Deplacements_joueur()
{
while ( (J.x!=S.x) || (J.y!=S.y) )
{
POINT C = lit_fleches();
if (C.y > 0)
{
if (tab[J.x][J.y+1] == 0)
{
Afficher_joueur();
}
else
{
if (tab[J.x][J.y+1] == 1)
{
J.x = J.x;
J.y = J.y + 2;
Afficher_joueur();
}
else{}
if ( (J.x!=S.x) && (J.y!=S.y) )
{
J.x = J.x;
J.y = J.y + 2;
Afficher_joueur();
remplir_ecran(noir);
printf("C'est gagné!/n");
}
else{}
}
}
else
{
if (C.y < 0)
{
if (tab[J.x][J.y-1] == 0)
{
Afficher_joueur();
}
}
else
{
if (tab[J.x][J.y-1] == 1)
{
J.x = J.x;
J.y = J.y - 2;
Afficher_joueur();
}
else{}
if ( (J.x!=S.x) && (J.y!=S.y))
{
J.x = J.x;
J.y = J.y - 2;
Afficher_joueur();
remplir_ecran(noir);
printf("C'est gagné!\n");
}
else{}
}
if (C.x > 0)
{
if (tab[J.x+1][J.y] == 0)
{
Afficher_joueur();
}
}
else
{
if (tab[J.x+1][J.y] == 1)
{
J.y = J.y;
J.x = J.x + 2;
Afficher_joueur();
}
else{}
if ( (J.x!=S.x) && (J.y!=S.y))
{
J.y = J.y;
J.x = J.x + 1;
Afficher_joueur();
remplir_ecran(noir);
printf("C'est gagné!\n");
}
else{}
}
if (C.x < 0)
{
if (tab[J.x-1][J.y] == 0)
{
Afficher_joueur();
}
}
else
{
if (tab[J.x-1][J.y] == 1)
{
J.y = J.y;
J.x = J.x - 2;
Afficher_joueur();
}
else{}
if ( (J.x!=S.x) && (J.y!=S.y))
{
J.y =J.y;
J.x = J.x - 2;
Afficher_joueur();
remplir_ecran(noir);
printf("C'est gagné!\n");
}
else{}
}
}
}
}
int main( int argc, char **argv)
{
initialiser_fenetre( 800, 600, "Exercice 03");
affiche_auto_off();
Initialiser_joueur();
Afficher_joueur();
//Deplacements_joueur();
attendre_echap();
return 0;
}