IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Jeu paintPlash version Matrice


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2014
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Jeu paintPlash version Matrice
    Salut tout le monde,

    Etant débutant en prog, j'ai besoin d'aide sur un petit jeu que je me fais, c'est un paintplash : url :

    http://www.gameonly.com/fr/jeux/jeux...plash-1940.htm


    sauf qu'a la place de forme bizarre, c'est une matrice, chacun ayant une couleur.
    Le principe : Le joueur clique sur une case adjacent à la case de départ mise en blanc, celle ci affecte à la case de départ la nouvelle couleur. Le but est de remplir toutes la matrice avec 1 seul couleur avec le minimum de coup.

    Nom : type.jpg
Affichages : 73
Taille : 19,9 Ko

    Je travaille sous la libraire graphics.h de Libgraphics. et j'ai réalisé une génération aléatoire des couleurs et une sauvegarde (abscisse, ordonnée, couleur de chaque case). De plus je fais la demande au début de la taille de la matrice. Tout cela fonctionne.

    J'ai fais un tableau de structure comprenant la couleur, l’abscisse, l'ordonne de chaque cases créent.

    Maintenant j'ai besoin de comprendre (hé j'ai un peu de mal) a savoir comment je pourrai m'y prendre d'un point de vue algorithmique pour changer la couleur selon la zone de jeu, si je suis bien adjacent à la zone de jeu, au début, c'est la case blanche mais après sa se complique...

    Fenetre = 500*500
    Chaque case fait h=50 et L=100

    J'ai commencé par essayer de cliquer sur une case adjacents à la case blanche (case de départ), sa fonctionne bien mais maintenant je dois essayer de prendre en compte l'évolution de la zone de jeu (J’espère que vous comprenez ce que je dis par évolution de la zone de jeu. Au début c'est la blanche mais elle va s'agrandir et changer de couleur)

    J'ai commence a réfléchir comme-ci :

    1- D’abord trouver les case adjacents de la zone de départ ou" zone de jeu "- les enregistrer dans un tableau (facile au début pour la case blanche, mais ensuite c'est plus difficile)
    2- Trouver la case que le joueur à clique et vérifier si elle appartient au case adjacents
    3- Si oui affecter la couleur à la zone de jeu (via une boucle for sur mon tableau qui enregistre les cases adjacents.

    La question :

    La ou j'ai besoin d'aide c'est sur la numéro 1, comment pourrai je m'y prendre pour déterminé ma zone de jeu.
    Au début c'est facile mais après que la case blanche a changer de couleur, c'est complexe. Car plusieurs cases deviendrons la zone de jeu, Pouvez vous m'aider?


    J’espère avoir été clair dans ce petit projet.
    PS : Si il y a des fautes, compréhensions, veuillez m'en excusez.

    Je vous met des bouts de mon code : (c'est dans la fonction jeu que je travaille)
    et la fonction" menu" qui demande la taille n'est pas donné ( pas utile) je met le minimum.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    #define GEOMETRIE " 500x500"
    #define LARGEUR 500
    #define HAUTEUR 500
    #define case_h 50
    #define case_l 100
    #define x_new 50
    #define y_new 400
    #define x_load 150
    #define y_load 400
    #define x_enreg 250
    #define y_enreg 400
    #define x_quit 350
    #define y_quit 400
    
    //La structrure
    typedef struct {
    
    int id_case;
    int color;
    int abs;
    int ord;
    
    }Matrice;
    
    Matrice *tab; 
    
    
    int main () {
    //Ouverture de la fenêtre graphique
         gr_open_graph(GEOMETRIE);
    //Menu
       draw_menu();
       menu(); 
    // Etat position de souris
        gr_wait_event(BUTTON_UP);
    // On nettoie et on s'en va
        gr_close_graph();
    //Desalocation de la memoire
        free(tab); 
        printf("\nDesalocation de la mémoire realise"); 
    //printf("%d",tab);
        return 0;
    }
    
    //On fais le jeu (Dedans que j'aimerai faire le jeu ...) pour l'instant c'est tant que c'est vrai mais c'est version BIG TEST^^ 
    void jeu(int taille)
    {
    
    int  x,y=0;
    	while(1)
    	{
    //atente even 1 
    	gr_wait_event(BUTTON_DOWN);
    //recup coordonne 
    	gr_mouse_pos(&x, &y);
    //affichage
    printf("\nCoordonee: x:%d  y: %d", x,y);
    x=0;
    y=0;
    
    	}
    
    
    }
    
    //Fonction qui dessine la matrice
    void nouveau (int col, int ligne)
    {
    	int i,x,y,j;
    	int abs, ord, couleur;
    	int plas=0;
    	abs = 50;
    	ord = 250;
    	
         gr_moveto(0,0 );
        /* Generer un Couleur aletatoire*/
        int Tab_color[6]={red,green,blue,yellow,cyan,magenta}; 
        //int Tab[1][1];
        /* Rectangle de base*/
       
    	srand(time(NULL));
    	for (i=0; i<ligne; i++)
    	{
    	
    		for (j=0; j<col; j++)
    		{	
    		//creation couleur
    		if (abs==50 && ord==250)
    		{
    		gr_set_color(white);	
    		tab[0].id_case=plas;
    		tab[0].color=white;
    		tab[0].abs=abs;
    		tab[0].ord=ord;
    
    		} 	
    		else
    		{
    		couleur = Tab_color[(rand()%6)];
    		gr_set_color(couleur);	
    		gr_fill_rect(abs, ord ,case_l, case_h);
    
    		//enregistr dans tab
    		plas=plas+1;
    		tab[plas].id_case=plas;
    		tab[plas].color=couleur;
    		tab[plas].abs=abs;
    		tab[plas].ord=ord;
    
    		}
    
    		//creation entourage
    		gr_set_color(black);
    	        gr_set_line_width(3);
    		
    		gr_moveto(abs,ord);
    	        gr_lineto(abs,ord+50);
    		gr_lineto(abs+100,ord+50);
    		gr_lineto(abs+100,ord);
    		gr_lineto(abs,ord);
    		
    		abs = abs + 100;
    		//Tab[i][j]=couleur;
    
    		}
    
    	ord = ord - 50;
    	abs = 50;
    
    	}
    
    	printf("\nMatrice dessine");
    }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En fait, il ne faut pas réaliser le 1, de cette façon je pense. Faites plutôt quelque chose comme :
    - regarder où le joueur a cliqué ;
    - voir si une des cases à cotés de la case cliquée par le joueur est de la couleur du joueur.

    Voilà
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2014
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Je comprend pas votre proposition, pouvez vous donner un exemple (version algorithmique)...

    Car si une case cliqué est égale à la case à coté, cela n'est pas forcément la case adjacent.
    Puis la case à coté peut peut être une case de la zone active (zone de jeu) bref
    pouvez vous précisez ?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    En théorie, vous avez une matrice (un tableau 2D) pour représenter logiquement votre plateau de jeu (votre grille). Donc, la correspondance existe directement.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Stupid Run, mon deuxième jeu (nouvelle version!!!)
    Par lypnol dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 13/04/2012, 13h10
  2. Matrice de jeu + shift conditionel
    Par Haknaton dans le forum Débuter
    Réponses: 4
    Dernier message: 27/02/2009, 22h54
  3. Réponses: 8
    Dernier message: 13/07/2008, 15h46
  4. [Jeu 2D]Labyrinthe et matrice
    Par Invité dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 05/09/2006, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo