Quizz_Engine.java :  » App » signes » com » yuto » signes » Android Open Source

Android Open Source » App » signes 
signes » com » yuto » signes » Quizz_Engine.java
package com.yuto.signes;


import java.util.*;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Quizz_Engine extends Activity {

  private static final String TAG = "Signes_LSF";


  HashMap<Integer, Mot> reponse ;
  ArrayList<Mot>  listeMots;
  public static int BonnesReponses;
  int Nb_Signes;
  int Nb_proposition=5;
  int signeActuel=0;
  static boolean goodGuess;
  HashMap<Integer,ArrayList<Mot>> quizz_set;
  

  @Override
  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setTitle("Signes: Quizz");
    
    BonnesReponses=0;
    Nb_Signes=Quizz.getNb_Signes();
    listeMots=Quizz.getListeMot();
    
    
    reponse=new HashMap<Integer,Mot>();
    quizz_set=new HashMap<Integer,ArrayList<Mot>>();;


    
    for(int cpt1=0;cpt1<Nb_Signes;cpt1++){
      shuffleArray(listeMots);
      reponse.put(cpt1, listeMots.get(0));
      ArrayList<Mot> t=new ArrayList<Mot>();
    
      for(int cpt=0;cpt<Nb_proposition;cpt++) { 
        
        t.add(listeMots.get(cpt));
        
      }
      shuffleArray(t);
      quizz_set.put(cpt1,t);
      listeMots.removeAll(quizz_set.get(cpt1));
      Log.v(TAG, "rep =="+reponse.get(cpt1).toString());
      Log.v(TAG, "set==="+quizz_set.get(cpt1).toString());
      
    }
    
    main();
  }
  
  @Override
  public void onResume() {
    super.onResume();
  }

  @Override
  public void onDestroy() {
    super.onDestroy();
  }
  private  void main() {

    setContentView(R.layout.quizz_transition);
    Button btLaunch = (Button) findViewById(R.id.ContinueQuizz);
    Button btn = (Button) findViewById(R.id.revoir);
    Button quit = (Button) findViewById(R.id.QuitQuizz);
    TextView bonnerep = (TextView ) findViewById(R.id.BonneRep);
    TextView txt_reponse = (TextView ) findViewById(R.id.Result);
    TextView actuel = (TextView ) findViewById(R.id.TextView03);
    TextView bonnerep2 = (TextView ) findViewById(R.id.reponse);
    TextView oui_non = (TextView ) findViewById(R.id.oui_non);
    
    View.OnClickListener handler = new OnClickListener() {
      public void onClick(View v) {
        //Log.v(TAG, "signes_actuel on click="+signeActuel);
        switch (v.getId()) {
        case R.id.ContinueQuizz:
          if(signeActuel==0){
            Quizz_Engine.this.finish();
          }
          else {
            
            
            try {startActivityForResult(Init.quizz3, 1);}
            catch ( ActivityNotFoundException e) {Log.e(TAG,"Impossible de dmarrez quizz3");}
          }
          break;
        case R.id.revoir:
          if(signeActuel!=0){
            Init.playVideo(reponse.get(signeActuel-2),true);
          }
          
          break;
        case R.id.QuitQuizz: 
          signeActuel=0;
          showDialog(0);
        break;
        
        }
      }
    };

    quit.setOnClickListener(handler);
    btLaunch.setOnClickListener(handler);
    btn.setOnClickListener(handler);
    
    if(signeActuel==0) {
      
      try {
        Quizz3.setQuizz(quizz_set.get(signeActuel),reponse.get(signeActuel));
        startActivityForResult(Init.quizz3, 1);
      }
      catch ( ActivityNotFoundException e) {
        Log.e(TAG,"Impossible de dmarrer quizz3");
      }
      signeActuel++;

      
    }
    else if(signeActuel<Nb_Signes & signeActuel!=0 ) {

      Quizz3.setQuizz(quizz_set.get(signeActuel),reponse.get(signeActuel));
      bonnerep.setText("Bonnes Rponses:"+BonnesReponses);
      txt_reponse.setText("La bonne rponse est:    "+reponse.get(signeActuel-1));
      actuel.setText("Signe "+(signeActuel)+"/"+Nb_Signes);
      bonnerep2.setText(reponse.get(signeActuel-1).toString());
      btLaunch.setText("Continuer");
      
      if(goodGuess){oui_non.setText("OUI");oui_non.setTextColor(Color.GREEN);}
      else {oui_non.setText("NON");oui_non.setTextColor(Color.RED);}
      signeActuel++;
    }
    else {
      txt_reponse.setText("Bonnes Rponses:"+BonnesReponses);
      bonnerep2.setText(reponse.get(signeActuel-1).toString());
      
      btLaunch.setText("Nouveau Quizz");
       
      if(goodGuess){oui_non.setText("OUI");oui_non.setTextColor(Color.GREEN);}
      else {oui_non.setText("NON");oui_non.setTextColor(Color.RED);}
      signeActuel=0;
    }
    

  }

  public static int setBonneReponses(int x, boolean guess) {
    goodGuess=guess;
    BonnesReponses=x;
    return BonnesReponses;
  }
  public static int getBonneReponses() {
    return BonnesReponses;

  }



  static void shuffleArray(ArrayList<Mot> ar)
  {
    Random rnd = new Random();
    for (int i = ar.size() - 1; i >= 0; i--)
    {
      int index = rnd.nextInt(i + 1);
      // Simple swap
      Mot a = ar.get(index);
      ar.set(index, ar.get(i));
      ar.set(i,a);

    }
  }  

  @Override
  protected void onActivityResult(int requestCode, int resultCode,Intent data) {
    if (resultCode==RESULT_CANCELED){
      Log.v(TAG, "Quiz Canceled");
      finish();
    }
    else{
    if (requestCode == 1) {
      setBonneReponses(data.getExtras().getInt("Bonnes_Rep"),data.getExtras().getBoolean("Good Guess"));
      main();

    }
    }

  }

  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK){ 
      showDialog(0);
    }

    return true;
    //return super.onKeyDown(keyCode, event);
  }
  @Override
  protected Dialog onCreateDialog(int id) {

    return new AlertDialog.Builder(Quizz_Engine.this)
    .setIcon(R.drawable.quizz)
    .setTitle("Quitter?")
    .setMessage("Voulez-vous vraiment quitter le Quizz?")
    .setPositiveButton("Oui", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
      
        finish();
      
      }
    })
    .setNegativeButton("Non", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {

        /* User clicked Cancel so do some stuff */
      }
    })
    .create();
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.