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

Hasard pas si hasardeux? [C++]

-pedrolan-
-pedrolan-
Niveau 7
05 novembre 2005 à 23:10:25

Bonsoir.

Je voudrais savoir comment faire, en C++, pour créer un hasard, comme rand, mais qu´il y ai plus de chances dans certains cas que dans d´autres.
Je m´explique, je suis entrain de programmer un jeu de baston en 2D, et lorsque je veux gérer les actions des ennemis lorsqu´on tout seul, je veux qu´il donne des coups au hasard, mais évidemment il faudrait qu´il y ait plus de chances que le coup soit banal, genre un simple coup de poing, que ce soit un coup spécial, genre une boule de feu...
Comment faire svp?

T_Lannister
T_Lannister
Niveau 5
05 novembre 2005 à 23:19:23

Bah c´est simple, prenons deux coup, un faible et un fort qui devra être sorti moins souvent que le faible. Tu tire par exemple un chiffre x entre 1 et 100 et tu analyse le résultat:

- si c´est entre 1 à 75 c´est le faible;
- de 75 à 100 c´est le fort...

-pedrolan-
-pedrolan-
Niveau 7
05 novembre 2005 à 23:20:45

Ah bah oui pas bête :) merci beaucoup!

godrik
godrik
Niveau 30
06 novembre 2005 à 00:25:54

faisons des stats! OUI DES STATS!
je te propose une autre technique de génération.
tu considère les coups comme des éénement rare.
tu définit que le PC sait faire tous les coups et qu´il fais le coups k en moyenne tous les t_k unité de temps de ton jeu.
quand le personnage donne un coup de type k, tu génère la prochaine date a laquel il tape avec une exponentiel de paramètre t_k.
avec ca tu devrais avoir eds coups super difficile a révoir.
si tu veux des explication, je peux détailler.

(oui j´aime les stats et la génération de nmbre aléatoire et alors! :) )

dnob700
dnob700
Niveau 10
06 novembre 2005 à 02:20:35

Et si plusieurs coup son programmé au même moment ?

En gérant bien les valeurs avec l´autre méthode, on arrive exactement au même résultat, mais bien plus simplement.

Vengeur41
Vengeur41
Niveau 10
06 novembre 2005 à 10:22:11

Le vrai hasard n´existe pas en info.
Déjà, dans le main, met, en 3ème ou 4ème instruction :
srand(time(NULL));

Ca sera dja mieux...

godrik
godrik
Niveau 30
06 novembre 2005 à 11:31:31

Vengeur: défini le hasard avant de dire qu´il n´existe pas.

dnob: je ne suis pas d´accord, tu ne precise pas dans la premiere mthode le temps séparant deux coups. De plus dans le premier les coups arrivent de facon uniforme et sont donc bien plus prévisible que dans la deuxieme méthode

-pedrolan-
-pedrolan-
Niveau 7
06 novembre 2005 à 13:03:17

Je ne vois pas pourquoi ne pas utiliser la première méthode...

godrik
godrik
Niveau 30
06 novembre 2005 à 13:30:28

le problème vient de l´intervalle entre deux coups.
la première méthode suppose que tous les x secondes, je fais un tirage aléatoire pour savoir quel coup va être donné.
Ceci est extrement prévisible et ne convient donc pas directement à ce problème.

dnob700
dnob700
Niveau 10
06 novembre 2005 à 13:33:47

Tu peut faire un autre tirage pour savoir au bout de combien de temps vient le coup suivant, sans se préocuper du type de coup, qui lui est déterminer par la première méthode.

Ta méthode ne convient pas vraiment non plus au problème puice que plusieurs coup peuvent être déclanché en même temps. où avec des intervalles les séparant extrémement cours.

godrik
godrik
Niveau 30
06 novembre 2005 à 13:44:35

en même temps, c´est competement impossbile (improbable).
avec des intervalle extrmenent cours, c´est la commande du coup qui va etre extrement cours, mais il y un moteur de jeu derriere qui empeche les coups d´etre trop rapproché, le moteur va donc delay-er le coup pour qu´il soit coherent.

En ce qui concerne l´autre tirage, le tirage sera lui aussi aléatoire uniforme dans un intervalle de temps. ce qui te permettra de gruger l´IA comme un bourrin parceque tu pourra facielment estimer la date de on prochain coup.

En effet, la date du prochain coup dépendra UNIQUEMENT de la date du dernier coup et la probabilité d´arrivé d´un coup augmentera avec le temps pendant le quel l´ennemi n´a pas donné de coup.

Tout ces problèmes ne se poseront pas avec ma méthode.

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