import java.util.*; class BlocActivationPerdant { public int valeur; public int retour; public int adresseDeRetour; public BlocActivationPerdant(int v,int adr) { valeur = v; adresseDeRetour = adr; } } public class Prog2Traduit { public static void main(String []a) { boolean fin = false; int ic = 1; Scanner s = new Scanner(System.in); // on admet l'existence de cet objet Stack<BlocActivationPerdant> pileAppel = new Stack<BlocActivationPerdant>(); BlocActivationPerdant ba = null; // 0: v, 1: b int []mem = new int[2]; while (!fin) { switch(ic) { case 1: System.out.print("Donnez un nombre : "); ic++; break; case 2: mem[0] = s.nextInt(); ic++; break; case 3: ba = new BlocActivationPerdant(mem[0],4); pileAppel.push(ba); ic = 100; break; case 4: ba = pileAppel.pop(); mem[1] = ba.retour; ic++; break; case 5: if (mem[1]==1) ic = 1; else ic++; break; case 6: System.out.println("Gagné!"); fin = true; break; case 100: ba = pileAppel.peek(); ic++; break; case 101: if (ba.valeur%2==1) ic++; else ic = 103; break; case 102: System.out.println("Raté!"); ic++; break; case 103: if (ba.valeur%2==1) ba.retour = 1; else ba.retour = 0; ic++; break; case 104: ic = ba.adresseDeRetour; break; } } } }