Bonjour à tous !

Je suis nouveau sur ce forum, et je me permet de venir vous trouvez car je suis en cas désespéré.
En effet, dans le cadre de mes études, je dois faire un Plus4 en C, mais le soucis, c'est que je n'arrive à rien.
Je viens donc ici pour trouvez de l'aide et essayer de finir le mieux possible mon jeu que je dois rendre d'ici 4 jours :s

Pour que vous sachiez globalement ce qu'est le Plus4, voici la règle principale : -> Comme pour le célèbre Puissance 4, il faut aligner 4 boules de sa couleur... Mais ici, les boules ne tombent pas directement au fond de la grille 4x4, elles ne descendent que d’un cran à la fois. Quand elles ont été poussées 4 fois, elles tombent de la grille et le joueur peut les récupérer et les remettre en jeu. Les possibilités sont donc infinies, aucune partie ne se essemble !
La partie dure ainsi jusqu'à ce qu'un joueur réalise un alignement de 4 pions de sa couleur orthogonalement ou en diagonale et gagne la partie.


Et voici le début de mon code
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
#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>
 
#include "constantes.h"
#include "jeu.h"
 
 
void jeu(SDL_Surface* ecran)
{
    //Création des différentes surfaces de leur position
    SDL_Surface *Rouge = NULL, *Bleu = NULL, *Plateau = NULL, *Vide = NULL;
    SDL_Rect positionBleu, positionPlateau, positionRouge, positionVide;
    SDL_Event event;
 
 
    int continuer = 1;
    int i,j,z;
    int colonne, ligne;
 
    //Chargement des images
    Plateau = IMG_Load("plateau.png");
    Bleu = IMG_Load("pion_bleu.png");
    Rouge = IMG_Load("pion_rouge.png");
    Vide = IMG_Load("vide.png");
 
    //Position du plateau de jeu
    positionPlateau.x = 0;
    positionPlateau.y = 0;
 
 
    SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0)); //Coloration du fond
    SDL_BlitSurface(Plateau, NULL, ecran, &positionPlateau); //Insertion de l'image du plateau de jeu
    SDL_Flip(ecran);
 
 
    //Insertion des images "vide" pour créer les différentes cases du plateau
    for (i=0;i<BLOCS_LARGEUR;i++)
    {
        for (j=0;j<BLOCS_HAUTEUR;j++)
        {
            positionVide.x=120+150*i; //position du 1er pions + espacement entre chaque
            positionVide.y=38+105*j;
            SDL_BlitSurface(Vide,NULL, ecran,&positionVide);
        }
    }
 
    colonne = ((event.button.x - 120) / 150);
    ligne = ((event.button.y - 38) / 105);
 
 
    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch (event.type)
        {
        case SDL_QUIT:
            continuer = 0;
            break;
        case SDL_KEYDOWN:
            switch (event.key.keysym.sym)
            {
            case SDLK_ESCAPE: //Touche Echap pour quitter
                continuer = 0;
                break;
            }
        case SDL_MOUSEBUTTONUP:
            if (event.button.button == SDL_BUTTON_LEFT) //Pour un clique gauche
            {
 
 
                positionBleu.x=120+150*colonne;
                positionBleu.y=38+105*ligne;
                SDL_BlitSurface(Bleu, NULL, ecran, &positionBleu);
 
 
 
            }
            if (event.button.button == SDL_BUTTON_RIGHT) //Pour un clique droit
            {
                positionRouge.x = event.button.x;
                positionRouge.y = event.button.y;
                SDL_BlitSurface(Rouge, NULL, ecran, &positionRouge);
            }
            break;
        }
 
 
        SDL_BlitSurface(Plateau, NULL, ecran, &positionPlateau);
        SDL_Flip(ecran);
 
    }
}
Comme vous le voyez, je suis vraiment au début de la besogne, et mon premier problème est : Comment je peux faire pour que lorsque je clique, mon pion aille dans la colonne et la ligne voulu, et non n'importe ou dans le jeu ?

Car dans mon code, tel qu'il est actuellement, je ne peux pas placer mon pion bleu ailleur que dans la 1ere case, et dans le cas du pion rouge, je peux le placer n'importe ou.

J'espère que certain d'entre vous pourrons m'aider !!