Le jeu du pendu en sdl

Soyez le premier à donner votre avis sur cette source.

Vue 4 734 fois - Téléchargée 855 fois

Description

Ce jeu est l'un des grands classiques adapté sur SDL.
J'ai vérifié que les sources n'avaient pas d'erreur avant de les zipper, et j'ai ajouté le "project file" dans celui-ci afin d'en faire bénéficier à ses utilisateurs.

Source / Exemple :


#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>
#include "analysis.h"
#include "menu.h"

int gagne(int lettreTrouvee[], long nbLettres)
{
    long i =0;
    int joueurGagne = 1;

    for(i = 0; i< nbLettres; i++)
    {
        if(lettreTrouvee[i] == 0)
        joueurGagne = 0;
    }

    return joueurGagne;
}

int perd(int lettreTrouvee[], long nbLettres)
{
    long i =0;
    int joueurPerd = 0;

    for(i = 0; i< nbLettres; i++)
    {
        if(!lettreTrouvee[i] == 0)
        joueurPerd = 1;
    }

    return joueurPerd;
}

int rechercheLettre(char lettre, char motSecret[], int *lettreTrouvee[])
{
    long i = 0;
    int bonneLettre = 0;

    // On parcourt motSecret pour vérifier si la lettre proposée y est
    for (i = 0 ; motSecret[i] != '\0' ; i++)
    {

        if (lettre == motSecret[i]) // Si la lettre y est
        {
            bonneLettre = 1; // On mémorise que c'était une bonne lettre
            lettreTrouvee[i] = 1; // On met à 1 le case du tableau de booléens correspondant à la lettre actuelle
        }

    }

    return bonneLettre;
}

char isLetter()
{
    char lettreTapee = 0;
    int continuer = 1;
    SDL_Event isLetter;

while (lettreTapee == 0)
    {
    SDL_WaitEvent(&isLetter);

        switch(isLetter.type)
        {
            case SDL_QUIT:
                continuer = 0;
                exit(EXIT_SUCCESS);
                break;
            case SDL_KEYDOWN:
                switch(isLetter.key.keysym.sym)
                  {
                    case SDLK_q:
                    lettreTapee = 'A';
                    break;
                    case SDLK_w:
                    lettreTapee = 'Z';
                    break;
                    case SDLK_e:
                    lettreTapee = 'E';
                    break;
                    case SDLK_r:
                    lettreTapee = 'R';
                    break;
                    case SDLK_t:
                    lettreTapee = 'T';
                    break;
                    case SDLK_y:
                    lettreTapee = 'Y';
                    break;
                    case SDLK_u:
                    lettreTapee = 'U';
                    break;
                    case SDLK_i:
                    lettreTapee = 'I';
                    break;
                    case SDLK_o:
                    lettreTapee = 'O';
                    break;
                    case SDLK_p:
                    lettreTapee = 'P';
                    break;
                    case SDLK_a:
                    lettreTapee = 'Q';
                    break;
                    case SDLK_s:
                    lettreTapee = 'S';
                    break;
                    case SDLK_d:
                    lettreTapee = 'D';
                    break;
                    case SDLK_f:
                    lettreTapee = 'F';
                    break;
                    case SDLK_g:
                    lettreTapee = 'G';
                    break;
                    case SDLK_h:
                    lettreTapee = 'H';
                    break;
                    case SDLK_j:
                    lettreTapee = 'J';
                    break;
                    case SDLK_k:
                    lettreTapee = 'K';
                    break;
                    case SDLK_l:
                    lettreTapee = 'L';
                    break;
                    case SDLK_z:
                    lettreTapee = 'W';
                    break;
                    case SDLK_x:
                    lettreTapee = 'X';
                    break;
                    case SDLK_c:
                    lettreTapee = 'C';
                    break;
                    case SDLK_v:
                    lettreTapee = 'V';
                    break;
                    case SDLK_b:
                    lettreTapee = 'B';
                    break;
                    case SDLK_n:
                    lettreTapee = 'N';
                    break;
                    case SDLK_SEMICOLON:
                    lettreTapee = 'M';
                    break;
                    default:
                    printf("ain't in it at all");
                    continue;

        }

        return lettreTapee;
    }
    }
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.