Je fais une petite fonction AS3 de la conjecture de Collatz. Voici le code:Le texte d'entrée change un entier? AS3
import flash.events.Event;
import flash.events.MouseEvent;
var numb:int=0
var amount:int=0
button.addEventListener(MouseEvent.CLICK, buttonclick)
function buttonclick(buttonclicked:MouseEvent):void{
numb=int(input.text)
trace(numb)
amount=0
}
stage.addEventListener(Event.ENTER_FRAME, equate)
function equate(equate:Event):void{
dynam.text=amount.toString() + "\n" + numb.toString();;
if(numb !=0 && numb !=1){
if(numb % 2 == 0){
numb=numb/2
amount+=1
}
else{
numb=numb*3+1
amount+=1
}
}
}
Cependant, parfois textinput devient un nombre négatif.
123123123123 se transforme en -1430928461
12312312312321312 se transforme en -1715645152
Et ainsi de suite.
Je ne sais pas pourquoi, mais je pense qu'il doit faire avec
numb=int(input.text)
Mais je ne veux pas faire valeur absolue, parce que l'équation rendrait les mauvais résultats. Si vous voulez arrêter le nombre négatif (et tester vous-même) faire:
if(numb !=0 && numb !=1 && numb>1)
Au lieu de
if(numb !=0 && numb !=1)
Cela a fonctionné !!! Je vous remercie! –