Aller au contenu
  • 0

Mon skript est-il bien aléatoire? Sinon comment faire?


Question

Posté(e)

Hey ^^

 

Avec l'aide d'un membre de cette communauté que je remercie pour m'avoir débloqué, j'ai avancé mon skript pour l'amélioration d'un MiniJeux, mais voilà... j'ai un petit problème!

 

En effet, mon but est de proposer via une commande plusieurs solutions dont une qui est tirée au hasard et qui affectera le joueur. Mon problème réside dans le fait de proposer des solutions avec des probabilités identiques... mais je ne suis pas certain que cela équitablement réparti pour ça!

 

J'étais partis au début sur une version comme (je suis débutant en Skript)

 

command /----:
description: ---
trigger:
	chance --%:
		solution
	 chance --%:
		 solution
	    chance --%:
		      solution
	    chance --%:
		      solution
	    chance --%:
		      solution

 

Mais je me suis rendu compte après plusieurs tests que ce système de probabilité ne marchait pas comme j'en avais l'habitude sur d'autres systèmes (comme la probabilité de matériaux sur World Edit). En effet il va regarder un par un chaque "chance" et dans --% des cas donner la solution, ce qui donne un truc du coup totalement foireux étant donné qu'il cumule les chances. Du coup j'ai refais un nouveau système, plus compliqué mais normalement plus efficace!

 


command /-----:
description: ----
trigger:
	chance of ---%:
	else:
		chance of ---%:
		else:
			chance of ----%:
			else:
				chance of ---%:
					else:


 

J'avais vu des systèmes où l'on assignait un nombre pour une variable entre 0 et 8 (par exemple) et que cela sélectionner ensuite une solution avec le même nombre, mais je n'ai pas réussi à l'intégrer dans mon skript :(

 

Je voudrais donc savoir si ce dernier code est vraiment aléatoire, et dans le cas contraire comment l'améliorer. J'aurai bien pu faire des tests mais cela aurait pris trop de temps... merci d'avance pour l'aide!

7 réponses à cette question

Messages recommandés

  • 0
Posté(e)

J'ai fais un test et il s'avère que la dernière solution apparaît beaucoup trop souvent, les autres sont un peu près équilibré en probabilité. La dernière (qui n'est pas affiché dans le code au-dessus) étant celle qui est choisis quand aucune autre solution n'a été choisit, mais sa probabilité est égale à toutes les autres réunies, donc si vous avez une solution :p

  • 0
Posté(e)

Bonjour,

Je me suis déjà posé la question et le meilleure système et celui-ci, il faut bien-sure l'adapter mais en gros c'est ça. /!\ Attention l'aléatoire existe pas on peut seulement sans rapprocher.

loop 25 times: #25% chance d'être choisie.
   add 1 to {_random::*}
loop 50 times: #50% chance d'être choisie.
   add 2 to {_random::*}
loop 15 times: #15% chance d'être choisie.
   add 3 to {_random::*}
loop 10 times: #10% chance d'être choisie.
   add 4 to {_random::*}
loop 5 times: #On loop 5 fois pour un peut plus d'aléatoire.
   set {_result} a random element out of {_random::*}

 

Edit: Il est possible de faire encore bien plus random, mais dans se cas il faut créer une fonction.

  • 0
Posté(e)

Merci pour ta réponse je vais essayé ça ^^

Par contre pour chaque solution, il faut mettre un truc du genre:

 

if {_result} is 4
ma solution
if {_result} is 5

 

Je trouve pas l'expression exacte qu'il faut mettre ^^

  • 0
Posté(e)

Pour moi cela ne marche pas ><

L'unique erreur par Skript est pour la partie "set {_result} a random element out of {_random::*}".

 

Mon code donne ceci:

command /-----:
description: ----
trigger:
	loop 10 times:
		add 1 to {_random::*}
	loop 10 times: 
		add 2 to {_random::*}
	loop 10 times:
		add 3 to {_random::*}
	loop 10 times:
		add 4 to {_random::*}
	loop 10 times:
		add 5 to {_random::*}
	loop 10 times:
		add 6 to {_random::*}
	loop 10 times:
		add 7 to {_random::*}
	loop 10 times:
		add 8 to {_random::*}
	loop 10 times:
		add 9 to {_random::*}
	loop 10 times:
		add 10 to {_random::*}
	loop 5 times:
		set {_result} a random element out of {_random::*}
	if {_result} = 1:
		...
	if {_result} = 2:
		...
	if {_result} = 3:
		...
	if {_result} = 4:
		...
	if {_result} = 5:
		...
	if {_result} = 6:
		...
	if {_result} = 7:
		...
	if {_result} = 8:
		...
	if {_result} = 9:
		...
	if {_result} = 10:
		...

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.