1

bon voila je cherche un algo pour tirer une case sur deux sur un plato de jeu avec un random je n'ai pas trouve alors si vous pouvez m'aider merci

2

Une case sur deux exactement, dans l'ordre ? essaie un test avec

index & 1

Ca teste le dernier bit de ton index sur ton tableau (une dimension), donc la parité...

3

Si ton tableau est rempli de 0, et qu'il contient n cases :
p reçoit 0
Tant que p < n/2
k recoit rand(n)
si tab.(k) = 0 alors tab.(k) reçoit 1 et p est incrémenté.
avatar
I'm on a boat motherfucker, don't you ever forget

4

Moumou :
tab.(k)


#caml# love

5

alors eu je vai preciser je travaille en C et mon plateaux est de 9x9 et les cases sont tirer au hasard avec x=random(9) et y=random(9) voila!! c'est a partir de ca que je voudrai faire une parite pour qu'il ne tire qu'une case sur deux mais jy arrive pas

6

Atta, tu veux faire quel programme ?
Dis tous tes paramètres, donne tes sprites etc. et on te le fais si tu veux roll

(il viennent de te filer un algo)

7

x = random(9)
y = 2*random(4)+x%2 (ou un truc du genre)?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

8

un truc du genre oui mais faut pas oublier que 9=impair donc avec ton truc tu oublis une colonne
y=random(9);
x=random(4+!(y&1))<<1+y&1;

9

ah.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

10

eu jfg ca marche pas ton code!! ca fait un boucle infini au bout d'un moment!!

11

j'ai toujours pas compris ce que tu voulais faire, en fait. Tu veux pas montrer ton code ?
avatar
I'm on a boat motherfucker, don't you ever forget

12

bon alors j'ai un plateau comme ce ci de 9x9
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX

et donc je genere un nombre aleatoie entre 0 et 8 en x et en y pour qu'il tire sur un case mai je veut qu'il ne soit tire que des cases comme ce ci
X X X X X
 X X X X
X X X X X
 X X X X
X X X X X
 X X X X
X X X X X
 X X X X
X X X X X

mai je n'arrive pas a trouve d'algo pour ce faire donc oila pourquoi je sollicite votre aide merci

13

int a = rand(9*9 / 2)*2 ;
x = a % 9 ;
y = a / 9 ;

Ca te convient ça ?
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

14

hum boucle infini apres deux tire!!!!

15

cerede2000 a écrit :
bon alors j'ai un plateau comme ce ci de 9x9
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX

et donc je genere un nombre aleatoie entre 0 et 8 en x et en y pour qu'il tire sur un case mai je veut qu'il ne soit tire que des cases comme ce ci
X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X
mai je n'arrive pas a trouve d'algo pour ce faire donc oila pourquoi je sollicite votre aide merci
Ben voilà, tout de suite, on comprend mieux !
Un petit schéma vaut souvent mieux qu'une grande explication (dixit mon prof de Physique de Spé hehe).
cerede2000 a écrit : alors eu je vai preciser je travaille en C et mon plateaux est de 9x9 et les cases sont tirer au hasard avec x=random(9) et y=random(9) voila!! c'est a partir de ca que je voudrai faire une parite pour qu'il ne tire qu'une case sur deux mais jy arrive pas
r une des 24 cases non marquées par X :do { x = rand ( 9 ) ; y = rand ( 9 ) ; } while ( !((x+y) % 2) ) ;Voici l'algorithme bête et méchant en réutilisant ton tirage pour avoi
Pour avoir au contraire une des 25 cases marquées d'un X, il suffit d'enlever la négation (caractère '!').
Le seul problème, c'est que cet algorithme a une probabilité non nulle de ne pas trouver de case valide en un temps fini, probabilité qui tend exponentiellement vers 0.
Mais bon, vu la vitesse de calcul, il faudrait vraiment utiliser toute la réserve de malchance disponible dans l'Univers pour ne rien trouver au bout de quelques microsecondes hehe.
Tiens, ça me rappelle le première cours de Physique Statistique de 1A où le prof, voulant démontrer par la pratique la 'nullité statistique du moment magnétique d'un grand système à deux états de spin', demande aux 10 élèves des premiers rangs de tirer chacun à pile ou face ... résultat : 10 piles grin !

A l'inverse, l'algorithme de bobti89 marchera du premier coup ... à un petit détail près.
Comme on a a = 2 * rand ( 40 ) ;, la toute dernière case, dans le coin x=y=8 (soit a == 80), ne sera jamais choisie.
Il faut donc a = 2 * rand ( 41 ) ; ...
Plus exactement, dans la parenthèse du rand, il faut arrondir à la valeur entière supérieure le résultat (Xmax * Ymax / 2) (ça existe, ceil, en C ?).
Et de manière toute aussi générale, je préciserai que la valeur 9 utilisée pour le calcul de x et y correspond en fait à Xmax (Ymax n'intervient que dans le calcul de a).

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

16

Le seul problème, c'est que cet algorithme a une probabilité non nulle de ne pas trouver de case valide en un temps fini, probabilité qui tend exponentioellement vers 0.
trifus
Je suppose que tu veux dire que la probabilité de ne rien avoir trouvé au bout d'un temps t décroit exponentiellement par rapport à t, mais si c'est bien le cas, alors la probabilité de ne pas trouver en un temps fini *est* nulle triso
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

17

eu desole Ethaniel mais des le premier coup boucle infini!!!!! et c bien comme ceci
X X X X X
 X X X X
X X X X X
 X X X X
X X X X X
 X X X X
X X X X X
 X X X X
X X X X X

et non comme cela

X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X

18

Sally a écrit :
Le seul problème, c'est que cet algorithme a une probabilité non nulle de ne pas trouver de case valide en un temps fini, probabilité qui tend exponentioellement vers 0.
trifus Je suppose que tu veux dire que la probabilité de ne rien avoir trouvé au bout d'un temps t décroit exponentiellement par rapport à t,
Oui, c'est exactement ça.
mais si c'est bien le cas, alors la probabilité de ne pas trouver en un temps fini *est* nulle triso
Elle est nulle pour un temps infini.
Pour un temps fini, elle n'est pas nulle ...
Excepté évidemment si le nombre d'itérations par unité de temps est infini (puisque la loi de décroissance est en fait basée sur le nombre d'itérations, P=(25/49)^N ou P=(24/49)^N selon le cas), mais le jour où un processeur tournant à ∞ Hz sort, j'achète !
cerede2000 a écrit : eu desole Ethaniel mais des le premier coup boucle infini!!!!!
Où ça, boucle infinie ?
Dans le do ... while ?
Soit tu n'as pas recopié exactement ce que j'ai mis, soit il y a une erreur de transtypage.
Dans ce cas, remplace la condition dans le while par ((x+y) % 2) == 0 ou ((x+y) % 2) == 1 selon le cas.
et c bien comme ceci
X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X

et non comme cela

X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X
X X X X
X X X X X
Merci, c'est bon, j'avais compris fou !
Je reprends mon explication :
- en utilisant do { ... } while ( (x+y) % 2 ) ; ou do { ... } while ( ((x+y) % 2) == 1 ) ; X X X X X X X X X X X X X X X X X X
, tu tireras au hasard une de ces cases :X X X X X
 X X X X
X X X X X
 X X X X
X X X X X
- en utilisant do { ... } while ( !((x+y) % 2) ) ; ou do { ... } while ( ((x+y) % 2) == 0 ) ; X X X X X X X X X X X X X X X X X X
, tu tireras au hasard une de ces cases : X X X X
X X X X X
 X X X X
X X X X X
 X X X X
Saisis-tu mieux la nuance ?

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

19

eu je voit aucune nuance lol!! mais ca a l'aire de marche!!

20

Je parlais de la nuance dans les cases atteintes ...
Dans un cas, il y a 25 cases, dont les coins, et dans l'autre, 24 cases, et aucun coin.
Et les deux tableaux sont complémentaires.

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

21

Ethaniel
:
Sally a écrit :
mais si c'est bien le cas, alors la probabilité de ne pas trouver en un temps fini *est* nulle triso
Elle est nulle pour un temps infini.
Pour un temps fini, elle n'est pas nulle ...
ah OK, tu voulais dire « quel que soit t fini, la probabilité de ne pas trouver en un temps t est non nulle »... mais tu t'es mal exprimé, parce que ce que tu as dit voulait plutôt dire « la probabilité de l'événement "quel que soit t fini, on ne trouve pas en un temps t" est non nulle », et ça, c'était faux ^^
(ceci parce que « on trouve en un temps fini » signifie exactement : il existe un temps t en lequel on trouve, et la négation en est bien : quel que soit t fini, on ne trouve pas en un temps t ^^)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

22

en fait il aurait fallu qu'au lieu de « un temps fini » tu dises par exemple « un temps fini *donné* », là c'eût été bon happy
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

23

ah ok en tou ca merci ca marche!!

24

Sally a écrit :
ah OK, tu voulais dire « quel que soit t fini, la probabilité de ne pas trouver en un temps t est non nulle »... mais tu t'es mal exprimé, parce que ce que tu as dit voulait plutôt dire « la probabilité de l'événement "quel que soit t fini, on ne trouve pas en un temps t" est non nulle », et ça, c'était faux ^^ (ceci parce que « on trouve en un temps fini » signifie exactement : il existe un temps t en lequel on trouve, et la négation en est bien : quel que soit t fini, on ne trouve pas en un temps t ^^)
Euh, oui, c'est sans doute une manière d'interprêter sous forme mathématique ce que j'avais énoncé sous forme d'un langage naturel (en l'occurence le français métropolitain hehe).

Voici ce que je voulais exactement dire :
∀T∈ℝ⁺,∃a∈]0;1]/ ∀t∈[0;T],Proba(A(t))≥a, avec A(t) l'événement "aucune case valide n'a encore été trouvée à l'instant t"
Et encore, ceci n'est que la limite continue (avec un temps T dans ℝ⁺, donc un infini en ℵ₁) de ce que je devrais en fait exprimer sur une droite discrètisée (avec un nombre d'itérations N dans ℕ, donc un infini en ℵ₀).
en fait il aurait fallu qu'au lieu de « un temps fini » tu dises par exemple « un temps fini *donné* », là c'eût été bon happy
Exactement, c'est le mot qui manquait pour exprimer le ∀T∈ℝ⁺ en tout début de proposition !
Mais bon, quand j'ai énoncé mon truc, je n'avais pas la formulation mathématique en tête ...
Et puis je cherchais à rester accessible à tous tout en évitant de rester au niveau basique de l'argumentation.

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

25

euh en même temps là je voudrais pas dire mais tu alourdis inutilement parce que ta proposition tu peux l'écrire ∀T∈ℕ, Proba(A(T))> 0 trigic
(vu que si on n'a pas encore trouvé à un certain instant c'est qu'on n'avait pas trouvé avant)
et sinon, c'est quoi le rapport entre les cardinaux et les limites au juste ? trifus c'est pour le plaisir de mettre tout plein de caractères unicode c'est ça ?
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

26

ou pour montrer qu'il connait les cardinaux infinis ...

27

En effet, c'est inutilement alourdi, mais j'avais mal compris ce que tu avais compris, et comme tu parlais de la négation d'une proposition qui transformait un 'il existe' en un 'pour tout' (il existe un temps t en lequel on trouve, et la négation en est bien : quel que soit t fini, on ne trouve pas en un temps t), j'ai cherché une formulation utilisant un 'il existe'.
Mais bon, il ne faut pas trop m'en vouloir, ça fait déjà deux ans que j'ai arrêté les Maths dures (legalize the Maths douces triso !) ...

Et sinon, en effet, l'∐ℕ∣∁ō∂ヨ, ça powatte trop tritop !!!

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

28

neutral

29

Si on attaque le problème dans l'autre sens: au lieu de tirer un nombre qui convienne, on tire un nombre et on le fait convenir...

Par exemple, tu fait deux tableau de (9*9/2) cases (celles que tu veut tirer), un pour les x, et l'autre pour les y. Quand tu tire un nombre, tu prends le x et le y correspondant dans le tbleau et tu as ta case.

Exemple:

numerotation des cases: (x:colonnes, et y:lignes)
__|1 2 3 4 5 6 7 8 9
1:00--01--02--03--04 (1ere ligne)
2:--05--06--07--08--
3:09--10--11--12--13
4:--14--15--16--17--
5:....

-- represente une case que l'on ne doit pas tirer
tu fait les tableaux suivant :
case_x={1,3,5,7,9,2,4,6,8,1,3,5,7,9,2,4,6,8,...}
case_y={1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,...}

par ex: tu tire 3, c'est la case (7,1) (3 est la quatrieme valeur en comptant le zero), ca marche.

l'avantage de cette methode est que c'est simple, et que ca marche avec tous les trucs biscornus (qui ne sont pas une case sur deux...). Tu doit avoir moyen de trouver un lien mathématique entre le numero d'indice dans le tableau et le numero qui va avec, pour ce cas precis.
Arnaud

30

C'est a peu près ce que je donne au ./13 non ?
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici