plus que l'acro
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
<activity android:name=".GameActivity"/>
|
||||
<activity android:name=".SettingsActivity"/>
|
||||
<activity android:name=".MainActivity"/>
|
||||
<activity android:name=".RulesActivity"/>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
@@ -1,58 +1,52 @@
|
||||
<puzzle size="10" nom="Puzzle Taille 10 - Parfait">
|
||||
<paire> <!-- rouge -->
|
||||
<puzzle size="10" nom="Puzzle Taille 10">
|
||||
<!-- jaune-->
|
||||
<paire>
|
||||
<point colonne="0" ligne="9" />
|
||||
<point colonne="9" ligne="1" />
|
||||
<point colonne="4" ligne="9" />
|
||||
</paire>
|
||||
<paire> <!-- orange -->
|
||||
<!-- rouge-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="5" />
|
||||
<point colonne="1" ligne="7" />
|
||||
</paire>
|
||||
<!-- bleu-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="4" />
|
||||
<point colonne="2" ligne="8" />
|
||||
</paire>
|
||||
<!-- vert-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="8" />
|
||||
<point colonne="5" ligne="7" />
|
||||
<point colonne="5" ligne="3" />
|
||||
</paire>
|
||||
<paire> <!-- cyan -->
|
||||
<point colonne="6" ligne="9" />
|
||||
<point colonne="9" ligne="9" />
|
||||
<!-- bordeau-->
|
||||
<paire>
|
||||
<point colonne="2" ligne="3" />
|
||||
<point colonne="4" ligne="5" />
|
||||
</paire>
|
||||
<paire> <!-- jaune -->
|
||||
<point colonne="6" ligne="8" />
|
||||
<point colonne="9" ligne="8" />
|
||||
<!-- rose-->
|
||||
<paire>
|
||||
<point colonne="2" ligne="2" />
|
||||
<point colonne="7" ligne="2" />
|
||||
</paire>
|
||||
<paire> <!-- bleu -->
|
||||
<point colonne="3" ligne="3" />
|
||||
<point colonne="7" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- rose -->
|
||||
<point colonne="7" ligne="6" />
|
||||
<point colonne="6" ligne="5" />
|
||||
</paire>
|
||||
<paire> <!-- vert clair -->
|
||||
<point colonne="6" ligne="7" />
|
||||
<point colonne="8" ligne="1" />
|
||||
</paire>
|
||||
<paire> <!-- violet -->
|
||||
<point colonne="2" ligne="6" />
|
||||
<point colonne="4" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- vert -->
|
||||
<point colonne="4" ligne="8" />
|
||||
<point colonne="5" ligne="6" />
|
||||
</paire>
|
||||
<paire> <!-- vert foncé -->
|
||||
<point colonne="6" ligne="4" />
|
||||
<!-- violet-->
|
||||
<paire>
|
||||
<point colonne="5" ligne="5" />
|
||||
<point colonne="7" ligne="5" />
|
||||
</paire>
|
||||
<paire> <!-- rose pastel -->
|
||||
<point colonne="2" ligne="1" />
|
||||
<point colonne="1" ligne="4" />
|
||||
<!-- blanc-->
|
||||
<paire>
|
||||
<point colonne="4" ligne="6" />
|
||||
<point colonne="7" ligne="4" />
|
||||
</paire>
|
||||
<paire> <!-- turquoise -->
|
||||
<point colonne="0" ligne="0" />
|
||||
<point colonne="9" ligne="0" />
|
||||
<!-- orange-->
|
||||
<paire>
|
||||
<point colonne="4" ligne="8" />
|
||||
<point colonne="8" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- indigo -->
|
||||
<point colonne="0" ligne="1" />
|
||||
<point colonne="0" ligne="9" />
|
||||
</paire>
|
||||
<paire> <!-- marron -->
|
||||
<point colonne="9" ligne="2" />
|
||||
<point colonne="0" ligne="2" />
|
||||
<!-- cyan-->
|
||||
<paire>
|
||||
<point colonne="5" ligne="8" />
|
||||
<point colonne="8" ligne="8" />
|
||||
</paire>
|
||||
</puzzle>
|
||||
@@ -1,46 +1,57 @@
|
||||
<puzzle size="11" nom="Puzzle Taille 11">
|
||||
<paire> <!-- rose pastel -->
|
||||
<!-- blanc-->
|
||||
<paire>
|
||||
<point colonne="0" ligne="0" />
|
||||
<point colonne="0" ligne="3" />
|
||||
<point colonne="3" ligne="1" />
|
||||
</paire>
|
||||
<paire> <!-- rose -->
|
||||
<point colonne="0" ligne="5" />
|
||||
<point colonne="1" ligne="1" />
|
||||
</paire>
|
||||
<paire> <!-- rouge -->
|
||||
<point colonne="0" ligne="10" />
|
||||
<point colonne="7" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- bleu -->
|
||||
<!-- bordeau-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="0" />
|
||||
<point colonne="4" ligne="2" />
|
||||
</paire>
|
||||
<!-- rouge-->
|
||||
<paire>
|
||||
<point colonne="4" ligne="3" />
|
||||
<point colonne="10" ligne="1" />
|
||||
</paire>
|
||||
<!-- bleu-->
|
||||
<paire>
|
||||
<point colonne="3" ligne="8" />
|
||||
<point colonne="10" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- vert clair -->
|
||||
<point colonne="2" ligne="2" />
|
||||
<point colonne="9" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- vert foncé -->
|
||||
<point colonne="3" ligne="2" />
|
||||
<point colonne="3" ligne="5" />
|
||||
</paire>
|
||||
<paire> <!-- vert -->
|
||||
<point colonne="2" ligne="6" />
|
||||
<point colonne="2" ligne="9" />
|
||||
</paire>
|
||||
<paire> <!-- orange -->
|
||||
<point colonne="1" ligne="9" />
|
||||
<point colonne="2" ligne="7" />
|
||||
</paire>
|
||||
<paire> <!-- cyan -->
|
||||
<point colonne="1" ligne="10" />
|
||||
<point colonne="10" ligne="8" />
|
||||
</paire>
|
||||
<paire> <!-- jaune -->
|
||||
<!-- orange-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="3" />
|
||||
<point colonne="3" ligne="9" />
|
||||
<point colonne="4" ligne="5" />
|
||||
</paire>
|
||||
<paire> <!-- violet -->
|
||||
<point colonne="5" ligne="5" />
|
||||
<!-- rose-->
|
||||
<paire>
|
||||
<point colonne="3" ligne="2" />
|
||||
<point colonne="4" ligne="4" />
|
||||
</paire>
|
||||
<!-- jaune-->
|
||||
<paire>
|
||||
<point colonne="3" ligne="7" />
|
||||
<point colonne="8" ligne="4" />
|
||||
</paire>
|
||||
<!-- cyan-->
|
||||
<paire>
|
||||
<point colonne="7" ligne="2" />
|
||||
<point colonne="9" ligne="4" />
|
||||
</paire>
|
||||
<!-- gris-->
|
||||
<paire>
|
||||
<point colonne="4" ligne="9" />
|
||||
<point colonne="9" ligne="5" />
|
||||
</paire>
|
||||
<!-- vert-->
|
||||
<paire>
|
||||
<point colonne="8" ligne="6" />
|
||||
<point colonne="9" ligne="8" />
|
||||
</paire>
|
||||
<!-- violet-->
|
||||
<paire>
|
||||
<point colonne="7" ligne="3" />
|
||||
<point colonne="6" ligne="8" />
|
||||
</paire>
|
||||
</puzzle>
|
||||
@@ -1,54 +1,72 @@
|
||||
<puzzle size="14" nom="Puzzle Taille 14">
|
||||
<paire> <!-- rose pastel -->
|
||||
<point colonne="0" ligne="0" />
|
||||
<point colonne="0" ligne="6" />
|
||||
<!-- rose-->
|
||||
<paire>
|
||||
<point colonne="4" ligne="9" />
|
||||
<point colonne="11" ligne="12" />
|
||||
</paire>
|
||||
<paire> <!-- rose -->
|
||||
<point colonne="3" ligne="1" />
|
||||
<point colonne="1" ligne="7" />
|
||||
<!-- vert claire-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="8" />
|
||||
<point colonne="3" ligne="10" />
|
||||
</paire>
|
||||
<paire> <!-- rouge -->
|
||||
<point colonne="0" ligne="13" />
|
||||
<point colonne="9" ligne="10" />
|
||||
<!-- bleu-->
|
||||
<paire>
|
||||
<point colonne="2" ligne="2" />
|
||||
<point colonne="4" ligne="10" />
|
||||
</paire>
|
||||
<paire> <!-- bleu -->
|
||||
<point colonne="4" ligne="0" />
|
||||
<point colonne="13" ligne="9" />
|
||||
<!-- vert foncé-->
|
||||
<paire>
|
||||
<point colonne="1" ligne="9" />
|
||||
<point colonne="9" ligne="11" />
|
||||
</paire>
|
||||
<paire> <!-- vert clair -->
|
||||
<point colonne="5" ligne="5" />
|
||||
<!-- orange-->
|
||||
<paire>
|
||||
<point colonne="4" ligne="8" />
|
||||
<point colonne="5" ligne="7" />
|
||||
</paire>
|
||||
<!-- jaune-->
|
||||
<paire>
|
||||
<point colonne="6" ligne="11" />
|
||||
<point colonne="8" ligne="11" />
|
||||
</paire>
|
||||
<!-- violet-->
|
||||
<paire>
|
||||
<point colonne="6" ligne="12" />
|
||||
<point colonne="13" ligne="13" />
|
||||
</paire>
|
||||
<!-- dorée-->
|
||||
<paire>
|
||||
<point colonne="6" ligne="9" />
|
||||
<point colonne="12" ligne="10" />
|
||||
</paire>
|
||||
<paire> <!-- vert foncé -->
|
||||
<point colonne="6" ligne="5" />
|
||||
<point colonne="6" ligne="8" />
|
||||
<!-- bleu canard-->
|
||||
<paire>
|
||||
<point colonne="8" ligne="6" />
|
||||
<point colonne="13" ligne="12" />
|
||||
</paire>
|
||||
<paire> <!-- vert -->
|
||||
<point colonne="5" ligne="9" />
|
||||
<point colonne="5" ligne="12" />
|
||||
<!-- cyan-->
|
||||
<paire>
|
||||
<point colonne="5" ligne="0" />
|
||||
<point colonne="7" ligne="0" />
|
||||
</paire>
|
||||
<paire> <!-- orange -->
|
||||
<point colonne="4" ligne="12" />
|
||||
<point colonne="5" ligne="10" />
|
||||
<!-- bordeau-->
|
||||
<paire>
|
||||
<point colonne="6" ligne="0" />
|
||||
<point colonne="10" ligne="5" />
|
||||
</paire>
|
||||
<paire> <!-- cyan -->
|
||||
<point colonne="3" ligne="13" />
|
||||
<point colonne="13" ligne="11" />
|
||||
<!-- blanc-->
|
||||
<paire>
|
||||
<point colonne="8" ligne="1" />
|
||||
<point colonne="13" ligne="0" />
|
||||
</paire>
|
||||
<paire> <!-- jaune -->
|
||||
<point colonne="7" ligne="12" />
|
||||
<point colonne="8" ligne="8" />
|
||||
<!-- rouge-->
|
||||
<paire>
|
||||
<point colonne="8" ligne="2" />
|
||||
<point colonne="12" ligne="8" />
|
||||
</paire>
|
||||
<paire> <!-- violet -->
|
||||
<point colonne="9" ligne="7" />
|
||||
<point colonne="12" ligne="11" />
|
||||
</paire>
|
||||
<paire> <!-- turquoise -->
|
||||
<point colonne="6" ligne="3" />
|
||||
<point colonne="11" ligne="8" />
|
||||
</paire>
|
||||
<paire> <!-- marron -->
|
||||
<point colonne="8" ligne="5" />
|
||||
<point colonne="10" ligne="6" />
|
||||
<!-- gris-->
|
||||
<paire>
|
||||
<point colonne="8" ligne="7" />
|
||||
<point colonne="10" ligne="2" />
|
||||
</paire>
|
||||
</puzzle>
|
||||
@@ -161,10 +161,37 @@ private void printBoardToLog() {
|
||||
}
|
||||
//dessine quand c'est victoir
|
||||
if (win) {
|
||||
paint.setColor(Color.BLACK);
|
||||
String message = "🎉 Bravo !";
|
||||
paint.setTextSize(80);
|
||||
paint.setTextAlign(Paint.Align.CENTER);
|
||||
canvas.drawText("🎉 Bravo !", getWidth() / 2f, getHeight() / 2f, paint);
|
||||
|
||||
// Mesure le texte
|
||||
Paint.FontMetrics fm = paint.getFontMetrics();
|
||||
float textWidth = paint.measureText(message);
|
||||
float textHeight = fm.bottom - fm.top;
|
||||
|
||||
float centerX = getWidth() / 2f;
|
||||
float centerY = getHeight() / 2f;
|
||||
|
||||
// 🎨 Dessine un fond blanc arrondi
|
||||
paint.setStyle(Paint.Style.FILL);
|
||||
paint.setColor(Color.WHITE);
|
||||
float padding = 30;
|
||||
RectF background = new RectF(
|
||||
centerX - textWidth / 2 - padding,
|
||||
centerY + fm.top - padding / 2,
|
||||
centerX + textWidth / 2 + padding,
|
||||
centerY + fm.bottom + padding / 2
|
||||
);
|
||||
canvas.drawRoundRect(background, 30, 30, paint);
|
||||
|
||||
// 🖤 Ombre
|
||||
paint.setColor(Color.BLACK);
|
||||
canvas.drawText(message, centerX + 3, centerY + 3, paint);
|
||||
|
||||
// 🔴 Texte principal
|
||||
paint.setColor(Color.RED);
|
||||
canvas.drawText(message, centerX, centerY, paint);
|
||||
}
|
||||
|
||||
|
||||
@@ -268,56 +295,58 @@ private void printBoardToLog() {
|
||||
//version chat
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
if (selectedColor != 0) {
|
||||
if (board[row][col] == 0) { // la case est vide
|
||||
// Vérifie que la case est adjacente à la dernière
|
||||
List<int[]> path = paths.get(selectedColor);
|
||||
int[] last = path.get(path.size() - 1);
|
||||
|
||||
int dr = Math.abs(last[0] - row);
|
||||
int dc = Math.abs(last[1] - col);
|
||||
|
||||
if ((dr == 1 && dc == 0) || (dr == 0 && dc == 1)) {
|
||||
board[row][col] = -selectedColor; // ✅ Remplit avec l’id du point de départ
|
||||
path.add(new int[]{row, col}); // 🔁 On suit le chemin mais un seul id
|
||||
invalidate(); // 🖌️ Redessine la vue
|
||||
|
||||
|
||||
List<int[]> path = paths.get(selectedColor);
|
||||
if (path == null || path.isEmpty()) break;
|
||||
int[] last = path.get(path.size() - 1);
|
||||
|
||||
int dr = Math.abs(last[0] - row);
|
||||
int dc = Math.abs(last[1] - col);
|
||||
|
||||
if ((dr == 1 && dc == 0) || (dr == 0 && dc == 1)) {
|
||||
int current = board[row][col];
|
||||
|
||||
// 1️⃣ Avancer sur une case vide
|
||||
if (current == 0) {
|
||||
board[row][col] = -selectedColor;
|
||||
path.add(new int[]{row, col});
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
if (board[row][col] == selectedColor) { // la case est la meme que le depart
|
||||
// Vérifie que la case est adjacente à la dernière
|
||||
List<int[]> path = paths.get(selectedColor);
|
||||
int[] last = path.get(path.size() - 1);
|
||||
// 2️⃣ Atteindre l’autre point de la paire
|
||||
else if (current == selectedColor) {
|
||||
// ⚠️ Ne pas revenir au point de départ
|
||||
int[] start = path.get(0);
|
||||
if (row == start[0] && col == start[1]) {
|
||||
Log.d("DEBUG_FLOW", "Tentative de retour au point de départ — refusé.");
|
||||
break;
|
||||
}
|
||||
|
||||
int dr = Math.abs(last[0] - row);
|
||||
int dc = Math.abs(last[1] - col);
|
||||
|
||||
|
||||
//permet de ne pas revenir a upoint de depart
|
||||
int[] start = path.get(0);
|
||||
if (row == start[0] && col == start[1]) {
|
||||
Log.d("DEBUG_FLOW", "Tentative de retour au point de départ — refusé.");
|
||||
break;
|
||||
}
|
||||
// test
|
||||
|
||||
if ((dr == 1 && dc == 0) || (dr == 0 && dc == 1)) {
|
||||
board[row][col] = selectedColor; // ✅ Remplit avec l’id du point de départ
|
||||
path.add(new int[]{row, col}); // 🔁 On suit le chemin mais un seul id
|
||||
path.add(new int[]{row, col});
|
||||
board[row][col] = selectedColor;
|
||||
completedColors.add(selectedColor);
|
||||
selectedColor = 0;// permet de ne pas travers la paire
|
||||
selectedColor = 0;
|
||||
checkWin();
|
||||
invalidate(); // 🖌️ Redessine la vue
|
||||
Log.d("DEBUG_FLOW", "Paire " + selectedColor + " complétée !");
|
||||
invalidate();
|
||||
Log.d("DEBUG_FLOW", "Paire complétée !");
|
||||
}
|
||||
|
||||
// 3️⃣ Reculer sur une case du chemin
|
||||
else if (current == -selectedColor && path.size() >= 2) {
|
||||
int[] beforeLast = path.get(path.size() - 2);
|
||||
if (beforeLast[0] == row && beforeLast[1] == col) {
|
||||
// 🔙 On recule d’une case
|
||||
int[] removed = path.remove(path.size() - 1);
|
||||
board[removed[0]][removed[1]] = 0;
|
||||
invalidate();
|
||||
Log.d("DEBUG_FLOW", "Recul d’une case sur le chemin.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
//version chat
|
||||
|
||||
|
||||
//version chat
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.example.flow_free;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
@@ -9,13 +10,17 @@ import android.widget.Button;
|
||||
public class MenuActivity extends Activity {
|
||||
|
||||
private Button Bjouer;
|
||||
private Button Bregles;
|
||||
private listener view;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_menu);
|
||||
Bjouer = findViewById(R.id.Bjouer);
|
||||
Bregles = findViewById(R.id.Bregles);
|
||||
Bjouer.setOnClickListener(new listener(this,MainActivity.class));
|
||||
Bregles.setOnClickListener(new listener(this,RulesActivity.class));
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
// RulesActivity.java
|
||||
package com.example.flow_free;
|
||||
|
||||
public class RulesActivity {
|
||||
}
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
|
||||
public class RulesActivity extends Activity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_rules);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@
|
||||
android:text="Jouer" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button2"
|
||||
android:id="@+id/Bregles"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/Bjouer"
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/rules_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="16dp"
|
||||
android:background="#FFFFFF">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_rules"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Règles du jeu"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:gravity="center"
|
||||
android:textColor="#000000" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rules_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/title_rules"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="Pour jouer à Flow-Free, le but est de remplir entièrement la grille en traçant un chemin entre chaque paire de cercles de même couleur. Lorsque tous les chemins sont correctement tracés et que la grille est pleine, le puzzle est complété."
|
||||
android:textSize="16sp"
|
||||
android:textColor="#333333"
|
||||
android:lineSpacingExtra="6dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/commands_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/rules_description"
|
||||
android:layout_marginTop="24dp"
|
||||
android:text="Commandes :"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#000000" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/commands_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/commands_title"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="• Touchez un cercle coloré pour commencer un tracé, puis glissez votre doigt vers l'autre cercle de la même couleur.\n\n• Si vous souhaitez corriger ou recommencer un chemin, touchez à nouveau l’un des deux cercles de la couleur correspondante : cela effacera le chemin et vous pourrez le redessiner."
|
||||
android:textSize="16sp"
|
||||
android:textColor="#333333"
|
||||
android:lineSpacingExtra="6dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
Reference in New Issue
Block a user