/**
 * Created by zulupero on 20/06/16.
 */
public class Bug extends Buggle {
    public Bug(int posx, int posy, int dir) {
        super(posx, posy, dir);
    }

    public void enRoute() throws InterruptedException {
            double op1, op2; // les opérandes
            char operateur;  // l'opérateur
            double resultat = 0.0; // pour ranger le résultat

            while (Main.input.hasNext()) { // lit une ligne du fichier
                op1 = Double.valueOf(Main.input.next());
                operateur = Main.input.next().charAt(0);
                op2 = Double.valueOf(Main.input.next());

                /*
                 * version 1
                 * avec des if, lisible mais toutes les alternatives
                 * sont testées
                 *
                if (operateur == '+'){ // addition
                    resultat = op1 + op2;
                }
                if (operateur == '-'){ // soustraction
                    resultat = op1 - op2;
                }
                if (operateur == '*'){ // multiplication
                    resultat = op1 * op2;
                }
                if (operateur == '/'){ // division
                    resultat = op1 / op2;
                }
                message(""+ op1 + " " + operateur + " " + op2 + " = " + resultat);
                */

                /*
                 * version 2
                 * avec des if et des else if de sorte à ne plus tester
                 * les alternatives suivantes dès qu'on a trouvé le bon opérateur.
                 * Moins lisible mais plus performant et plus logique.
                 *
                if (operateur == '+'){ // addition
                    resultat = op1 + op2;
                }else if (operateur == '-'){ // soustraction
                    resultat = op1 - op2;
                }else if (operateur == '*'){ // multiplication
                    resultat = op1 * op2;
                }else  // division
                    resultat = op1 / op2;

                message(""+ op1 + " " + operateur + " " + op2 + " = " + resultat);
                */

                /*
                 * version 3
                 * avec un switch : la meilleur solution ici
                 */
                switch(operateur){
                    case '+':
                        resultat = op1 + op2;
                        break;
                    case '-':
                        resultat = op1 - op2;
                        break;
                    case '*':
                        resultat = op1 * op2;
                        break;
                    case '/':
                        resultat = op1 / op2;
                }
                message(""+ op1 + " " + operateur + " " + op2 + " = " + resultat);

            }
    }
}
