CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

mon premier jeu!!!

sonic66
sonic66
Niveau 10
15 février 2005 à 23:30:52

version 4!
ajout:
si on est a 5 nombre du code , on nous dit qu´on est tout pres et ajout du nombre d´essai quil a fallut pour trouver le code!

  1. include < stdlib.h>
  2. include < iostream>

using namespace std;

int main()
{
int code;
int solution;
int i;
i = 1;
code = 55;
cout < < " devine la combinaison avec le moin d´essais que possible!" < < endl;
cout < < " (entre 0 et 100)" < < endl;
system("pause");
while(solution ! = code)
{
cout < < " essai numero " < < i++ < < " :" < < endl;
cin > > solution;
if(solution < code)
{
if(solution < code-6)
{
cout < < " trop petit! " < < endl;
system("pause");
}
if(solution > code-6 && solution < code)
{
cout < < " tu y es presque! Un tout petit peu trop petit! " < < endl;
system("pause");
}
}
if(solution > code)
{
if(solution > code+6)
{
cout < < " trop grand! " < < endl;
system("pause");
}
if(solution < code+6 && solution > code)
{
cout < < " tu y es presque! Un tout petit peu trop grand! " < < endl;
system("pause");
}
}
}
cout < < " oui! la solution etait bien " < < code < < " et tu a mis " < < i-1 < < " essais!!!" < < endl;
system("pause");
return 0;
}

Nosk
Nosk
Niveau 5
16 février 2005 à 10:37:04

Tu peux remplacer :

if(solution < code+6 && solution > code)

par

if(abs(solution - code) < = 5)

abs(int nombre) te donne la valeur absolue d´un nombre. Par exemple si le code est 20 et la solution est 18, abs(solution-code) te donnera 2. Et si la solution est 22, alors abs(solution-code) = 2. En d´autre terme, abs te donne la distance entre 2 nombres ( ça peut te servir si tu veux calculer la distance entre 2 points par exemple)

Tu auras besoin de la librairie < math.h> ( n´oublie pas l´include au début ! ^^)

Et pourquoi n´as tu toujours pas ajouté le rand() et le srand() pour ne pas avoir à toujours mettre le même code ? ^^ Dernière idée : pour augmenter l´aspect ludique de ton jeu, tu peux ajouter un score qui sera fonction du nombre d´essai ^^ ( Le Joueur aime bien qu´on le complimente :p)

Moule53
Moule53
Niveau 10
16 février 2005 à 10:58:46

Autre idée sympa, un pierre-papier-ciseaux :-)
J´l´avais deja fait en basic,mais bon c´est quand meme sympa. Au départ,tu peux le commencer que en " texte" ( scusez l´expression,ça fait longtemps que j´ai pas programmer :p) ) et ensuite commencez a intégrer des fonctions graphiques :ok:

sonic66
sonic66
Niveau 10
16 février 2005 à 12:20:24

nosk => en fait , je fait au fur a mesure que j´apprend , c´est un entrainement quoi! et je savait pas encore faire le hazard!
sinon pour le core , ouais je vais le faire!!!
moule53=> pas mal ton idé , jessairai de le faire!
sinon c´est sur console que je fait ca ( toi tu dit le " texte")

Nosk
Nosk
Niveau 5
16 février 2005 à 12:29:45

C´est pour ça que je t´ai donné un exemple d´utilisation en première page ^^ Tu as juste à l´intégrer dans ton projet, et si tu ne le comprend, n´hésite pas à demander ^^

sonic66
sonic66
Niveau 10
16 février 2005 à 12:34:15

ben en fait , g un peu rien compris par ex avec le printf ( c pas du c?),
et sinon , g mal compris le code.

sonic66
sonic66
Niveau 10
16 février 2005 à 12:58:18

sinon , apres les tutos de Jyy , je devrai allez pour continuer a bosser le c++?

Nosk
Nosk
Niveau 5
16 février 2005 à 13:15:57

Printf est une fonction comme une autre, ce n´est pas plus du C que du C++ ^^ Et elle me parait beaucoup plus simple pour un débutant que cout et cin...Tu sais à quoi correspondent les " <<" et les " >>" ? :p Le sens des flèches n´indique pas à la variable où il faut aller... ; p

printf est plus simple : Tu lui passe en paramètre une chaine de caracteres, ainsi que les variables que tu veux afficher, dans le meme ordre que dans la chaine de caractères.

Ex :

printf("Hello World\n"); / / Affiche Hello World

int a = 10;
printf("La valeur de a est : %i", a);

int b= 20;
printf("La valeur de a est : %i, celle de b : %i, et celle de a + b : %i", a, b, a+b);

Le " %i" indique à printf d´aller chercher un entier dans la liste des arguments. Le premier %i ira chercher le premier argument ( a), le deuxième %i ira chercher le deuxième argument ( b) et le troisième %i ira chercher le 3ème argument ( a+b) :)

Tu peux lui dire d´aller chercher autre chose, comme des chaine de caractère, des nombres à virgules...C´est une fonction très puissante pour l´affichage de texte en mode console !

Plus d´info : http://www.cplusplus.com/ref/cstdio/printf.html

Pour ce qui du reste du code, rand() est une fonction qui renvoit un nombre entre 0 et une constante définie dans le système, qui a pour nom RAND_MAX ( elle vaut 32768)..Et comme c´est TROP, tu peux mettre un " modulo" ( c´est une fonction mathématique), qui va limiter le nombre...(Si tu vois ce qu´est un modulo, ça devrait aller, sinon, laisse tomber, je t´ai proposé une autre méthode dans le code juste avant ^^)

Le srand() initialise le rand() car sinon, il donne toujours la même valeur ( c´est un générateur de nombre pseudo-aléatoir). Ce que tu met en paramètre du srand, ici Time(NULL), c´est juste pour avoir une valeur qui initialise le srand() différente à chaque fois ( puisque basée sur le temps)

Que tu ne comprennes pas tout, c´est normal au début ^^ Mais une étape importante de l´apprentissage, c´est d´apprendre à chercher tout seul des FAQ, des tutoriels ou des pages man etc ( comme par exemple celui que je t´ai donné pour expliquer printf) -> C´est une démarche dont tu aura besoin pour de plus gros projet, autant prendre tout de suites les bonnes habitudes !

Pour continuer à etudier le C++, tu devrais te fixer un autre objectif ( un autre type de jeu), d´essayer de faire ce que tu peux avec tes connaissances actuelles, et quand tu bloque, tu va voir les fonctions existentes en C/C++ pour t´en sortir ^^ Il faut que tu découpe tes problèmes en elements simple pour pouvoir trouver les réponses à tes questions ^^

[Sinon, il y a plein de tutoriels sur le net, et Lapintade propose un tutorial C++ sur ce forum, je te laisse chercher :P]

sonic66
sonic66
Niveau 10
16 février 2005 à 13:58:56

ok merci!
mais sinon pour le modulo :fou: :fou:
ce sera un peu plus tard :lol:

sonic66
sonic66
Niveau 10
16 février 2005 à 14:04:58

ok merci!
mais sinon pour le modulo :fou: :fou:
ce sera un peu plus tard :lol:
et pour langlais...

sonic66
sonic66
Niveau 10
16 février 2005 à 14:13:38

ok merci!
mais sinon pour le modulo :fou: :fou:
ce sera un peu plus tard :lol:
et pour langlais...

sonic66
sonic66
Niveau 10
16 février 2005 à 14:17:30

dsl de lavoir ecris trois fois...
sinon g une bonne question!
vous avez appris le c++ pendant combien de temps avant d´avoir pu faire par ex un pong?

sonic66
sonic66
Niveau 10
16 février 2005 à 14:50:54

maintenant , je vais le vendre a un noob ^^

Nosk
Nosk
Niveau 5
16 février 2005 à 15:06:02

Pour faire un pong avec du texte ( si si, c´est possible ! " O" pour la balle, " #####" pour les raquettes ^^), tu peux y arriver avec peut-être une 30 aines d´heures ( le temps de comprendre les fonctions que tu ne connais pas ^^), et encore, je suis peut-être optimiste ^^

Pour faire un Pong en version graphique, tout dépend de la librairie que tu utilise. Si par exemple tu utilise SDL, et en prenant le temps de lire et comprendre les tuts, je dirais que si tu maitrise les fonctions de base du C++, 30h c´est pas mal aussi ^^ ( à supposer que tu as déjà passé 30h sur la version texte :p)

Enfin bref, tout ça pour dire que c´est difficile de quantifier le temps necessaire pour faire un pong. Dans le principe, c´est simple, et n´importe qui ici avec un peu d´experience pourra te faire un truc fonctionnel en 1h ( après tout, il n´y a que 3 sprites à charger, un fond, déplacer la balle, vérifier la collision entre la raquette et la balle et calculer la vitesse + la nouvelle trajectoire de la balle après le renvoit ^^) . .. mais la première fois, il te faudra du temps pour te familliariser avec 1) le langage, 2) La librairie graphique ^^

Surtout qu´en C++, la manipulation de chaines, c´est pas si simple que ça...(et ça risque d´être un problème pour ton Pong version " texte" si tu en fait un ^^)

http://opecheux.free.fr/abcp/cd/index.html#depart

Sur ce site, tu trouvera un tutorial pour apprendre le C, et si je te donne celui en particulier c´est parcequ´il y a un jeu de balle qui rebondit sur l´écran comme exemple ^^ Décortique le programme, ça t´inspirera pour ton pong :p

GL_K
GL_K
Niveau 10
16 février 2005 à 15:37:47
  1. include < stdlib.h>
  2. include < windows.h>
  3. include < iostream>
  4. include < iomanip>

using namespace std;

char*const szPetit[] = { " Trop petit!",
" Tu y es presque! Un tout petit peu trop petit!" };
char*const szGrand[] = { " Trop grand!",
" Tu y es presque! Un tout petit peu trop grand!" };

int main( void )
{
const unsigned uiCode = rand() % 100;
unsigned uiSolution, i(0);
char* szStr = 0;

srand( GetCurrentTime() ) ;

cout<< " Devine la combinaison avec le moins d´essais que possible"
< < " (entre 0 et 100)!";

while( true )
{
cout<< " \nEssai numero " < < setw(2) < < ++i < < " : " ;
cin>> uiSolution;

if( uiSolution < uiCode )
szStr = uiSolution < uiCode - 6 ? szPetit[0] : szPetit[1];

else if( uiSolution > uiCode )
szStr = uiSolution > uiCode + 6 ? szGrand[0] : szGrand[1];

else break;

cout<< szStr;
}

cout<< " Oui! la solution etait bien " < < uiCode"
< < " et tu a mis " < < i < < " essais!!!" < < endl;

system( " pause" ) ;
return 0;
}

GL_K
GL_K
Niveau 10
16 février 2005 à 15:39:16

Le code que je viens de vous sender est bien mieux implémenté, de plus il est optimisé pour d´éventuelle mises à jour!

sonic66
sonic66
Niveau 10
16 février 2005 à 15:53:53

mais je ne connais ni

  1. include < iomanip>

ni

  1. include < windows.h>

jsuis qu´un newbie

GL_K
GL_K
Niveau 10
16 février 2005 à 16:16:03

le fichier iomanip te permet de " manipuler" des objets,

par exemple ici setw(2) de iomanip permet d´indenter le nomre ´i´ :

0
1
. ..
10
11
. ..

au lieu de
0
1
. ..
10
11
. ..

la fonction GetCurrentTime() permet de prendre le time actuel, ce qui initialize la fonction rand() totalement aléatoirement.

se n´est pas la peine de connaître toutes les fonctionnalités d´un fichier header! ( heureusement)

sonic66
sonic66
Niveau 10
16 février 2005 à 16:27:46

:ok:

Vengeur41
Vengeur41
Niveau 10
16 février 2005 à 16:32:41

C´est quoi la différence entre
0
1
. . .
10
11
. . .

et :

0
1
. . .
10
11
. . .

?

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment