"Les cours de neeko.fr"

Retour en haut

Java / Android : Examen blanc

Java / Android : Examen blanc

Condition de l'examen blanc : 2h30, sur papier. Pas de documents ni d'accès à un ordinateur.

Sur 20 points.

Tous les exercices sont indépendants, sauf précision contraire.

Java

1. Valide / pas valide (2 points)

Pour chaque ligne ci dessous, dites si elle est valide ou non. Si elle n'est pas valide dites pourquoi, et si elle est valide, préciser les conditions de cette validité, si besoin.

Chaque ligne est indépendante.

Exemple : int a = b; est valide, à condition que "b" soit aussi de type "int".

2. Appels de méthodes 1 (1 point)

Soit une classe "Personnage" avec une propriété publique de type "int" nommée "life", et une classe "Jeu" déclarée ainsi :

class Jeu { public void attaque1(Personnage p) { Personnage perso = new Personnage(); perso.life = perso.life - 10; } public void attaque2(Personnage perso) { perso.life = perso.life - 10; } public void attaque3(Personnage p) { p.life = p.life - 10; } }

Quel sera le résultat de l'execution de ce code ?

Personnage perso = new Personnage(); perso.life = 100; Jeu jeu = new Jeu(); jeu.attaque1(perso); jeu.attaque2(perso); jeu.attaque3(perso); System.out.println("Il reste : " + perso.life + " points");

3. Appels de méthodes 2 (1 point)

Soit les méthodes :

public int attaque(int valeur){ return valeur - 10; } public int soin(int valeur){ return valeur + 5; }

Quel sera le résultat de l'execution de ce code ?

int res = soin( attaque( soin( attaque( attaque(100) ) ) ) ); System.out.println("Il reste : " + res + " points");

4. Héritage (2 points)

Représentez les affirmations suivante avec des déclarations de classes Java valides (sans aucune propriétés ni méthodes).

Android

5. Hello World ! (1,5 point)

Pour un simple projet Android qui va afficher le message "Hello World", quels sont les 3 composants essentiels de cette application, et quel est leur rôle ?

6. Strings (1,5 point)

Complétez les phrases suivantes :

Le fichier Strings.xml se trouve dans le dossier  /values/ et sert à   les chaines de caractères, essentiellement pour simplifier la   de l'application.

Grace à son  , on peut faire référence à une chaine de caractère avec   depuis une activity Java, ou avec @  depuis un layout XML.

7. Utilisation du framework (3 points)

Soit ce layout pour mon activity :

Quelles sont les étapes importantes à développer (sur le layout et sur l'activity) pour que mon Activity puisse être notifiée de la pression de ce bouton ?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>

Projet

8. Poker version light : la bataille (8 points)

Le projet consiste à simuler un jeu de carte très simple : le jeu la de bataille.

Le déroulement d'une partie (passionnante) :

A partir du déroulement ci dessus et du code existant, complétez le projet en ajoutant les classes et les méthodes manquantes, en respectant le code existant.

Quelques conseils / questions à se poser :

package fr.cnam.bataille; public class HomeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); EnsembleDeCarte pioche = new EnsembleDeCarte(); this.remplirPioche(pioche, 1, 10, "pique"); this.remplirPioche(pioche, 1, 10, "coeur"); this.remplirPioche(pioche, 1, 10, "carreau"); this.remplirPioche(pioche, 1, 10, "trefle"); EnsembleDeCarte main1 = pioche.tire(5); EnsembleDeCarte main2 = pioche.tire(5); Carte bestMain1 = main1.meilleureCarte(); Carte bestMain2 = main2.meilleureCarte(); if (bestMain1.valeur > bestMain2.valeur) { System.out.println("Gagnant joueur 1 avec : "); System.out.println(bestMain1.valeur + " de " + bestMain1.enseigne); } else if (bestMain1.valeur < bestMain2.valeur) { System.out.println("Gagnant joueur 2 avec : "); System.out.println(bestMain2.valeur + " de " + bestMain2.enseigne); } else { System.out.println("Ex-aequo !"); } } }

Exemple de sortie :

Gagnant joueur 2 avec : 10 de trefle