Created
April 12, 2020 08:20
-
-
Save GravenilvecTV/10c8e009cb6ff061adaa73d0c99815c7 to your computer and use it in GitHub Desktop.
Correction TP 23/30 - Android - Jeu blind test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
tools:context=".BlindtestActivity" | |
android:id="@+id/reponses"> | |
<Button | |
android:id="@+id/btn1" | |
android:layout_width="300dp" | |
android:layout_height="wrap_content" | |
android:text="Bouton 1" | |
android:textSize="25dp" | |
android:padding="25dp" | |
android:background="@color/colorPurple" | |
android:textColor="@color/colorWhite" | |
android:layout_marginTop="80dp" | |
app:layout_constraintTop_toTopOf="parent" | |
app:layout_constraintLeft_toLeftOf="parent" | |
app:layout_constraintRight_toRightOf="parent"/> | |
<Button | |
android:id="@+id/btn2" | |
android:layout_width="300dp" | |
android:layout_height="wrap_content" | |
android:text="Bouton 2" | |
android:textSize="25dp" | |
android:background="@color/colorPurple" | |
android:textColor="@color/colorWhite" | |
android:padding="25dp" | |
android:layout_marginTop="50dp" | |
app:layout_constraintTop_toBottomOf="@id/btn1" | |
app:layout_constraintStart_toStartOf="@id/btn1"/> | |
<Button | |
android:id="@+id/btn3" | |
android:layout_width="300dp" | |
android:layout_height="wrap_content" | |
android:text="Bouton 3" | |
android:textSize="25dp" | |
android:background="@color/colorPurple" | |
android:textColor="@color/colorWhite" | |
android:padding="25dp" | |
android:layout_marginTop="50dp" | |
app:layout_constraintTop_toBottomOf="@id/btn2" | |
app:layout_constraintStart_toStartOf="@id/btn2"/> | |
<Button | |
android:id="@+id/btn4" | |
android:layout_width="300dp" | |
android:layout_height="wrap_content" | |
android:text="Bouton 4" | |
android:textSize="25dp" | |
android:background="@color/colorPurple" | |
android:textColor="@color/colorWhite" | |
android:padding="25dp" | |
android:layout_marginTop="50dp" | |
app:layout_constraintTop_toBottomOf="@id/btn3" | |
app:layout_constraintStart_toStartOf="@id/btn3"/> | |
</androidx.constraintlayout.widget.ConstraintLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
tools:context=".MainActivity"> | |
<Button | |
android:id="@+id/playBtn" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:text="Jouer" | |
android:textSize="34dp" | |
android:padding="15dp" | |
app:layout_constraintBottom_toBottomOf="parent" | |
app:layout_constraintLeft_toLeftOf="parent" | |
app:layout_constraintRight_toRightOf="parent" | |
app:layout_constraintTop_toTopOf="parent" /> | |
</androidx.constraintlayout.widget.ConstraintLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
tools:context=".MainActivity"> | |
<Button | |
android:id="@+id/playBtn" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:text="Jouer" | |
android:textSize="34dp" | |
android:padding="15dp" | |
app:layout_constraintBottom_toBottomOf="parent" | |
app:layout_constraintLeft_toLeftOf="parent" | |
app:layout_constraintRight_toRightOf="parent" | |
app:layout_constraintTop_toTopOf="parent" /> | |
</androidx.constraintlayout.widget.ConstraintLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package fr.gravendev.blindtestapp; | |
import androidx.appcompat.app.AppCompatActivity; | |
import androidx.constraintlayout.widget.ConstraintLayout; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.os.Handler; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.Toast; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.Random; | |
public class BlindtestActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_blindtest); | |
Random random = new Random(); | |
// recuperer l'extra NomChanson | |
String nomChanson = getIntent().getStringExtra("NomChanson"); | |
// liste de fausses musique | |
List<String> faussesMusiques = new ArrayList<>(); | |
faussesMusiques.add("Pitakara"); | |
faussesMusiques.add("Los Del mondos"); | |
faussesMusiques.add("True love"); | |
faussesMusiques.add("Filodo"); | |
faussesMusiques.add("El amor que calor"); | |
faussesMusiques.add("C++ song"); | |
faussesMusiques.add("The night of Rust"); | |
faussesMusiques.add("Ardente de mi cuerpo"); | |
// generation des fausses musique | |
ConstraintLayout rootLayout = findViewById(R.id.reponses); | |
int count = rootLayout.getChildCount(); | |
// pour chaque element | |
for(int i = 0; i < count; i++){ | |
final Button button = (Button) rootLayout.getChildAt(i); | |
int randomNumber = random.nextInt(faussesMusiques.size() - 1); | |
String fausseMusiqueGenere = faussesMusiques.get(randomNumber); | |
button.setText(fausseMusiqueGenere); | |
button.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
// afficher un toast (un petit message pendant quelques instants) | |
Toast.makeText(getApplicationContext(), "Perdu !", Toast.LENGTH_SHORT).show(); | |
button.setEnabled(false); | |
prochaineMusique(); | |
} | |
}); | |
} | |
// choisir au hasard un bouton avec la bonne réponse | |
int numeroBonneReponse = random.nextInt(count); | |
final Button bonneReponseBtn = (Button) rootLayout.getChildAt(numeroBonneReponse); | |
bonneReponseBtn.setText(nomChanson); | |
bonneReponseBtn.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
// afficher un toast lors de la victoire (un petit message pendant quelques instants) | |
bonneReponseBtn.setEnabled(false); | |
Toast.makeText(getApplicationContext(), "Bravo !", Toast.LENGTH_SHORT).show(); | |
prochaineMusique(); | |
} | |
}); | |
} | |
public void prochaineMusique() { | |
// attendre 2s | |
Handler handler = new Handler(); | |
handler.postDelayed(new Runnable() { | |
@Override | |
public void run() { | |
// redirection vers l'ecoute d'une nouvelle musique | |
finish(); | |
startActivity(new Intent(getApplicationContext(), ListenMusicActivity.class)); | |
} | |
}, 2000); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package fr.gravendev.blindtestapp; | |
import androidx.appcompat.app.AppCompatActivity; | |
import android.content.Intent; | |
import android.media.MediaPlayer; | |
import android.os.Bundle; | |
import java.util.Random; | |
public class ListenMusicActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_listen_music); | |
// rendre la musique aleatoire | |
int[] sons = new int[] { | |
R.raw.backpack, | |
R.raw.moonlight, | |
R.raw.notosa, | |
R.raw.oiseaux, | |
R.raw.papillon, | |
R.raw.rotodo, | |
R.raw.sans_commentaire | |
}; | |
// le nom des musiques | |
String[] nomMusiques = { | |
"Backpack", | |
"Moonlight", | |
"Notosa", | |
"Oiseaux", | |
"Papillon bleu", | |
"Rotodo", | |
"Sans Commentaire" | |
}; | |
// choisir une à partir de ce tableau | |
Random random = new Random(); | |
final int nombreHasard = random.nextInt(sons.length-1); | |
int resourceHasard = sons[nombreHasard]; | |
final String nomChanson = nomMusiques[nombreHasard]; | |
// lancer la musique papillon.wav | |
MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), resourceHasard); | |
mediaPlayer.start(); | |
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { | |
@Override | |
public void onCompletion(MediaPlayer mp) { | |
// creer l'action | |
Intent intent = new Intent(getApplicationContext(), BlindtestActivity.class); | |
intent.putExtra("NomChanson", nomChanson); | |
finish(); | |
startActivity(intent); | |
} | |
}); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package fr.gravendev.blindtestapp; | |
import androidx.appcompat.app.AppCompatActivity; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.view.View; | |
import android.widget.Button; | |
public class MainActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
// recuperer le bouton qui s'appelle playBtn | |
Button playBtn = findViewById(R.id.playBtn); | |
// associer le bouton à un evenement | |
playBtn.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
finish(); | |
startActivity(new Intent(getApplicationContext(), ListenMusicActivity.class)); | |
} | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment