Accueil
Forums
Turoriaux
Inscription
Connexion
Fil RSS
Bienvenue invité !
Jeudi 08 Janvier 2009

Jeu du Plus ou du Moin

Et mes anciens RPG


1
Auteur Message
> Posté le : 07/08/2007 11h18
Avatar de lbeetls01


Groupe : Admins
Messages : 2097

Bonjours à tous et à toutes .
Hier soir je me suis mis à apprendre à programmer en C. Presque comme du PHP , sa m'arrange bien .
J'ai créé mon premier jeu. Le TP n°1 du SDZ . Et je l'ai amélioré avec tous les conseils d'amélioration du tuto .



Sinon, comme je l'avais promis dans un autre sujet il y a déjà un petit moment , voici mes 2 RPG créés avec RMXP. Pas fini, mais je ne penses pas les continuer... Mais par contre il se pourrit bien que je fasse un grand tutorial sur la création de RPG si sa en intéresse quelques un d'entre vous .



Voilà
A bientôt,
Lb


> Posté le : 07/08/2007 11h24
Aucun avatar


Groupe : Membres
Messages : 126

pour ton rpg il marque une des bibliothèque nécessaire à cette application n'a pas été trouvé

Ps ton jeu en c il est vraiment facile même en mode difficile


Mon site Adtrain:cliquez ici
> Posté le : 07/08/2007 11h37
Avatar de lbeetls01


Groupe : Admins
Messages : 2097

^^
Pour le jeu en C tu as choisi 2 joueurs, donc normalement 1 joueur entre un nombre et l'autre doit le trouver .
Pour les RPG, lien du premier post édité


> Posté le : 07/08/2007 13h46
Avatar de lbeetls01


Groupe : Admins
Messages : 2097

Un nouveau petit jeu qui se joue à deux : le jeu des allumettes !
Pour ceux qui ne conaissent pas Fort Boyard celui qui prends la dernière alumette à perdu.

Code source :
main.c
Code C:
#include <stdio.h>
#include <stdlib.h>
#include "main.h"

long nbPointsJoueur1=0;
long nbPointsJoueur2=0;
long jouerEncore=1;
long nballumettes=10;
long nballumettesPrends=0;
long noJoueur=1;
long noJoueurGagnant=0;
long noJoueurCommence=1;
long nballumettesOk=0;

int main()
{
    printf("Bienvenue dans le jeu des allumettes !nCe jeu se joue a deux. Celui qui prend la derniere allumette a perdu.nVous ne pouvez pas prendre plus de 3 allumettes à la fois.nn");

    while(jouerEncore==1){
        long nballumettes=10;
        long nballumettesOk=0;
        long nballumettesPrends=0;
        long noJoueurGagnant=0;
        long noJoueurCommence=noJoueur;


        while(nballumettes!=1){
            afficheallumettes(nballumettes);
            printf("Joueur %ld, combien d'allumettes prenez vous ? ",noJoueur);
            scanf("%ld",&nballumettesPrends);
            printf("nn");

            if(verifieNombre(nballumettesPrends,nballumettes)){
                noJoueur=changeJoueur(noJoueur);
                nballumettes-=nballumettesPrends;
            }else{
                if(nballumettes-1>3){
                    nballumettesOk=3;
                }else{
                    nballumettesOk=nballumettes-1;
                }

                printf("Veuillez choisir un nombre entre 1 et %ld.n",nballumettesOk);
                nballumettes=redemandeNballumettes(nballumettes,noJoueur);
                noJoueur=changeJoueur(noJoueur);
            }
        }

        metPointsJoueurGagnant(noJoueur);

        printf("Le joueur %ld a perdu cette partie.nnJoueur 1 : %ld pointsnJoueur 2 : %ld pointsnnVoulez vous refaire une partie ? ",noJoueur,nbPointsJoueur1,nbPointsJoueur2);
        scanf("%ld",&jouerEncore);
        if(jouerEncore==1){
            noJoueur=changeJoueur(noJoueurCommence);
        }
    }

    gagnantJeu(nbPointsJoueur1,nbPointsJoueur2);

return 0;
}
long afficheallumettes(long nballumettes){
    while(nballumettes!=0){
        printf("|");
        nballumettes--;
    }
    printf("nn");
}
long verifieNombre(long nballumettesPrends,long nballumettes){
    if(nballumettesPrends<=3 && nballumettesPrends>0 && nballumettes>nballumettesPrends){
        return 1;
    }else{
        return 0;
    }
}
long changeJoueur(long noJoueur){
    if(noJoueur==1){
        return 2;
    }else{
        return 1;
    }
}
long redemandeNballumettes(long nballumettes,long noJoueur){
    long nballumettesPrends=0;
    printf("Combien d'
allumettes prenez vous ? ");
    scanf("%ld",&nballumettesPrends);
    printf("nn");
    if(verifieNombre(nballumettesPrends,nballumettes)){
        nballumettes-=nballumettesPrends;
        noJoueur=changeJoueur(noJoueur);
    }else{
        if(nballumettes-1>3){
            nballumettesOk=3;
        }else{
            nballumettesOk=nballumettes-1;
        }

        printf("Veuillez choisir un nombre entre 1 et %ld.n",nballumettesOk);
        nballumettes=redemandeNballumettes(nballumettes,noJoueur);
    }
    return nballumettes;
}
long metPointsJoueurGagnant(long joueurPerdant){
    if(joueurPerdant==1){
        nbPointsJoueur2++;
        noJoueurGagnant=2;
    }else{
        nbPointsJoueur1++;
        noJoueurGagnant=1;
    }
}
long gagnantJeu(long nbPointsJoueur1,long nbPointsJoueur2){
    if(nbPointsJoueur1>nbPointsJoueur2){
        printf("nLe joueur 1 gagne le jeu.nnJoueur 1 : %ld pointsnJoueur 2 : %ld points",nbPointsJoueur1,nbPointsJoueur2);
    }else{
        printf("nLe joueur 2 gagne le jeu.nnJoueur 1 : %ld pointsnJoueur 2 : %ld points",nbPointsJoueur1,nbPointsJoueur2);
    }
}


main.h
Code C:
long afficheallumettes(long nballumettes);
long verifieNombre(long nballumettesPrends,long nballumettes);
long changeJoueur(long noJoueur);
long redemandeNballumettes();
long metPointsJoueurGagnant(long joueurPerdant);
long gagnantJeu(long nbPointsJoueur1,long nbPointsJoueur2);




> Posté le : 07/08/2007 15h19
Aucun avatar


Groupe : Membres
Messages : 30

C'est pour quand l'intelligence artificielle sur les allumettes ? 
> Posté le : 07/08/2007 15h43
Avatar de lbeetls01


Groupe : Admins
Messages : 2097

^^
Bonne question
Là je viens de finir le chapitre sur les pointeurs... encore un petit bout avant l'intelligence artificielle


> Posté le : 07/08/2007 22h56
Avatar de Vegeta47


Groupe : Membres
Messages : 103

Un peu gros mais pas mal (redeclaration de variables  )
Tu vas voir les pointeurs en fait c'est assez simple le pire c'est les deux chapitres qui sont après .
Tiens je m'y met aussi, voici deux jeux que j'ai réalisé en python :
Ya pas les tabulations argh ! 
Plus ou moins :
Code PYTHON:
#!/usr/bin/python
# Importation de la fonction randrange pour generer un nombre aleatoirement
from random import randrange

# Initialisation de la variable recommencer
recommencer = 0

while recommencer == 0:
# Generation du nombre et declaration de la variable joueur
nombre_cache = randrange(0, 100)
nombre_joueur = -50
nombre_coup = 0
# Boucle tant que le nombre n'est pas trouve
while nombre_cache != nombre_joueur:
# On demande le nombre
nombre_joueur = input("Entrez un nombre compris entre 0 et 100 : ")
# et on le compare
if nombre_joueur < nombre_cache:
print "Plus grand"
elif nombre_joueur > nombre_cache:
print "Plus petit"
nombre_coup = nombre_coup + 1
print "Vous avez trouve ! Le nombre etait " , nombre_cache , " !"
print "Vous avez trouve le nombre en ",nombre_coup, " coup(s) !"
recommencer = input("Recommencer ?nOui = 0  Non = 1n")

Pendu :
Code PYTHON:
#!/usr/bin/python
# -.- coding: latin-1 -*

# Pour effacer la console
import os
# Pour prendre un mot aléatoirement
from random import randrange

# Fonction qui arrête le script si la variable passée en argument contient des chiffres
def is_str(string):
if string.isalpha() == 0:
print "Pas de chiffre ou de caracteres accentues !"
raw_input('Quitter')
exit()
# Fonction qui vérifie que la chaîne passée en argument ne contient qu'un seul caractères
def sup(lettre):
if len(lettre) > 1:
print "Juste une seule lettre !"
raw_input('Quitter')
exit()

print "Bienvenue dans le jeu du Pendu !"
print "N'utilisez pas de caracteres accentues.n"
# Variables utilisées
compteur = 0
coups = 0
max_coups = input("Combien de coups au maximum ?") + 1
lettre = ""
mot_cache = ""
# Mode un joueur ou mode 2 joueurs
if input("Mode 1 joueur -> 1nMode 2 joueurs -> 2n") == 2:
mot_cache = raw_input("Joueur 2, entrez le mot a faire deviner.n").lower().replace("'
" , "")
is_str(mot_cache)
else:
f = open('words.txt') # Ouverture du dico
liste = f.readlines()
mot_cache =  liste[randrange(1, len(liste) )] # Choix aléatoire
mot_cache = mot_cache[0:-1] # Enlève le retour à la ligne de fin

os.system('cls') # Efface la console
mot = ""
taille_mot = len(mot_cache)
print "Bienvenue dans le jeu du Pendu !"
print "N'utilisez pas de caracteres accentues.n"
# Création de la variable contenant autant de # que de caractères dans le mot caché
while compteur < taille_mot:
mot += "#"
compteur+=1
# C'
est parti
while mot != mot_cache:
if max_coups - coups != 0: # S'il reste encore des coups à joueur
compteur = 0 # On remet le compteur à 0
coups += 1 # et on rajoute un coups
print mot
print "Il vous reste" , max_coups - coups , "coup(s) a jouer"
lettre = raw_input("Proposer une lettre : ").lower()
print "n"
is_str(lettre)
sup(lettre)
# On regarde s' il y a la lettre rentrée dans le mot caché
while compteur < taille_mot:
if mot_cache[compteur] == lettre:
mot = mot[:compteur] + lettre + mot[compteur+1:]
compteur += 1

else: # Plus de coups à jouer, c'est la fin
print "C'est fini, vous avez perdu ! Le mot etait " , mot_cache , " !"
raw_input('
Quitter')
exit()
print "Bravo vous avez trouve le mot cache :" , mot_cache ,"en" , coups , "coup(s)."
raw_input('
')

Vous pouvez les télécharger ici (hébergés sur mon ordi, donc si le site est inaccesible c'est que mon ordi est éteint).
> Posté le : 25/08/2007 13h09
Avatar de [Toxik]


Groupe : Membres
Messages : 617

lbeetls01, le problème de ton jeu c'est que une fois le jeu terminé, tu proposes au joueur le choix de continuer. Le problème, c'est qu'il faut savoir que 1 = continuer et que 0 = arrêter. Donc tu devrais faire :

Code C:
// Tu proposes le choix ici
int jouerok = 0;
while (jouerok != 1)
{
if (jouerEncore == 'oui' || jouerEncore == 'Oui')
{
    long jouerEncore = 1;
    int jouerok = 1;
     // Ici tu mets la suite de ton code
}
elseif (jouerEncore == 'non' || jouerEncore == 'Non')
{
    long jouerEncore = 0;
    int jouerok = 1;
}
else
{
printf("Merci d'entrer une reponse valide !");
}
}


Et aussi, ne met pas d'accents car pendant la compliation ils sont remplacés par des signes spéciaux 

Si l'homme descends du singe... La tecktonik manifestement y remonte...
> Posté le : 30/08/2007 23h25
Avatar de clemano


Groupe : Membres
Messages : 72

C'est marrant ton jeu d'allumette,

Par contre quand il demande si tu veux refaire une partie, je mets oui et ça m'affiche pleins de ligne à n'en plus finir


EDIT : D'ailleur si à la place de 1, 2 ou 3 on mets un, deux ou trois ça fait les aussi les messages à la matrix

> Posté le : 30/08/2007 23h51
Avatar de Nephthys


Groupe : Membres
Messages : 129

Le C/C++ c'est chaud, je préfère approfondir le niveau de mon PHP/SQL plutôt que d'apprendre un autre langage mais c'est une bonne initiative, bon courage

Newser sur le Site du Zéro.
> Posté le : 31/08/2007 11h48
Avatar de [Toxik]


Groupe : Membres
Messages : 617

C'est ce que je dis, faut placer mon code 

Si l'homme descends du singe... La tecktonik manifestement y remonte...
> Posté le : 31/08/2007 12h49
Avatar de lbeetls01


Groupe : Admins
Messages : 2097

Ok
Bon je vais pas le modifier maintenant parce que c'était surtout pour mettre en pratique ce que j'avais appris.
Ensuite faudra que je continue à l'apprendre (surtout apprendre à utiliser des librairies pour gérer les fenêtres, etc... et virer cette console ) mais maintenant je me suis lancé dans l'ActionScript (une surprise pour CP est bientôt prévue ).
Bref, je vous tiens au courant


> Posté le : 31/08/2007 13h21
Avatar de [Toxik]


Groupe : Membres
Messages : 617

C'est clair que la SDL c'est passionant 

Si l'homme descends du singe... La tecktonik manifestement y remonte...
1