Skip to content
Snippets Groups Projects
Commit ad853fcc authored by Elias Leinenweber's avatar Elias Leinenweber
Browse files

Meilleur respect de MVC

parent 00e9e161
Branches
Tags
No related merge requests found
......@@ -47,6 +47,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="model\Improvement.cs" />
<Compile Include="model\Player.cs" />
<Compile Include="view\Controls\MapView.Designer.cs" />
<Compile Include="view\FormFin.cs">
......
namespace Wanderer.model
{
public enum Improvement
{
TrainStation,
Path,
Refuge,
Club,
Factory
}
}
\ No newline at end of file
using Wanderer.model;
namespace Wanderer
namespace Wanderer.model
{
public class Map
{
......@@ -9,6 +7,9 @@ namespace Wanderer
public Map(int x, int y)
{
_tiles = new Tile[x, y];
for (int i = 0; i < x; ++i)
for (int j = 0; j < y; ++j)
_tiles[i, j] = new Tile();
}
public Tile[,] Tiles
......
......@@ -2,7 +2,19 @@
{
public class Tile
{
private Improvement _improvement;
public Terrain Terrain { get; set; }
public Player Owner { get; set; }
public Player Owner { get; set; }
public bool HasChanged { get; set; }
public Improvement Improvement
{
get => _improvement;
set
{
_improvement = _improvement == 0 ? value : _improvement;
HasChanged = true;
}
}
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using Wanderer.model;
namespace Wanderer.view.Controls
{
......
......@@ -7,7 +7,7 @@ namespace Wanderer.view.Controls
{
public class TileView : Button
{
private Tile model;
public Tile model { get; }
public TileView(Tile tile)
{
......@@ -36,18 +36,5 @@ namespace Wanderer.view.Controls
{
MapView.SelectedTile = this;
}
private Image imageFromTerrain()
{
switch (model.Terrain)
{
case Terrain.Plains:
break;
case Terrain.Hills:
break;
}
return null;
}
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Wanderer.model;
using Wanderer.view.Controls;
namespace Wanderer.view
......@@ -61,6 +62,11 @@ namespace Wanderer.view
lblArgent.Text = "Argent :" + nombreMarks;
lblMarcheur.Text = "Marcheurs : " + nombreRandonneurs;
lblTour.Text = "Nombre d'action : " + nombreTour++;
if (MapView.SelectedTile != null && MapView.SelectedTile.model.HasChanged)
{
MapView.SelectedTile.Image = image();
MapView.SelectedTile.model.HasChanged = false;
}
}
......@@ -77,20 +83,18 @@ namespace Wanderer.view
private void btnUsine_Click(object sender, EventArgs e)
{
if(nombreMarks >= 60)
{
MapView.SelectedTile.Image = btnUsine.Image;
nombreUsine++;
nombreMarks -= 40;
updateLabels();
}
if (nombreMarks < 60) return;
MapView.SelectedTile.model.Improvement = Improvement.Factory;
nombreUsine++;
nombreMarks -= 40;
updateLabels();
}
private void btnTrain_Click(object sender, EventArgs e)
{
if(nombreMarks >= 10 && gareCreated)
{
MapView.SelectedTile.Image = btnTrain.Image;
MapView.SelectedTile.model.Improvement = Improvement.TrainStation;
gareCreated = false;
nombreMarks -= 10;
updateLabels();
......@@ -105,7 +109,7 @@ namespace Wanderer.view
}
if (nombreMarks >= 30)
{
MapView.SelectedTile.Image = btnRefuge.Image;
MapView.SelectedTile.model.Improvement = Improvement.Refuge;
nombreRefuge++;
nombreMarks -= 30;
updateLabels();
......@@ -121,7 +125,7 @@ namespace Wanderer.view
}
if (nombreMarks >= 10)
{
MapView.SelectedTile.Image = btnChemin.Image;
MapView.SelectedTile.model.Improvement = Improvement.Path;
nombreChemin++;
nombreMarks -= 10;
updateLabels();
......@@ -132,7 +136,7 @@ namespace Wanderer.view
{
if(nombreMarks >= 15)
{
MapView.SelectedTile.Image = btnClub.Image;
MapView.SelectedTile.model.Improvement = Improvement.Club;
nombreClub++;
nombreMarks -= 10;
updateLabels();
......@@ -165,6 +169,24 @@ namespace Wanderer.view
Application.Exit();
}
public Image image()
{
switch (MapView.SelectedTile.model.Improvement)
{
case Improvement.Club:
return btnClub.Image;
case Improvement.Factory:
return btnUsine.Image;
case Improvement.Path:
return btnChemin.Image;
case Improvement.Refuge:
return btnRefuge.Image;
case Improvement.TrainStation:
return btnTrain.Image;
}
return null;
}
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment