diff --git a/code/.idea/misc.xml b/code/.idea/misc.xml
index a10ccbe..09731a8 100644
--- a/code/.idea/misc.xml
+++ b/code/.idea/misc.xml
@@ -5,16 +5,17 @@
-
diff --git a/code/app/src/main/AndroidManifest.xml b/code/app/src/main/AndroidManifest.xml
index 6d44d02..689dbf7 100644
--- a/code/app/src/main/AndroidManifest.xml
+++ b/code/app/src/main/AndroidManifest.xml
@@ -10,13 +10,15 @@
android:supportsRtl="true"
android:theme="@style/Theme.Jeu_de_la_vie" >
-
+
+
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CompteurDeCellule.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CompteurDeCellule.java
index 6388dae..7aa1e54 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CompteurDeCellule.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CompteurDeCellule.java
@@ -2,6 +2,7 @@ package projet.iut.jeu_de_la_vie.model;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
import projet.iut.jeu_de_la_vie.model.cellule.Position;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import java.util.LinkedList;
import java.util.List;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/Manager.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/Manager.java
index 07e827d..2910c2c 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/Manager.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/Manager.java
@@ -8,6 +8,7 @@ import projet.iut.jeu_de_la_vie.model.boucleDeJeu.IBoucleDeJeu;
import projet.iut.jeu_de_la_vie.model.boucleDeJeu.observer.ObservableBDJ;
import projet.iut.jeu_de_la_vie.model.boucleDeJeu.observer.ObserverBDJ;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.plateau.Plateau;
/**
@@ -114,6 +115,13 @@ public class Manager implements ObserverBDJ {
actualiseurCellule.getArbitre().getPlateau().setLigne(value);
}
+ public int getNumberOfLines(){
+ return actualiseurCellule.getArbitre().getPlateau().getLigne();
+ }
+ public int getNomberOfColumns(){
+ return actualiseurCellule.getArbitre().getPlateau().getColone();
+ }
+
public void setCellsColor(int color){
Cellule.setLivingColor(color);
}
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurCellule.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurCellule.java
index 592b919..f5641ed 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurCellule.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurCellule.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.actualiseur;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.arbitre.Arbitre;
/**
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurEtatCellule.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurEtatCellule.java
index 156525a..a86c100 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurEtatCellule.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/actualiseur/ActualiseurEtatCellule.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.actualiseur;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.arbitre.Arbitre;
/**
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/Arbitre.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/Arbitre.java
index 0b170a8..a2a32f0 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/Arbitre.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/Arbitre.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.arbitre;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.CompteurDeCellule;
import projet.iut.jeu_de_la_vie.model.plateau.Plateau;
import projet.iut.jeu_de_la_vie.model.cellule.CellState;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreConwayStyle.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreConwayStyle.java
index 686dc5c..e334dd0 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreConwayStyle.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreConwayStyle.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.arbitre;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.plateau.Plateau;
import projet.iut.jeu_de_la_vie.model.cellule.CellState;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreKiller.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreKiller.java
index 2563648..82b6fb4 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreKiller.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/arbitre/ArbitreKiller.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.arbitre;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.cellule.CellState;
import projet.iut.jeu_de_la_vie.model.plateau.Plateau;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/Cellule.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/Cellule.java
index ac5dcd3..8f4f7a8 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/Cellule.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/Cellule.java
@@ -39,6 +39,9 @@ public class Cellule extends ObservableCellule {
* Couleur des cellules mortes
*/
private int deathColor;
+ public int getDeathColor(){
+ return deathColor;
+ }
/**
*
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/CreateurCellule.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/CreateurCellule.java
index a48d9d2..2075dba 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/CreateurCellule.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/CreateurCellule.java
@@ -1,7 +1,7 @@
package projet.iut.jeu_de_la_vie.model.cellule.créateur;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
import java.util.LinkedList;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/ICreateurCellule.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/ICreateurCellule.java
index 9641c67..35c6004 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/ICreateurCellule.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellule/créateur/ICreateurCellule.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.cellule.créateur;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
import java.util.List;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CellulesVivantes.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/CellulesVivantes.java
similarity index 81%
rename from code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CellulesVivantes.java
rename to code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/CellulesVivantes.java
index d7eb64b..b7288e2 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/CellulesVivantes.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/CellulesVivantes.java
@@ -1,8 +1,10 @@
-package projet.iut.jeu_de_la_vie.model;
+package projet.iut.jeu_de_la_vie.model.cellulesVivantes;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
import projet.iut.jeu_de_la_vie.model.cellule.observer.ObserverCellule;
import projet.iut.jeu_de_la_vie.model.cellule.Position;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.observer.ObservableCV;
+
import java.util.HashMap;
@@ -11,7 +13,7 @@ import java.util.HashMap;
* @author Yohann Breuil
* @author Allan Point
*/
-public class CellulesVivantes implements ObserverCellule {
+public class CellulesVivantes extends ObservableCV implements ObserverCellule {
/**
* Dictionaire contenant toutes les cellules vivantes
@@ -43,16 +45,20 @@ public class CellulesVivantes implements ObserverCellule {
* @see Position
* @see Cellule
*/
- private void addPeer(Cellule cell){ cellVivantes.put(cell.getPosition(), cell); }
+ private void addPeer(Cellule cell){
+ cellVivantes.put(cell.getPosition(), cell);
+ notifier(cell);
+ }
/**
* Retir une paire clef:valeur (Postion:Cellule) du dictionaire contenant les cellules vivantes
- * @param cellule Cellule à retirer
+ * @param cell Cellule à retirer
* @see Position
* @see Cellule
*/
- private void rmPeer(Cellule cellule){
- cellVivantes.remove(cellule.getPosition());
+ private void rmPeer(Cellule cell){
+ cellVivantes.remove(cell.getPosition());
+ notifier(cell);
}
/**
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/observer/ObservableCV.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/observer/ObservableCV.java
new file mode 100644
index 0000000..1e2bf47
--- /dev/null
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/observer/ObservableCV.java
@@ -0,0 +1,32 @@
+package projet.iut.jeu_de_la_vie.model.cellulesVivantes.observer;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
+
+public abstract class ObservableCV {
+ private List observeurs;
+
+ public ObservableCV(){observeurs = new LinkedList<>();}
+
+ public void attacher(ObserverCV o) throws IllegalArgumentException{
+ if(o == null){
+ throw new IllegalArgumentException("L'observer ne doit pas être null");
+ }
+ observeurs.add(o);
+ }
+
+ public void detacher(ObserverCV o) throws IllegalArgumentException{
+ if(o == null){
+ throw new IllegalArgumentException("L'observer ne doit pas être null");
+ }
+ observeurs.remove(o);
+ }
+ public void notifier(Cellule changingCell) {
+ for (ObserverCV observeur : observeurs) {
+ observeur.update(changingCell);
+ }
+ }
+
+}
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/observer/ObserverCV.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/observer/ObserverCV.java
new file mode 100644
index 0000000..d746c2b
--- /dev/null
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/cellulesVivantes/observer/ObserverCV.java
@@ -0,0 +1,7 @@
+package projet.iut.jeu_de_la_vie.model.cellulesVivantes.observer;
+
+import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
+
+public interface ObserverCV {
+ void update(Cellule changingCell);
+}
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/plateau/Plateau.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/plateau/Plateau.java
index 7f49518..d046c39 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/plateau/Plateau.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/model/plateau/Plateau.java
@@ -1,6 +1,6 @@
package projet.iut.jeu_de_la_vie.model.plateau;
-import projet.iut.jeu_de_la_vie.model.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
import projet.iut.jeu_de_la_vie.model.cellule.créateur.CreateurCellule;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/GameActivity.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/GameActivity.java
new file mode 100644
index 0000000..39f2127
--- /dev/null
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/GameActivity.java
@@ -0,0 +1,20 @@
+package projet.iut.jeu_de_la_vie.view;
+
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import projet.iut.jeu_de_la_vie.R;
+
+public class GameActivity extends AppCompatActivity {
+
+ private PlateauView plateauView;
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.game_activity);
+
+ plateauView = findViewById(R.id.plateauView);
+ }
+}
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/launcher/Launcher.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/LauncherActivity.java
similarity index 82%
rename from code/app/src/main/java/projet/iut/jeu_de_la_vie/launcher/Launcher.java
rename to code/app/src/main/java/projet/iut/jeu_de_la_vie/view/LauncherActivity.java
index d1c4726..7e1c2f5 100644
--- a/code/app/src/main/java/projet/iut/jeu_de_la_vie/launcher/Launcher.java
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/LauncherActivity.java
@@ -1,5 +1,6 @@
-package projet.iut.jeu_de_la_vie.launcher;
+package projet.iut.jeu_de_la_vie.view;
+import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
@@ -7,7 +8,6 @@ import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -19,7 +19,7 @@ import projet.iut.jeu_de_la_vie.R;
import projet.iut.jeu_de_la_vie.model.Manager;
import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
-public class Launcher extends AppCompatActivity {
+public class LauncherActivity extends AppCompatActivity {
private Manager manager;
private Button start;
@@ -35,9 +35,10 @@ public class Launcher extends AppCompatActivity {
super.onCreate(savedInstanceState);
manager = new Manager();
setContentView(R.layout.menu_principal);
- manager.lancerJeu();
//très moche à enlever plus tard
start = findViewById(R.id.startButton);
+ start.setOnClickListener(this::startGame);
+ /*
start.setOnClickListener(l -> {
EditText colones = findViewById(R.id.nbColone);
manager.getActualiseurCellule().getArbitre().getPlateau().setColone(Integer.parseInt(colones.getText().toString()));
@@ -49,6 +50,7 @@ public class Launcher extends AppCompatActivity {
}
}
});
+ */
}
@Override
@@ -65,9 +67,9 @@ public class Launcher extends AppCompatActivity {
}
private void setNbColumns(){
- //EditText editText = findViewById(R.id.nbColone);
- //Editable text = editText.getText();
- //manager.setNumberOfColumns(Integer.parseInt(text.toString()));
+ EditText editText = findViewById(R.id.nbColone);
+ Editable text = editText.getText();
+ manager.setNumberOfColumns(Integer.parseInt(text.toString()));
}
private void setNbLignes(){
EditText editText = findViewById(R.id.nbLignes);
@@ -81,9 +83,12 @@ public class Launcher extends AppCompatActivity {
public void startGame(View view){
setNbLignes();
setNbColumns();
- Log.d("d", "" + manager.getActualiseurCellule().getArbitre().getPlateau().getColone());
- Log.d("d", "" + manager.getActualiseurCellule().getArbitre().getPlateau().getLigne());
+ Log.d("d", "" + manager.getNumberOfLines());
+ Log.d("d", "" + manager.getNomberOfColumns());
Log.d("d", "" + Cellule.getLivingColor());
+ Intent intent = new Intent(this, GameActivity.class);
+ startActivity(intent);
+ //setContentView(new PlateauView(this, manager.getNomberOfColumns() ,manager.getNumberOfLines()));
}
public void setCellsRed(View view){
int red = Color.RED;
diff --git a/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/PlateauView.java b/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/PlateauView.java
new file mode 100644
index 0000000..1cbd71d
--- /dev/null
+++ b/code/app/src/main/java/projet/iut/jeu_de_la_vie/view/PlateauView.java
@@ -0,0 +1,100 @@
+package projet.iut.jeu_de_la_vie.view;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Observable;
+
+import projet.iut.jeu_de_la_vie.model.cellule.Cellule;
+import projet.iut.jeu_de_la_vie.model.cellule.Position;
+import projet.iut.jeu_de_la_vie.model.cellule.observer.ObserverCellule;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.CellulesVivantes;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.observer.ObservableCV;
+import projet.iut.jeu_de_la_vie.model.cellulesVivantes.observer.ObserverCV;
+
+public class PlateauView extends View implements ObserverCV {
+ private HashMap colors;
+
+ public PlateauView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public PlateauView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public PlateauView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ private Paint paint;
+ private int colones;
+ private int lignes;
+ private int dethColor;
+
+ public PlateauView(Context context, int colones, int lignes){
+ super(context);
+ colors = new HashMap<>();
+ paint = new Paint();
+ this.colones = colones;
+ this.lignes = lignes;
+ this.dethColor = Color.BLACK;
+ }
+
+ @Override
+ public void onDraw(Canvas canvas){
+ super.onDraw(canvas);
+ Integer tmp;
+ Rect rect;
+ for(int i=0; i
+
+
+
\ No newline at end of file
diff --git a/code/app/src/main/res/layout/menu_principal.xml b/code/app/src/main/res/layout/menu_principal.xml
index 19dbc21..d28c482 100644
--- a/code/app/src/main/res/layout/menu_principal.xml
+++ b/code/app/src/main/res/layout/menu_principal.xml
@@ -103,7 +103,6 @@
android:id="@+id/startButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:onClick="startGame"
android:text="START \\(o^u^o)/"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/code/app/src/main/res/layout/vue_jeu.xml b/code/app/src/main/res/layout/vue_jeu.xml
index da13e9a..36bbf0e 100644
--- a/code/app/src/main/res/layout/vue_jeu.xml
+++ b/code/app/src/main/res/layout/vue_jeu.xml
@@ -6,7 +6,7 @@
android:layout_height="match_parent">