| Plus ou Moins | |
|
+5Wargamer Mass morgan Topaze22 GTK 9 participants |
Auteur | Message |
---|
GTK *Excellent utilisateur*
Messages : 3959 Localisation : Belgique Projet Actuel :
| Sujet: Plus ou Moins Sam 14 Mar 2009 - 21:00 | |
| Hello ! Bon bon bon, n'ayant ni Flash, ni GameMaker 7 Pro sur mon PC portable (Vista), j'ai voulu trouvé un moyen à la fois gratuit et qui me permette tout de même de programmer des jeux 2D du même niveau de ce que j'aurais pu faire avec GameMaker. Je me suis donc tourner vers le C. Bon, je suis toujours en phase d'apprentissage, et je m'aide du tuto du Site du Zéro (d'ailleurs, le jeux que je vais présenter est un TP proposé pour s'assurer que la théorie est comprise). Heureusement pour moi, ce que j'ai vu de prog' sur Flash ou Processing m'aide bien =D (et avant ça, le GML m'a permis de comprendre plus facilement ce que je connait de la prog' sur Arduino, Flash AS2 et Processing =D donc, si comme moi, vos parents n'aiment pas vous voir programmer des jeux-vidéo, si vous désirez faire des études là dedans plus tard, vous pouvez être certain que ce que vous apprenez aujourd'hui avec GameMaker vous aidera plus tard à mieux comprendre beaucoup de chose) car je me souviens avoir voulu tenter d'apprendre il y a de ça deux ans environ, et j'avais très vite abandonné -_- Alors voila, Plus ou Moins est un jeu tout bête (ça se joue dans la console Win32), où vous devez deviner en le moins de coup possible un chiffre tiré au hasard. Voici un magnifique screen shot ! Excitant n'est-ce pas ? Si ça intéresse quelqu'un, voici le code de la version actuel : - Spoiler:
- Code:
-
#include <stdio.h> #include <stdlib.h> #include <time.h>
// Réponse choisi au hasard long hasard(long max) { long reponse = (rand() % (max - 1 + 1)) + 1; return reponse; }
// Choix de la difficultée long choix_dif(){ long max=0, choix; while(max==0) { printf("Choisi la difficulte :\n 1. Facile - de 1 a 100\n 2. Moyen - de 1 a 500\n 3. Difficile - de 1 a 1 000\n"); scanf("%ld", &choix);
switch(choix) { case 1 : printf("Partie Facile\n\nDevine un nombre entre 1 et 100.\n"); max=100; break; case 2 : printf("Partie Moyenne\n\nDevine un nombre entre 1 et 500.\n"); max=500; break; case 3: printf("Partie Difficile\n\nDevine un nombre entre 1 et 1 000.\n"); max=1000; break; case 69: printf("\nOhoh...\nOn veut jouer a ca ?\nBen essaye donc de trouver un nombre entre 1 et 1 000 000 puisque t'es si malin ;)\n"); max=1000000; break; default : printf("\nVous n'avez pas entre un nombre valide.\n Veuillez entrer un nombre entre 1 et 3 pour choisir votre difficulte\n\n"); break; } } return max; }
int main(int argc, char *argv[]) { // Initialisation des variables long reponse, coup=0, entre, max, choix=0, ok=1, fini=0, rejouer; srand(time(NULL));
max=choix_dif(); reponse = hasard(max);
while(fini==0) { printf("Entre un nombre\n"); scanf("%ld", &entre); coup++; if(entre==reponse) { printf("\n\nBravo !\n\n\nLa reponse est bien %ld.\nVous avez reussi a trouver la reponse en %ld coup(s)!\n\n", reponse, coup); ok=1; while(ok==1) { // La partie est fini, on vous demande si vous voulez rejouer. printf("Voulez-vous rejouer ?\n1. Rejouer\n2. Changer la difficulte\n3. Quitter\n\n"); scanf("%ld", &rejouer); switch (rejouer) { case 1: reponse = hasard(max); coup=0; ok=0; break; case 2: ok=0; coup=0; max=choix_dif(); reponse = hasard(max); break; case 3: return 0; break; default : printf("\n\nEntrez un nombre entre 1 et 3 !\n\n"); break; } } } else if(entre>reponse) printf("\nLa reponse est plus petite que %ld\n",entre); else printf("\nLa reponse est plus grande que %ld\n",entre); } }
Quoiqu'il en soit, si vous repérez un bug, signalez-le moi, histoire que je le corrige (pour l'instant, j'ai repéré un bug mais j'arrive pas à le régler celui-là... Si on tape autre chose qu'un nombre entier, le programme ne sait plus quoi). Si vous avez une suggestion, dites-le aussi, au cas où |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Plus ou Moins Sam 14 Mar 2009 - 21:40 | |
| Lol, je l'avais fais, le même au GEII. Maintenant, je n'aime plus trop le C car pour réaliser un jeu, c'est comme utiliser une petite cuillère pour manger le pôle nord.
M'enfin, bien joué quand même :noel2: Quand on rentre une valeur, vérifie si elle est entière, ou sinon, dit que la valeur est pas entière et redemande de rentrer un nombre.
Ou sinon, tu déclares toutes tes données en float ou double float. Comme ça ton programme prend en compte les valeurs non entières. |
|
| |
morgan Utilisateur confirmé: Rang *****
Messages : 1626 Localisation : Montpellier
| Sujet: Re: Plus ou Moins Sam 14 Mar 2009 - 23:00 | |
| lol je l'ais fait aussi, si tu veux (si je l'ais encore =D) je t'envoi mon dossier (code::block) ou j'avais pas mal de truc. |
|
| |
Mass *Excellent utilisateur*
Messages : 3351 Localisation : Dans une canonnière wookie. Projet Actuel : Monter des trucs et des machins
| Sujet: Re: Plus ou Moins Sam 14 Mar 2009 - 23:05 | |
| jlavais aussi fait mais la fonction de hasard buggeais sur code::blocks sur mon win2000 |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Plus ou Moins Sam 14 Mar 2009 - 23:33 | |
| j'Aviat fait pareil aussi et j'Aviat tomber pile sur le nombre un fois |
|
| |
Chulien Utilisateur confirmé: Rang *****
Messages : 2232
| Sujet: Re: Plus ou Moins Sam 14 Mar 2009 - 23:47 | |
| moi j'avais fait un jeu de paris ^^ même game maker pas pro c'est bon pour coder des jeux, on arrive à un résultat rapidement, et on peut faire des trucs vraiment originaux mais le C peut permettre de programmer sur autre chose que windows c'est sur - Citation :
c'est comme utiliser une petite cuillère pour manger le pôle nord. trop bien ta phrase ^^
|
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Plus ou Moins Dim 15 Mar 2009 - 1:07 | |
| Merci, et trop lol tes 69 messages ! |
|
| |
Invité Invité
| Sujet: Re: Plus ou Moins Dim 15 Mar 2009 - 2:15 | |
| vous ne pouvez rien contre mes affreux 10K messages |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Plus ou Moins Dim 15 Mar 2009 - 4:14 | |
| moi j'ai 3k je suis quad m^me loin du dieu flooder |
|
| |
Super-Mouton *Excellent utilisateur*
Messages : 4916 Localisation : Cyberworld Projet Actuel :
| Sujet: Re: Plus ou Moins Dim 15 Mar 2009 - 4:16 | |
| - Topaze22 a écrit:
- Merci, et trop lol tes 69 messages !
lol zebdal #2 pis ouin ben même moi j'avais fait un plus ou moins à cause du tuto sur le SDZ, donc je sais pas si poster ça dans vos projets... ben.. en tout cas lol Et pour ton bug, j'avais lu que c'était directement à cause de scanf. D'ailleurs il me semble que l'auteur du tuto sur le SDZ déconseille de l'utiliser plus loin dans le tuto, à cause de beaucoup de désavantages, pas sécuritaire, ça fait de la ***** si tu entres autre chose qu'un nombre.. :pac_dr: (lol, je programme même pas mais j'avais lu ça, je devais avoir rien à faire) |
|
| |
GTK *Excellent utilisateur*
Messages : 3959 Localisation : Belgique Projet Actuel :
| Sujet: Re: Plus ou Moins Dim 15 Mar 2009 - 19:05 | |
| Ouais ya toujours des avertissements lorsqu'on utilise scanf lors de la compilation :/
M'enfin, je vois qu'on est beaucoup à être passé par là =D c'est marrant ^^ |
|
| |
zebdal Utilisateur confirmé: Rang *****
Messages : 2874 Localisation : Chez Vanilla Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 10:35 | |
| - Citation :
- switch(choix)
{ case 1 : printf("Partie Facile\n\nDevine un nombre entre 1 et 100.\n"); max=100; break; case 2 : printf("Partie Moyenne\n\nDevine un nombre entre 1 et 500.\n"); max=500; break; case 3: printf("Partie Difficile\n\nDevine un nombre entre 1 et 1 000.\n"); max=1000; break; case 69: printf("\nOhoh...\nOn veut jouer a ca ?\nBen essaye donc de trouver un nombre entre 1 et 1 000 000 puisque t'es si malin \n"); max=1000000; break; default : printf("\nVous n'avez pas entre un nombre valide.\n Veuillez entrer un nombre entre 1 et 3 pour choisir votre difficulte\n\n"); break; } je pense que c'est simplifiable ce truc. au lieu de faire des case, tu fais une formule générale qui marche pour tous les cas. là si tu avais 1000 cas différents à traiter, tu serais dans la *****, alors que si tu fais une formule générale qui prend tous les cas en compte, non. sur ce, maintenant fais nous un morpion. |
|
| |
Chulien Utilisateur confirmé: Rang *****
Messages : 2232
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 10:51 | |
| aah maintenant je comprends le - Citation :
- zebdal #2
mais est-ce que lui il a un 69 dans son n° dportable hein?! haha! |
|
| |
zebdal Utilisateur confirmé: Rang *****
Messages : 2874 Localisation : Chez Vanilla Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 12:40 | |
| parce que je veux imposer de mettre le rang "pervers" à tous ceux qui ont posté précisément 69 messages, mais ils veulent pas. |
|
| |
Invité Invité
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 12:46 | |
| - Wargamer a écrit:
- moi j'ai 3k je suis quad m^me loin du dieu flooder
exemple de flood : OMG JE VIEN MANGER UNE POMME OMG CHO LA MEUF A POIL VS ETE UNE BANDE DE FRUSTRES ( moi je ne fais que repondre normalement au message, doc go mlanger un caca. @zebdal :: t'a qu'a demander de te mettre un rang spéciale |
|
| |
GTK *Excellent utilisateur*
Messages : 3959 Localisation : Belgique Projet Actuel :
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 19:37 | |
| Oui bien sur :sarcastique: Et tous tes messages d'"humour" que tu qualifie d'humour alors qu'ils sont pas marrant, mais que c'est surtout une excuse parce que tu frôle le fail, t'appelle ça comment ? Aussi, tu veux bien changer ta signature ou ça te manque que je quote tous tes messages pour ajouter chaque fois mon petit commentaire ? (dernièrement, ça me démange beaucoup, mais vu que je cherche plus trop les emmerdes, je me suis abstenu, mais là, j'attends plus qu'un signe ) - zebdal a écrit:
-
- Citation :
- switch(choix)
{ case 1 : printf("Partie Facile\n\nDevine un nombre entre 1 et 100.\n"); max=100; break; case 2 : printf("Partie Moyenne\n\nDevine un nombre entre 1 et 500.\n"); max=500; break; case 3: printf("Partie Difficile\n\nDevine un nombre entre 1 et 1 000.\n"); max=1000; break; case 69: printf("\nOhoh...\nOn veut jouer a ca ?\nBen essaye donc de trouver un nombre entre 1 et 1 000 000 puisque t'es si malin \n"); max=1000000; break; default : printf("\nVous n'avez pas entre un nombre valide.\n Veuillez entrer un nombre entre 1 et 3 pour choisir votre difficulte\n\n"); break; } je pense que c'est simplifiable ce truc. au lieu de faire des case, tu fais une formule générale qui marche pour tous les cas. là si tu avais 1000 cas différents à traiter, tu serais dans la *****, alors que si tu fais une formule générale qui prend tous les cas en compte, non.
sur ce, maintenant fais nous un morpion. Hein !? Le case, c'est la meilleur solution pour ce genre de chose je pense. Explique moi ta solution car je vois pas de meilleur système pour faire un truc du genre (je débute en C, oublie pas ^^). |
|
| |
Invité Invité
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 22:31 | |
| *signe* enfin si c'est adressé a moi, la seul réponse que je te demanderai c'est de regarder mon profile |
|
| |
zebdal Utilisateur confirmé: Rang *****
Messages : 2874 Localisation : Chez Vanilla Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 22:47 | |
| printf("Devine un nombre entre 1 et "+max)
chais pas si ca s'écrit comme ca en C, mais c'est comme ca en java. puis pour savoir le max, un if suffit. puis aussi au lieu de dire "si c'est 3 alors c'est égal à je ne sais quoi" tu peux demander aussi directement à l'utilisateur de taper sur quel intervalle il peut jouer, et alors il n'y a plus besoin ni de case ni de if. |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 23:04 | |
| Bien essayé, mais en langage C, ce serait plutôt : printf("Devine un nombre entre 1 et %d",max);
Je crois, mais je n'en n'ai pas fais depuis 2 ans. PS : à la place du %d, ça pourrait être un %f // ça dépend de comment tu l'as déclaré. |
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Plus ou Moins Lun 16 Mar 2009 - 23:39 | |
| %d devrait passer dans la majorité des cas.
si ça plante, essaye %l aussi . |
|
| |
GTK *Excellent utilisateur*
Messages : 3959 Localisation : Belgique Projet Actuel :
| Sujet: Re: Plus ou Moins Mar 17 Mar 2009 - 20:21 | |
| - shm31 a écrit:
- *signe*
enfin si c'est adressé a moi, la seul réponse que je te demanderai c'est de regarder mon profile Hahaha... joue bien au malin toi. Sinon, %d pour un entier, %l pour un décimale je pense. Ah ben ouais, je savais pas qu'on pouvait faire des trucs comme ça, c'est pas mal =D |
|
| |
Contenu sponsorisé
| Sujet: Re: Plus ou Moins | |
| |
|
| |
| Plus ou Moins | |
|