nahoof
Messages postés
2
Date d'inscription
samedi 24 janvier 2009
Statut
Membre
Dernière intervention
2 mars 2009
2 mars 2009 à 16:29
//Merci pour ta reponse, voici mon code ::
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <time.h>
#include "c.h"
#define HAUTEUR 65
#define LARGEUR 155
SDL_Event event;
SDL_Surface *ecran NULL, *imageDeFond NULL, *cartes[53], *boutton[7] =
{NULL}
, *eff = NULL;SDL_Surface *mise_min NULL, *mise_max NULL, *mise_max2 = NULL, *Deal =
NULL, *mise_max3 = NULL;
SDL_Rect position_carte[5], positionFond, positionBoutton[4];
SDL_Rect position_mise_1, position_mise_2, positionMain_J[2],
positionMain_O[2], position_Deal;
int i, j, e, k, l, n, j1, o, tour, continuer 1, tab_mel[52], tirage 1, ok 0, ok1 0, pf = 1, f = 0;
int PAROLE 0, SUIVRE 0, PASSER = 0, MISER = 0;
int mise_j_pf, mise_o_pf, mise_j_f, mise_o_f;
int relance_j_pf 0, relance_o_pf 0, relance_j_f = 0, relance_o_f = 0;
void IA()
{
if(pf == 1){
if(tour == 0 && relance_j_pf != 1
&& ((tab_mel[2] < 20 && tab_mel[3] < 20)
|| (tab_mel[2] < 20 || tab_mel[3] < 20))){
SDL_Delay(1000);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
mise_o_pf = 100;
}
elseif(tour == 0 && tab_mel[2] >= 20 && tab_mel[3] >= 20
&& relance_j_pf != 1){
SDL_Delay(1000);
SDL_BlitSurface(mise_max2, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
relance_o_pf = 1;
mise_o_pf = 200;
}
elseif(tour == 0 && tab_mel[2] >= 10 && tab_mel[3] >= 10
&& relance_j_pf == 1){
SDL_Delay(1000);
SDL_BlitSurface(mise_max2, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
mise_o_pf = 200;
}
elseif(tour == 0 && tab_mel[2] < 10 && tab_mel[3] < 10
&& relance_j_pf == 1){
SDL_Delay(1000);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
}
}
// fin du jeu en preflop -> Debut des mises en flop
if(f == 1){
if(tour == 0 && tab_mel[2] < 20 && tab_mel[3] < 20 && relance_j_f != 1)// ajout des conditions sur le flop...
{
SDL_Delay(1000);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
mise_o_f = 100;
}
if(tour == 0 && tab_mel[2] >= 20 && tab_mel[3] >= 20
&& relance_j_f != 1){
SDL_Delay(1000);
SDL_BlitSurface(mise_max2, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
relance_o_f = 1;
mise_o_f = 200;
}
if(tour == 0 && tab_mel[2] >= 10 && tab_mel[3] >= 10
&& relance_j_f == 1){
SDL_Delay(1000);
SDL_BlitSurface(mise_max2, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
mise_o_f = 200;
}
if(tour == 0 && tab_mel[2] < 10 && tab_mel[3] < 10
&& relance_j_f == 1){
SDL_Delay(1000);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_1);
SDL_Flip(ecran);
tour = 1;
}
}
}
void Affiche_Flop(int tab_mel[52], SDL_Surface * cartes[52],
SDL_Surface * ecran, SDL_Rect position_carte[5])
{
int j;
for(j = 4; j <= 6; j++){
SDL_BlitSurface(cartes[tab_mel[j]], NULL, ecran,
&position_carte[j - 4]);
SDL_Flip(ecran);
SDL_Delay(1000);
}
}
void Affiche_Turn(int tab_mel[52], SDL_Surface * cartes[52],
SDL_Surface * ecran, SDL_Rect position_carte[5])
{
SDL_BlitSurface(cartes[tab_mel[7]], NULL, ecran, &position_carte[3]);
SDL_Flip(ecran);
SDL_Delay(1000);
}
void Affiche_River(int tab_mel[52], SDL_Surface * cartes[52],
SDL_Surface * ecran, SDL_Rect position_carte[5])
{
SDL_BlitSurface(cartes[tab_mel[8]], NULL, ecran, &position_carte[4]);
SDL_Flip(ecran);
SDL_Delay(1000);
}
void controle_Souris()
{
/**------------------------------------------------//
// On donne aux boutons leurs fonctions //
//------------------------------------------------**/
SDL_WaitEvent(&event);
switch(event.type){
case SDL_QUIT:
continuer = 0;
break;
case SDL_MOUSEBUTTONUP:
if(event.button.y > 600 && event.button.y <= 600 + HAUTEUR
&& event.button.x > 25 && event.button.x <= 25 + LARGEUR
&& tour == 1){
PAROLE = 1;
tour = 0;
mise_j_pf = 100;
}elseif(event.button.y > 600 && event.button.y <= 600 + HAUTEUR
&& event.button.x > 225 && event.button.x <225 + LARGEUR && tour 1){
if(pf == 1 && relance_o_pf != 1){
MISER = 1;
relance_j_pf = 1;
tour = 0;
SDL_BlitSurface(mise_max2, NULL, ecran, &position_mise_2);
SDL_Flip(ecran);
mise_j_pf = 200;
}
if(pf 1 && relance_o_pf 1){
MISER = 1;
relance_j_pf = 1;
tour = 0;
SDL_BlitSurface(mise_max3, NULL, ecran, &position_mise_2);
SDL_Flip(ecran);
mise_j_pf = 400;
}
elseif(f == 1){
MISER = 1;
relance_j_f = 1;
tour = 0;
SDL_BlitSurface(mise_max2, NULL, ecran, &position_mise_2);
SDL_Flip(ecran);
mise_j_f = 200;
}
}elseif(event.button.y > 600 && event.button.y <= 600 + HAUTEUR
&& event.button.x > 425 && event.button.x <425 + LARGEUR && tour 1){
PASSER = 1; //fonction ne change pas selon flop ou pf...
tour = 0;
SDL_BlitSurface(cartes[tab_mel[2]], NULL, ecran,
&positionMain_O[0]);
SDL_BlitSurface(cartes[tab_mel[3]], NULL, ecran,
&positionMain_O[1]);
SDL_Flip(ecran);
}elseif(event.button.y > 600 && event.button.y <= 600 + HAUTEUR
&& event.button.x > 625 && event.button.x <625 + LARGEUR && tour 1){
SUIVRE = 1;
if(pf == 1){
if(relance_o_pf != 1){
SDL_BlitSurface(mise_max, NULL, ecran,
&position_mise_2);
SDL_Flip(ecran);
mise_j_pf = 100;
tour = 0;
}elseif(relance_o_pf == 1){
SDL_BlitSurface(mise_max2, NULL, ecran,
&position_mise_2);
SDL_Flip(ecran);
mise_j_pf = 200;
tour = 0;
}
break;
}
elseif(f == 1){
if(relance_o_f != 1){
SDL_BlitSurface(mise_max, NULL, ecran,
&position_mise_2);
SDL_Flip(ecran);
mise_j_f = 100;
tour = 0;
}elseif(relance_o_f == 1){
SDL_BlitSurface(mise_max2, NULL, ecran,
&position_mise_2);
SDL_Flip(ecran);
mise_j_f = 200;
tour = 0;
}
break;
}
}
break;
}
}
void Mise_OK()
{
if(mise_o_pf == mise_j_pf){
ok = 1;
}
else{
ok = 0;
}
}
void Mise_OK1()
{
if(mise_o_f == mise_j_f){
ok1 = 1;
}
else{
ok1 = 0;
}
}
void Initialisation()
{
/**------------------------------------------------//
// Ouverture d'une fenetre SDL //
//------------------------------------------------**/
SDL_Init(SDL_INIT_VIDEO);
ecran =
SDL_SetVideoMode(800, 660, 24,
SDL_HWSURFACE | SDL_RESIZABLE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("RICHY ET NAHOOF POKER TOUR...", NULL);
/**---------------------------------------------------------------------------//
// Téléchargement de toutes les images dont on se servira dans le programme //
//---------------------------------------------------------------------------**/
telechargements_Img(cartes, boutton);
Deal = SDL_LoadBMP("bouton-dealer.bmp");
mise_max = SDL_LoadBMP("100.bmp");
mise_max2 = SDL_LoadBMP("200.bmp");
mise_max3 = SDL_LoadBMP("400.bmp");
mise_min = SDL_LoadBMP("50.bmp");
eff = SDL_LoadBMP("efface.bmp");
imageDeFond = SDL_LoadBMP("fond-ecran1.bmp");
/**------------------------------------------------//
// On definit la position de toutes les images //
//------------------------------------------------**/
for(i = 1; i < 4; i++){
positionBoutton[0].x = 25;
positionBoutton[0].y = 600;
positionBoutton[i].x = positionBoutton[i - 1].x + 200;
positionBoutton[i].y = positionBoutton[i - 1].y;
}
positionMain_J[0].x = 343;
positionMain_J[0].y = 405;
positionMain_J[1].x = 378;
positionMain_J[1].y = 405;
positionMain_O[0].x = 343;
positionMain_O[0].y = 110;
positionMain_O[1].x = 378;
positionMain_O[1].y = 110;
position_carte[0].x = 175;
position_carte[0].y = 252;
for(i = 1; i <= 4; i++){
position_carte[i].x = position_carte[i - 1].x + 100;
position_carte[i].y = position_carte[i - 1].y;
}
}
void Tirage_Blind()
{
/**-------------------------------------------------//
// On appelle un tableau de 52 éléments differents //
//-------------------------------------------------**/
tab_melange(i, k, tab_mel, l, n);
/**------------------------------------------------//
// On effectue le tirage au sort de la Blind //
//------------------------------------------------**/
while(tirage){
positionFond.x = 0;
positionFond.y = 0;
SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
srand(time(NULL));
o = rand() % 52;
j1 = rand() % 52;
position_mise_1.x = 370;
position_mise_1.y = 213;
position_mise_2.x = 370;
position_mise_2.y = 365;
if(tab_mel[j1] < tab_mel[o]){
position_Deal.x = 300;
position_Deal.y = 140;
SDL_BlitSurface(Deal, NULL, ecran, &position_Deal);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_2);
SDL_BlitSurface(mise_min, NULL, ecran, &position_mise_1);
tirage = 0;
}elseif(tab_mel[j1] > tab_mel[o]){
position_Deal.x = 300;
position_Deal.y = 440;
SDL_BlitSurface(Deal, NULL, ecran, &position_Deal);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_1);
SDL_BlitSurface(mise_min, NULL, ecran, &position_mise_2);
tirage = 0;
}elseif(tab_mel[j1] == tab_mel[o]){
tirage = 1;
SDL_Delay(500);
}
}
}
void actu()
{
/**------------------------------------------------//
// On actulise l'ecran en vue du Pre-Flop //
//------------------------------------------------**/
positionFond.x = 0;
positionFond.y = 0;
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
SDL_Flip(ecran);
position_mise_1.x = 370;
position_mise_1.y = 213;
position_mise_2.x = 370;
position_mise_2.y = 365;
if(tab_mel[j1] < tab_mel[o]){
position_Deal.x = 300;
position_Deal.y = 140;
SDL_BlitSurface(Deal, NULL, ecran, &position_Deal);
SDL_Flip(ecran);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_2);
SDL_BlitSurface(mise_min, NULL, ecran, &position_mise_1);
tour = 0;
mise_j_pf = 100;
mise_o_pf = 50;
}
elseif(tab_mel[j1] > tab_mel[o]){
position_Deal.x = 300;
position_Deal.y = 440;
SDL_BlitSurface(Deal, NULL, ecran, &position_Deal);
SDL_Flip(ecran);
SDL_BlitSurface(mise_max, NULL, ecran, &position_mise_1);
SDL_BlitSurface(mise_min, NULL, ecran, &position_mise_2);
SDL_Flip(ecran);
tour = 1;
mise_o_pf = 100;
mise_j_pf = 50;
}
// On blitte les cartes
for(j = 0; j <= 1; j++){
SDL_BlitSurface(cartes[52], NULL, ecran, &positionMain_O[j]);
SDL_Delay(500);
SDL_Flip(ecran);
SDL_BlitSurface(cartes[tab_mel[j]], NULL, ecran,
&positionMain_J[j]);
SDL_Delay(500);
SDL_Flip(ecran);
}
// On blitte les boutons
for(i = 0; i < 4; i++){
SDL_BlitSurface(boutton[i], NULL, ecran, &positionBoutton[i]);
SDL_Flip(ecran);
}
}
/**------------------------------------------------//
// Jeu //
//------------------------------------------------**/
int main(int argc, char *argv[])
{
Initialisation();
Tirage_Blind();
actu();
pf = 1;
f = 0;
while(!ok){
controle_Souris();
IA();
Mise_OK();
if(ok){
Affiche_Flop(tab_mel, cartes, ecran, position_carte);
SDL_Flip(ecran);
break;
}
}
// en principe je test les mises apres le flop mais le turn s'affiche affiche sans mises ni test quand je bouge la souris!!!
pf = 0;
f = 1;
while(!ok1){
controle_Souris();
IA();
Mise_OK1();
if(ok1){
Affiche_Turn(tab_mel, cartes, ecran, position_carte);
SDL_Flip(ecran);
break;
}
}
SDL_FreeSurface(ecran);
SDL_FreeSurface(cartes[j]);
SDL_FreeSurface(boutton[j]);
SDL_FreeSurface(mise_min);
SDL_FreeSurface(mise_max);
SDL_FreeSurface(mise_max2);
SDL_FreeSurface(imageDeFond);
SDL_FreeSurface(Deal);
SDL_FreeSurface(cartes[j]);
SDL_Quit();
returnEXIT_SUCCESS;
}