Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.21 KB | None | 0 0
  1. package com.cite.natha.devoir3;
  2. /****************************************************/
  3. // Nom du fichier: Devoir 3
  4. // Programmeur: Nathaniel Larouche
  5. // Historique:
  6. // 04.26.2018 / Nathaniel Larouche
  7. /****************************************************/
  8.  
  9. import android.content.Intent;
  10. import android.content.pm.PackageManager;
  11. import android.content.pm.ResolveInfo;
  12. import android.graphics.Color;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.os.Bundle;
  15. import android.util.Log;
  16. import android.view.View;
  17. import android.widget.Button;
  18. import android.widget.ImageView;
  19. import android.widget.TextView;
  20. import android.widget.Toast;
  21.  
  22. import java.util.ArrayList;
  23. import java.util.List;
  24.  
  25. public class MainActivity extends AppCompatActivity {
  26. private int Requete = 56;
  27. private int CodeImage = 0;// Code de l'image sert a savoir quel est l'image qui a été selectionner.(Voir plus bas)
  28.  
  29. //Declaration des array pour les nomRandom et le nom des photos
  30. private String NomMarvelPhoto[]={"","",""};
  31. private String NomMarvelRandom[]={"","",""};
  32.  
  33. //Declaration des view
  34. public ImageView image1;
  35. public ImageView image2;
  36. public ImageView image3;
  37.  
  38. public TextView nom1;
  39. public TextView nom2;
  40. public TextView nom3;
  41.  
  42. public Button Valider;
  43. public Button Reset;
  44.  
  45.  
  46. @Override
  47. protected void onCreate(Bundle savedInstanceState) {
  48. super.onCreate(savedInstanceState);
  49. setContentView(R.layout.activity_main);
  50.  
  51. // On assigne tout au bon id
  52. Valider = findViewById(R.id.validerBoutonId);
  53. Reset = findViewById(R.id.newBoutonId);
  54.  
  55. image1 = findViewById(R.id.imageView1);
  56. image2 = findViewById(R.id.imageView2);
  57. image3 = findViewById(R.id.imageView3);
  58.  
  59. nom1 = findViewById(R.id.nom1Id);
  60. nom2 = findViewById(R.id.nom2Id);
  61. nom3 = findViewById(R.id.nom3Id);
  62.  
  63. //Ici on appelle la fonction Setnom
  64. Setnom();
  65.  
  66.  
  67. }
  68.  
  69. public void onClick(View v){
  70. //Si on click sur l'image 1, cela appel la fonction Launchactivité qui s'occupe d'ouvrir l'activité ImageMarvel.
  71. if(v == image1){
  72. LauchActivité();
  73. CodeImage = 23;
  74. }
  75. //Si on click sur l'image 2, cela appel la fonction Launchactivité qui s'occupe d'ouvrir l'activité ImageMarvel.
  76. if(v == image2){
  77. LauchActivité();
  78. CodeImage = 26;
  79. }
  80. //Si on click sur l'image 3, cela appel la fonction Launchactivité qui s'occupe d'ouvrir l'activité ImageMarvel.
  81. if(v == image3){
  82. LauchActivité();
  83. CodeImage = 29;
  84. }
  85. // Relance l'activité principal jsuis paresseux
  86. if(v == Reset){
  87. Intent intent = getIntent();
  88. finish();
  89. startActivity(intent);
  90. }
  91. //Lorsque que on click sur validé, on s'assure que les nomRandom correspond au nom des photo sinon on remet les question
  92. // mark et si tout est bon on lance un toast que le joueur a bien reussi
  93. if(v == Valider){
  94. //les boolean Imagebon sert a savoir si tout les images correspond bien au images
  95. Boolean Image1bon = false;
  96. Boolean Image2bon = false;
  97. Boolean Image3bon = false;
  98. // Verifie si les nom correspond
  99. if(!NomMarvelPhoto[0].matches(NomMarvelRandom[0])){
  100. image1.setImageResource(R.drawable.question_mark);
  101. }
  102. else{Image1bon = true;}
  103.  
  104. if(!NomMarvelPhoto[1].matches(NomMarvelRandom[1])){
  105. image2.setImageResource(R.drawable.question_mark);
  106. }
  107. else{Image2bon = true;}
  108.  
  109. if(!NomMarvelPhoto[2].matches(NomMarvelRandom[2])){
  110. image3.setImageResource(R.drawable.question_mark);
  111. }
  112. else{Image3bon = true;}
  113.  
  114. if(Image1bon && Image2bon && Image3bon){
  115. Toast.makeText(this, "Vous avez reussi félicitation! Bonne Vacances !",
  116. Toast.LENGTH_LONG).show();
  117. }
  118. }
  119.  
  120. }
  121. //Lance une intention vers l'activiter des images marvel et verifie si l'activiter repond.
  122. private void LauchActivité(){
  123. Intent intention = new Intent(this, ImageMarvel.class );
  124.  
  125. if(fournisseurDispo(intention)){
  126. startActivityForResult(intention, Requete );
  127. }
  128. }
  129. //Lorsque l'activité revient de ImageMarvel, il récupere les information et les mets dans un tableau
  130. // il appelle la fonction UpdateMarvel qui s'assure de changer les images et de garder les noms.
  131. protected void onActivityResult(int codeRequête, int codeRésultat, Intent intention) {
  132. if (codeRequête == Requete && codeRésultat == RESULT_OK) {
  133. String MarvelInfo[] = intention.getExtras().getStringArray("MarvelImage");
  134. UpdateMarvel(CodeImage,MarvelInfo);
  135. }
  136. }
  137. //Verifie si il a bien une activité qui repond a l'intention
  138. private boolean fournisseurDispo(Intent intention){
  139. PackageManager mgr = getPackageManager();
  140.  
  141. List<ResolveInfo> liste = mgr.queryIntentActivities(intention, PackageManager.MATCH_DEFAULT_ONLY);
  142.  
  143. for(ResolveInfo info:liste) {
  144. Log.i("Devor3", info.toString());
  145. }
  146. return liste.size() > 0;
  147. }
  148. //Update les information de Marvel. Change les images par les imagees marvel selectionnée
  149. // et garde les noms en memoire.
  150. private void UpdateMarvel(int CodeImage , String[] Marvelinfo){
  151. if(CodeImage == 23){
  152. image1.setImageResource(Integer.parseInt(Marvelinfo[0]));
  153. NomMarvelPhoto[0]=Marvelinfo[1];
  154.  
  155. }
  156. if(CodeImage == 26){
  157. image2.setImageResource(Integer.parseInt(Marvelinfo[0]));
  158. NomMarvelPhoto[1]=Marvelinfo[1];
  159. }
  160. if(CodeImage == 29) {
  161. image3.setImageResource(Integer.parseInt(Marvelinfo[0]));
  162. NomMarvelPhoto[2] = Marvelinfo[1];
  163. }
  164. }
  165. //Donne des noms aléatoire de marvel.
  166. private String NomRandom(){
  167.  
  168. ArrayList<Marvel> sourceDonnées = Marvel.lireFichier("marvel.json", this);
  169. int id = (int)(Math.random()* sourceDonnées.size());
  170. Marvel Personnage = (Marvel) sourceDonnées.get(id);
  171.  
  172. return Personnage.getNom();
  173. }
  174.  
  175. //Donc ici on utilise les noms données de la fonction NomRandom() et on les mets dans un tableau
  176. // afin de conserver les nom et les atribuers au textview.
  177. private void Setnom(){
  178. // Fourni les nom dans le tableau
  179. for(int i = 0 ; i < 3 ; i++){
  180. NomMarvelRandom[i] = NomRandom();
  181. }
  182. //Permet de vérifier si il existe plusieur noms similaire dans le tableau et le remplace par un nouveau
  183. for(int i = 0 ; i < 3 ; i++){
  184. for(int b = 2 ; b > 0 ; b--){
  185. if(NomMarvelRandom[i].matches(NomMarvelRandom[b]) && b != i){
  186. NomMarvelRandom[i]= NomRandom();
  187. i = 0;
  188. b = 2;
  189. }
  190. }
  191.  
  192. }
  193. nom1.setText(NomMarvelRandom[0]);
  194. nom2.setText(NomMarvelRandom[1]);
  195. nom3.setText(NomMarvelRandom[2]);
  196. }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement