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

[Aide débutant] C++

Zephiel
Zephiel
Niveau 10
02 août 2006 à 23:04:01

Salut...

Vala, je me heurte à un nouveau problème...

Je souhaite crée un prog assez simple :

L´utilisaeur entre n nombre de nombres et le prog les ranges par ordre croissant...

Mais je ne vois absolument pas la méthode que je pourrez utilisé...peut être for(;;)...bref j´ai besoin d´aide...

Merci :)

godrik
godrik
Niveau 30
03 août 2006 à 01:18:28

Si tu ne sais pas comment trier les nombres par ordre croissant.
Peut etre sais tu faire une partie du travail ?

Zephiel
Zephiel
Niveau 10
07 octobre 2006 à 00:44:38

Je me permet de upper ce topic :)

En faite j´aimerai crée un Texte RPG 100% en mode conso...J´ai déjà le système de combat fini et le synopsis de l´histoire...

Mon problème c´est que quand on bombarde le prog de printf ou de cout << le texte apparait de façon barbare : d´un coup !

Moi j´aurai voulu un défilement progressif, qui serai beaucoup plus agréable pour suivre le jeu dans les conditions du mode conso...

Comment faire ?

dnob700
dnob700
Niveau 10
07 octobre 2006 à 09:16:54

pour trier les nombres, je t´ai uploadé un texte que j´ai écrit il y a très longtemps :
http://wall.sectionpc.info/C/algo1_tri.cpp

je ne l´ais jamais considéré comme terminé, et là je ne l´ai même pas relu. Mais normallement, il est pas trop mauvais.

pour ton problème de cout, place un sleep(500) entre chacun pour patienter une demi seconde entre chaque ligne (ou plus si tu veux). Si tu est sous linux, il faut utiliser usleep(500) (ou msleep ?)

Zephiel
Zephiel
Niveau 10
07 octobre 2006 à 18:34:08

Merci beaucoup :)

Zephiel
Zephiel
Niveau 10
29 octobre 2006 à 18:22:08

Nan ton sleep(500); ne fonctionne pas...

Zephiel
Zephiel
Niveau 10
29 octobre 2006 à 20:17:41

C´est bon j´ai trouvé...

Sleep(500) et non sleep(500)

:ok:

J´aurai une autre question : je souhaite crée un jeu tout con : un jeu de mémoire. Je m´explique, l´ordi sort 2 nombre, efface ces nombres au bout de 3 seconde puis nous demande de les rerentré.
Maitenant j´aimerai qu´il sorte 3 nombres, puis 4 , puis 5, puis 6 etc...jusqu´a une erreur...

Par contre je vois pas du tout quel algorythme je vais adopté pour recrée des variable avec une boucle...

Help, je trouve pas...

Un indice ? :merci:

elhuron
elhuron
Niveau 6
29 octobre 2006 à 20:45:54

Prends un papier et un crayon, et reflechis :)

dnob700
dnob700
Niveau 10
29 octobre 2006 à 20:55:27

un tableau d´entier ?

Zephiel
Zephiel
Niveau 10
09 juillet 2007 à 19:04:58

Reeeeee... :fou:

Me revoila avec de nouveaux problemes de débutants :)

Alors, j´ai un probleme avec la fonction rand()...

Vala, quand je lance le programme, j´ai bien un nombre aléatoire, mais c´est souvent le même repris a plusieurs fois :

Exemple :

3
3
7
7
7
1
12
12
12
10
10
10
10
10
5

etc...

Je comprends pas trop pourquoi...

J´ai utilisé le basique :

srand(time(NULL));
carte = (rand() % (MAX - MIN + 1)) + MIN;

L´utilité c´est pour crée un p´tit blacjack...vala...

KeepSmile
KeepSmile
Niveau 4
09 juillet 2007 à 20:17:12

attention, srand tu dois l´utiliser qu´une seul fois dans le code et non à chaque fois que tu utilise rand().

Zephiel
Zephiel
Niveau 10
09 juillet 2007 à 20:32:52

Oui j´ai remarqué que quand je l´utilisé a chaque fois ça metté la même chose...

Donc je l´es mis qu´une seule fois, ça me fait ça regardé :

srand(time(NULL));
carte1 = (rand() % (MAX - MIN + 1)) + MIN;
carte2 = (rand() % (MAX - MIN + 1)) + MIN;
/* Création des deux premieres cartes*/

quelques lignes de codes...
...

carte3 = (rand() % (MAX - MIN + 1)) + MIN;
carte4 = (rand() % (MAX - MIN + 1)) + MIN;
/* BANQUE : Création des deux premieres cartes*/

Vala...

Je suis sur X-Code (Macintosh), et quand je met Run, ca me met entre 3 et 6 fois la même chose avant de changer, alors c´est peut être du au fonctionnement de Run et de la gestion de la fonction rand() ?

godrik
godrik
Niveau 30
09 juillet 2007 à 23:51:53

On ne doit pas utiliser rand avec modulo.
il est préférable de se ramener a une variable entre 0 et 1 que l´on multiplie apres (cf la man page de rand et le chapitre de "numerical recipes").
PLus un truc comme:
float toto = ((float)rand())/RAND_MAX;
int ret = toto * (MAX-MIN) + MIN;

Si tu fais plusieurs appel a srand(time(NULL)); tu obtiendra plusieurs fois la meme graine (puisque dans la meme seconde (cf man time)) et donc plusieurs fois le meme résultat.

Zephiel
Zephiel
Niveau 10
09 juillet 2007 à 23:58:56

Hum...

srand varie donc en fonction du temps ?

Je vais essayé ta technique...par contre a quoi correspond RAND_MAX et ret ?

Zephiel
Zephiel
Niveau 10
10 juillet 2007 à 16:39:50

Désolé du double post...

J´aimerai savoir un truc, j´aimerai la fonction random avec des probabilité de sorti différente...

Par exemple j´aimerai que sorte :

2
3
4
5
6
7
8
9
10
10
10
10
11

Fvirtman
Fvirtman
Niveau 10
10 juillet 2007 à 17:10:31

tu veux un résultat entre 2 et 11.

regarde la formule de godrik :

float toto = ((float)rand())/RAND_MAX;
int ret = toto * (MAX-MIN) + MIN;

ici, tu mets donc MIN = 2 , MAX = 11
et ret sera un nombre entre 2 et 11 :-)

RAND_MAX est une constante de stdlib.h : elle existe, tu n´as pas a la définir. C´est la constante qui donne la valeur maximale du rand() qui peut changer d´un systeme a l´autre. Mais avec cette formule, ça marchera sur tout systeme.

Zephiel
Zephiel
Niveau 10
10 juillet 2007 à 17:18:12

Cette formule est mieux, cette fois c´est toujours le même nom qui apparait :)

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

using namespace std;

int main (int argc, char * const argv[])
{
int MAX = 12;
int MIN = 2;

float toto = ((float)rand())/RAND_MAX;
int ret = toto * (MAX-MIN) + MIN;
cout << ret;

return 0;
}

Compiler sur Xcode ça me met :
2

Et je recommence ça fait toujours des 2...que des 2... :(

Fvirtman
Fvirtman
Niveau 10
10 juillet 2007 à 17:26:28

n´oublie pas :

srand(time(NULL)); // #inclue <time.h>

au début de ton programme.

Si tu consideres le random comme un sac dans lequel tu tires des jetons, le srand(time(NULL)) "brasse" le sac : sinon, tu as toujorus la meme séquence.

Il s´appuie sur le temps du PC pour brasser le sac : ça, ça dépend des algos théoriques du rand qu´il y a derriere !

Zephiel
Zephiel
Niveau 10
10 juillet 2007 à 18:03:18

Erf...toujours pareil...

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

using namespace std;

int main (int argc, char * const argv[])
{
int MAX = 12;
int MIN = 2;
srand(time(NULL));

float toto = ((float)rand())/RAND_MAX;
int ret = toto * (MAX-MIN) + MIN;
cout << ret;

return 0;
}

Ca m´affiche toujours 2, 2, 2, etc... :(

alera
alera
Niveau 4
11 juillet 2007 à 15:45:50
  1. include <stdio.h>
  2. include <time.h>
  3. define MIN 2
  4. define MAX 12

int main(int argc, char *argv[])
{
srand(time(NULL));
int n=0;
n= (rand() % (MAX - MIN + 1 )) + MIN;
printf("%d",n);
system("pause");
return 0;
}

j´ai jamias le meme resultat essaye ca

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