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();
}
}
|