Bonjour, restons simples. Le principal est d'obtenir une position du savon de manière équilibrée et inconnue des deux adversaires. Pour cette raison, l'algorithme de caloubugs a été retenu.dprtl a écrit : ↑29 mars 2021 20:52 J'ai quelques doutes sur le tirage pseudo-aléatoire initial. Quel est l'intervalle des valeurs acceptables pour la semence ? Combien de fois devra tourner l'algorithme récursif ? Est-ce que l'on doit procéder à deux tirages successifs pour X et Y ? Qu'est-ce qui garantit que les résultats seront identiques sur toutes les machines ? Le programme en Basic C61 ci-dessous correspond-il à la bonne interprétation ?
La semence A pourrait-être comprise entre 1 et 60, pour le tirage d'une position de la savonnette entre 0 et 31, convertie en coordonnées X,Y. Voici un tirage, par exemple :Code : Tout sélectionner
10 INPUT A 20 A=FRAC((A+PI)^5) 30 A=INT(A*32) 40 Y=INT(A/8) 50 X=1+A-Y*8 60 Y=Y+1 70 PRINTA;X;Y
Code : Tout sélectionner
?3.7 14 7 2
Le tirage peut alors être récursif ou non, concerner les deux coordonnées en même temps ou non, peu importe.
Et si un concurrent pense qu'il faut donner une semence entre deux entiers précis (assez distants tout de même, comme dans ton cas), eh bien il suffit de le préciser au moment de commencer la manche.
Je précise : les deux machines n'ont pas à connaître le tirage ! une seule suffit, puisqu'une seule doit gérer, à chaque manche, le déplacement du savon ! Ta question me chiffonne et je me demande si tout le monde a bien compris cela : à chaque manche, alternativement, une machine lance le savon et gère son déplacement, et les deux jouent pour le trouver.
Est-ce clair ?
J'ajoute que la semence A dont tu parles est en fait le résultat de la division des deux semences des deux adversaires. Il te suffit donc de prévenir ton adversaire en lui disant que les deux semences (la tienne et la sienne) ne peuvent être de soixante fois supérieure ou inférieure l'une à l'autre, dans ton cas où tu ne peux avoir A supérieur à 60.