chino18
Messages postés82Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 1 avril 2011
-
4 févr. 2005 à 10:38
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 2006
-
7 févr. 2005 à 15:27
Bonjour à tous.
Je programme acuellement une sorte de
pacman. J'ai une grille avec un personnage à contrôler et
3 ennemis qui se déplacent de
manière aléatoire (jusqu'à trouver la trace
de pacman).
Un ennemi (Who) dérive d'une classe
Perso qui elle même dérive de la classe Thread. Chaque ennemi
correspond donc à un Thread et se déplace de manière indépendante.
public class Who extends Perso{
boolean suitPiste=false;
public Who( String str, int xx, int yy, int v,Grille gr){
pour le choix de la direction, j'utilise un random;
Ce que je ne comprend pas, c'est
pourquoi, dans la majorité des cas, le nombre retourné par le random
est identique pour chaque ennemi a un même instant.
Je me demande s'il ne s'agit pas d'un problème de synchronisation.
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 7 févr. 2005 à 15:27
Salut
De rien !
Dommage que ce soit dans le cahier on ne fais jamais comme ça et cela pour un grand nombre de raisons, d'ailleurs il n'y a aucuns avantages à faire de cette manière, je dirais même qu'il n'y a que des désavantages !!! Petit problème de conception (on ne fait jamais comme ça dans un jeu !!!!) de la part de l'auteur !!!
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 7 févr. 2005 à 10:48
Salut
Cela n'a rien à voir avec tes threads rassure toi !!! Egalement le fait de mettre le traitement de la logique d'une entité du jeu dans une thread est une forte mauvaise idée, tu aurais du appellés la logique de tes personnes de façon controlé et séquentiel selon l'ordre de traitement que tu réalises. De plus tu risque de mettre facilement des bugs de synchronisation ...
An instance of this class is used to generate a stream of pseudorandom numbers. The class uses a 48-bit seed, which is modified using a linear congruential formula. (See Donald Knuth, The Art of Computer Programming, Volume 2, Section 3.2.1.)
If two instances of
Random
are created with the same seed, and the same sequence of method calls is made for each, they will generate and return identical sequences of numbers. In order to guarantee this property, particular algorithms are specified for the class <TT>Random</TT>. Java implementations must use all the algorithms shown here for the class <TT>Random</TT>, for the sake of absolute portability of Java code. However, subclasses of class <TT>Random</TT> are permitted to use other algorithms, so long as they adhere to the general contracts for all the methods.
The algorithms implemented by class <TT>Random</TT> use a <TT>protected</TT> utility method that on each invocation can supply up to 32 pseudorandomly generated bits.
Many applications will find the
random
method in class
Math
simpler to use. (It's better for you i think)
Maintenant regarde à nouveau ton code, tu devrais comprendre (je t'aide un peu ) :
int choixdir;
Random nbrealea= new Random(); //
choixdir=nbrealea.nextInt(4); //
while(!positionValide(choixdir)){ // c'est la que
choixdir=nbrealea.nextInt(4); // ca merdouille
La solution n'est pas compliqué à mettre en place, je te laisse le soind e le faire ...