From a9f4a82a5e413f223fa675cd40173e2756668866 Mon Sep 17 00:00:00 2001 From: Duflot Lucas Date: Sat, 8 Jun 2024 18:37:17 +0200 Subject: [PATCH] Un debut de jeu, mais encore des problemes... --- source/Trek-12/ConsoleApp/Program.cs | 825 +++++++++--------- source/Trek-12/Models/Game/Game.cs | 21 +- source/Trek-12/Trek-12/Views/PageBoard.xaml | 71 +- .../Trek-12/Trek-12/Views/PageBoard.xaml.cs | 43 +- 4 files changed, 511 insertions(+), 449 deletions(-) diff --git a/source/Trek-12/ConsoleApp/Program.cs b/source/Trek-12/ConsoleApp/Program.cs index e623b1c..456e050 100644 --- a/source/Trek-12/ConsoleApp/Program.cs +++ b/source/Trek-12/ConsoleApp/Program.cs @@ -1,414 +1,415 @@ -// See https://aka.ms/new-console-template for more information - -using Models; -using Models.Events; -using Models.Game; -using Models.Interfaces; -using DataContractPersistence; -using Microsoft.Extensions.Logging; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -namespace ConsoleApp; - -class Program -{ - - static Game Game { get; set; } - - /// - /// Main function of the console app - /// - /// - static void Main(string[] args) - { - Console.WriteLine("Enter your pseudo:"); - string? pseudo = Console.ReadLine(); - if (pseudo != null) - { - IPersistence persistence = new DataContractXml(); - Player player = new Player(pseudo, "test.png"); - - Map map = new Map("Dunai","background"); - Game = new Game(persistence); - - // Abonnement aux événements - Game.GameStarted += OnGameStarted!; - Game.GameEnded += OnGameEnded!; - Game.BoardUpdated += OnBoardUpdated!; - Game.DiceRolled += OnDiceRolled!; - Game.OperationChosen += OnOperationChosen!; - Game.CellChosen += OnCellChosen!; - Game.PlayerChooseOp += OnPlayerSelectionOp!; - Game.PlayerOption += OnPlayerOption!; - Game.PlayerChooseCell += OnPlayerSelectionCell!; - - // Initialisation - Game.InitializeGame(map, player); - } - - - } - - static void OnPlayerSelectionCell(Object sender, PlayerChooseCellEventArgs e) - { - int row, column; - while (true) - { - Console.ForegroundColor = ConsoleColor.Cyan; - Console.WriteLine("Enter the position of the cell you want to play"); - Console.WriteLine("Enter the row number (0-6)"); - Console.ResetColor(); - if (!int.TryParse(Console.ReadLine(), out row) || row < 0 || row >= 7) - { - Console.ForegroundColor= ConsoleColor.Red; - Console.WriteLine("Invalid row number. Please enter a number between 0 and 6."); - Console.ResetColor(); - continue; - } - Console.ForegroundColor = ConsoleColor.Cyan; - Console.WriteLine("Enter the column number (0-6)"); - Console.ResetColor(); - if (!int.TryParse(Console.ReadLine(), out column) || column < 0 || column >= 7) - { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine("Invalid column number. Please enter a number between 0 and 6."); - Console.ResetColor(); - continue; - } - - Game.PlayerCell = new Cell(row, column); - break; - } - } - - static void OnPlayerOption(object sender, PlayerOptionEventArgs e) - { - Console.WriteLine(); - if(e.Turn != 1) - { - IEnumerable PlayedCellsQuery = +// See https://aka.ms/new-console-template for more information + +using Models; +using Models.Events; +using Models.Game; +using Models.Interfaces; +using DataContractPersistence; +using Microsoft.Extensions.Logging; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; + +namespace ConsoleApp; + +class Program +{ + + static Game Game { get; set; } + + /// + /// Main function of the console app + /// + /// + static void Main(string[] args) + { + Console.WriteLine("Enter your pseudo:"); + string? pseudo = Console.ReadLine(); + if (pseudo != null) + { + IPersistence persistence = new DataContractXml(); + Player player = new Player(pseudo, "test.png"); + + Map map = new Map("Dunai","background"); + Game = new Game(persistence); + + // Abonnement aux événements + Game.GameStarted += OnGameStarted!; + Game.GameEnded += OnGameEnded!; + Game.BoardUpdated += OnBoardUpdated!; + Game.DiceRolled += OnDiceRolled!; + Game.OperationChosen += OnOperationChosen!; + Game.CellChosen += OnCellChosen!; + Game.PlayerChooseOp += OnPlayerSelectionOp!; + Game.PlayerOption += OnPlayerOption!; + Game.PlayerChooseCell += OnPlayerSelectionCell!; + + // Initialisation + Game.InitializeGame(map, player); + Game.GameLoop(); + } + + + } + + static void OnPlayerSelectionCell(Object sender, PlayerChooseCellEventArgs e) + { + int row, column; + while (true) + { + Console.ForegroundColor = ConsoleColor.Cyan; + Console.WriteLine("Enter the position of the cell you want to play"); + Console.WriteLine("Enter the row number (0-6)"); + Console.ResetColor(); + if (!int.TryParse(Console.ReadLine(), out row) || row < 0 || row >= 7) + { + Console.ForegroundColor= ConsoleColor.Red; + Console.WriteLine("Invalid row number. Please enter a number between 0 and 6."); + Console.ResetColor(); + continue; + } + Console.ForegroundColor = ConsoleColor.Cyan; + Console.WriteLine("Enter the column number (0-6)"); + Console.ResetColor(); + if (!int.TryParse(Console.ReadLine(), out column) || column < 0 || column >= 7) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Invalid column number. Please enter a number between 0 and 6."); + Console.ResetColor(); + continue; + } + + Game.PlayerCell = new Cell(row, column); + break; + } + } + + static void OnPlayerOption(object sender, PlayerOptionEventArgs e) + { + Console.WriteLine(); + if(e.Turn != 1) + { + IEnumerable PlayedCellsQuery = from cell in e.Board - where cell.Valid == true - where cell.Value != null - select cell; - foreach (var item in e.Board) - { - if (item.X == 6) - Console.WriteLine(); - if (!item.Valid) - Console.Write(" "); - else if (item.Value != null) - Console.Write($"{item.Value}"); - else - { - foreach (var item1 in PlayedCellsQuery) - { - if (Math.Abs(item.X - item1.X) <= 1 && Math.Abs(item.Y - item1.Y) <= 1) - { - Console.ForegroundColor = ConsoleColor.Cyan; - Console.Write($"{e.Resultat}"); - Console.ResetColor(); - } - } - } - } - return; - } - foreach (var item in e.Board) - { - if (!item.Valid) - Console.Write(" "); - else - { - Console.ForegroundColor = ConsoleColor.Cyan; - Console.Write($"{e.Resultat}"); - Console.ResetColor(); - - } - if (item.X == 6) - Console.WriteLine(); - } - Console.WriteLine(); - Console.ForegroundColor = ConsoleColor.Cyan; - Console.WriteLine("Choose an Available cell."); - Console.ResetColor(); - } - - static void OnPlayerSelectionOp(object sender, PlayerChooseOperationEventArgs e) - { - Console.WriteLine(); - DisplayOperationTable(((Game)sender).UsedMap.OperationGrid.ToList()); - Console.WriteLine(); - Console.WriteLine("0. Lower | 1. Higher | 2. Substraction | 3. Addition | 4. Multiplication"); - string? op = Console.ReadLine(); - while (op != "0" && op != "1" && op != "2" && op != "3" && op != "4") - { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine("Invalid operation. Please choose again."); - Console.ResetColor(); - op = Console.ReadLine(); - } - int test = Convert.ToInt32(op); - Game.PlayerOperation = (Operation)test; - - } - - - /// - /// Handles the event when the game has started. - /// - /// - /// - static void OnGameStarted(object sender, GameStartedEventArgs e) - { - Console.WriteLine($"The game has started! Player: {e.CurrentPlayer.Pseudo}"); - } - - /// - /// Handles the event when the game has ended. - /// - /// - /// - static void OnGameEnded(object sender, GameEndedEventArgs e) - { - Console.WriteLine($"The game has ended! Player: {e.CurrentPlayer.Pseudo}"); - Console.WriteLine($"Points: {e.Point}"); - } - - /// - /// Handles the event when the board is updated. - /// - /// - /// - static void OnBoardUpdated(object sender, BoardsUpdateEventArgs e) - { - foreach (var item in e.Boards) - { - if (!item.Valid) - Console.Write(" "); - else if (item.Value != null) - Console.Write($"{item.Value}"); - else Console.Write("O"); - if (item.X == 6) - Console.WriteLine(); - } - } - - /// - /// Handles the event when the dice are rolled. - /// - /// - /// - static void OnDiceRolled(object sender, DiceRolledEventArgs e) - { - // Console.Clear(); - Console.WriteLine($"Dice 1: {e.Dice1Value} | Dice 2: {e.Dice2Value}"); - Console.WriteLine(); - Console.ForegroundColor = ConsoleColor.Cyan; - Console.WriteLine("Choose an operation."); - Console.ResetColor(); - } - - /// - /// Handles the event when an operation is chosen by the player. - /// - /// - /// - static void OnOperationChosen(object sender, OperationChosenEventArgs e) - { - Console.WriteLine($"Operation: {e.Operation}, Result: {e.Result}"); - DisplayOperationTable(((Game)sender).UsedMap.OperationGrid.ToList()); - Cell playerChoice = GetPlayerChoice(); - bool test = ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); - if(!test) - { - Console.WriteLine("Invalid cell. Please choose again."); - Console.WriteLine(); - Console.WriteLine(); - DisplayBoard(((Game)sender).UsedMap); - OnOperationChosen(sender, e); - } - - - - /* - try - { - ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); - } - catch (InvalidCellCoordinatesException err) - { - Console.WriteLine(err.Message); - playerChoice = GetPlayerChoice(); - ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); - } - catch (InvalidCellException err) - { - Console.WriteLine(err.Message); - playerChoice = GetPlayerChoice(); - ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); - } - catch (InvalidPlaceResultException err) - { - Console.WriteLine(err.Message); - playerChoice = GetPlayerChoice(); - ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); - } - */ - } - - /// - /// Handles the event when a cell is chosen by the player. - /// - /// - /// - static void OnCellChosen(object sender, CellChosenEventArgs e) - { - Console.WriteLine($"Cell chosen: ({e.Cell.X}, {e.Cell.Y}) with result: {e.Result}"); - DisplayBoard(((Game)sender).UsedMap); - } - - /// - /// Displays the game board. - /// - /// Used map to display - static void DisplayBoard(Map map) - { - int cpt = 0; - for (int i = 0; i < map.Boards.Count; i++) - { - if (cpt % 6 == 0) - { - Console.Write("| "); - } - - if (map.Boards[i].Value.HasValue) - { - Console.Write(map.Boards[i].Value?.ToString().PadLeft(2)); - } - else - { - Console.Write(" O"); - } - - cpt++; - if (cpt % 6 == 0) - { - Console.Write(" |"); - Console.WriteLine(); - } - } - } - - /// - /// Displays the operation table. - /// - /// The operation table to display. - static void DisplayOperationTable(List operationTable) - { - Console.ForegroundColor = ConsoleColor.Yellow; - foreach ( var cell in operationTable) - { - - if (cell.X == 0 && cell.Y == 0) - Console.Write("Lower => "); - if (cell.X == 0 && cell.Y == 1) - Console.Write("Higher => "); - if (cell.X == 0 && cell.Y == 2) - Console.Write("Substraction => "); - if (cell.X == 0 && cell.Y == 3) - Console.Write("Addition => "); - if (cell.X == 0 && cell.Y == 4) - Console.Write("Multiplication => "); - if (cell.IsChecked) - Console.Write("X | "); - if (!cell.IsChecked) - Console.Write(" | "); - if (cell.X == 3) - Console.WriteLine(); - } - Console.ResetColor(); - } - - /// - /// Gets the cell chosen by the player. - /// - /// The cell chosen by the player. - static Cell GetPlayerChoice() - { - int row, column; - while (true) - { - Console.WriteLine("Enter the position of the cell you want to play"); - Console.WriteLine("Enter the row number (0-5)"); - if (!int.TryParse(Console.ReadLine(), out row) || row < 0 || row >= 6) - { - Console.WriteLine("Invalid row number. Please enter a number between 0 and 5."); - continue; - } - - Console.WriteLine("Enter the column number (0-5)"); - if (!int.TryParse(Console.ReadLine(), out column) || column < 0 || column >= 6) - { - Console.WriteLine("Invalid column number. Please enter a number between 0 and 5."); - continue; - } - - return new Cell(row, column); - } - } - - /// - /// Gets the operation chosen by the player. - /// - /// - /// - static Operation GetPlayerOperation(object? sender) - { - DisplayOperationOptions(); - string? op = Console.ReadLine(); - while (op != "1" && op != "2" && op != "3" && op != "4" && op != "5") - { - Console.WriteLine("Invalid operation. Please choose again."); - op = Console.ReadLine(); - } - int test = Convert.ToInt32(op); - - while(((Game)sender).UsedMap.CheckOperationPossible(test-1)) - { - Console.WriteLine("Invalid operation. Please choose again."); - Console.WriteLine(); - op = Console.ReadLine(); - while (op != "1" && op != "2" && op != "3" && op != "4" && op != "5") - { - Console.WriteLine("Invalid operation. Please choose again."); - op = Console.ReadLine(); - } - test = Convert.ToInt32(op); - } - - return op switch - { - "1" => Operation.ADDITION, - "2" => Operation.SUBTRACTION, - "3" => Operation.MULTIPLICATION, - "4" => Operation.LOWER, - "5" => Operation.HIGHER, - _ => throw new ArgumentOutOfRangeException() - }; - } - - /// - /// Displays the operation options for the player to choose from. - /// - static void DisplayOperationOptions() - { - Console.WriteLine("Choose an operation:"); - Console.WriteLine("1: Addition (+)"); - Console.WriteLine("2: Subtraction (-)"); - Console.WriteLine("3: Multiplication (*)"); - Console.WriteLine("4: Lower Dice (less)"); - Console.WriteLine("5: Higher Dice (high)"); - } + where cell.Valid == true + where cell.Value != null + select cell; + foreach (var item in e.Board) + { + if (item.X == 6) + Console.WriteLine(); + if (!item.Valid) + Console.Write(" "); + else if (item.Value != null) + Console.Write($"{item.Value}"); + else + { + foreach (var item1 in PlayedCellsQuery) + { + if (Math.Abs(item.X - item1.X) <= 1 && Math.Abs(item.Y - item1.Y) <= 1) + { + Console.ForegroundColor = ConsoleColor.Cyan; + Console.Write($"{e.Resultat}"); + Console.ResetColor(); + } + } + } + } + return; + } + foreach (var item in e.Board) + { + if (!item.Valid) + Console.Write(" "); + else + { + Console.ForegroundColor = ConsoleColor.Cyan; + Console.Write($"{e.Resultat}"); + Console.ResetColor(); + + } + if (item.X == 6) + Console.WriteLine(); + } + Console.WriteLine(); + Console.ForegroundColor = ConsoleColor.Cyan; + Console.WriteLine("Choose an Available cell."); + Console.ResetColor(); + } + + static void OnPlayerSelectionOp(object sender, PlayerChooseOperationEventArgs e) + { + Console.WriteLine(); + DisplayOperationTable(((Game)sender).UsedMap.OperationGrid.ToList()); + Console.WriteLine(); + Console.WriteLine("0. Lower | 1. Higher | 2. Substraction | 3. Addition | 4. Multiplication"); + string? op = Console.ReadLine(); + while (op != "0" && op != "1" && op != "2" && op != "3" && op != "4") + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Invalid operation. Please choose again."); + Console.ResetColor(); + op = Console.ReadLine(); + } + int test = Convert.ToInt32(op); + Game.PlayerOperation = (Operation)test; + + } + + + /// + /// Handles the event when the game has started. + /// + /// + /// + static void OnGameStarted(object sender, GameStartedEventArgs e) + { + Console.WriteLine($"The game has started! Player: {e.CurrentPlayer.Pseudo}"); + } + + /// + /// Handles the event when the game has ended. + /// + /// + /// + static void OnGameEnded(object sender, GameEndedEventArgs e) + { + Console.WriteLine($"The game has ended! Player: {e.CurrentPlayer.Pseudo}"); + Console.WriteLine($"Points: {e.Point}"); + } + + /// + /// Handles the event when the board is updated. + /// + /// + /// + static void OnBoardUpdated(object sender, BoardsUpdateEventArgs e) + { + foreach (var item in e.Boards) + { + if (!item.Valid) + Console.Write(" "); + else if (item.Value != null) + Console.Write($"{item.Value}"); + else Console.Write("O"); + if (item.X == 6) + Console.WriteLine(); + } + } + + /// + /// Handles the event when the dice are rolled. + /// + /// + /// + static void OnDiceRolled(object sender, DiceRolledEventArgs e) + { + // Console.Clear(); + Console.WriteLine($"Dice 1: {e.Dice1Value} | Dice 2: {e.Dice2Value}"); + Console.WriteLine(); + Console.ForegroundColor = ConsoleColor.Cyan; + Console.WriteLine("Choose an operation."); + Console.ResetColor(); + } + + /// + /// Handles the event when an operation is chosen by the player. + /// + /// + /// + static void OnOperationChosen(object sender, OperationChosenEventArgs e) + { + Console.WriteLine($"Operation: {e.Operation}, Result: {e.Result}"); + DisplayOperationTable(((Game)sender).UsedMap.OperationGrid.ToList()); + Cell playerChoice = GetPlayerChoice(); + bool test = ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); + if(!test) + { + Console.WriteLine("Invalid cell. Please choose again."); + Console.WriteLine(); + Console.WriteLine(); + DisplayBoard(((Game)sender).UsedMap); + OnOperationChosen(sender, e); + } + + + + /* + try + { + ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); + } + catch (InvalidCellCoordinatesException err) + { + Console.WriteLine(err.Message); + playerChoice = GetPlayerChoice(); + ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); + } + catch (InvalidCellException err) + { + Console.WriteLine(err.Message); + playerChoice = GetPlayerChoice(); + ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); + } + catch (InvalidPlaceResultException err) + { + Console.WriteLine(err.Message); + playerChoice = GetPlayerChoice(); + ((Game)sender).HandlePlayerChoice(playerChoice, e.Result); + } + */ + } + + /// + /// Handles the event when a cell is chosen by the player. + /// + /// + /// + static void OnCellChosen(object sender, CellChosenEventArgs e) + { + Console.WriteLine($"Cell chosen: ({e.Cell.X}, {e.Cell.Y}) with result: {e.Result}"); + DisplayBoard(((Game)sender).UsedMap); + } + + /// + /// Displays the game board. + /// + /// Used map to display + static void DisplayBoard(Map map) + { + int cpt = 0; + for (int i = 0; i < map.Boards.Count; i++) + { + if (cpt % 6 == 0) + { + Console.Write("| "); + } + + if (map.Boards[i].Value.HasValue) + { + Console.Write(map.Boards[i].Value?.ToString().PadLeft(2)); + } + else + { + Console.Write(" O"); + } + + cpt++; + if (cpt % 6 == 0) + { + Console.Write(" |"); + Console.WriteLine(); + } + } + } + + /// + /// Displays the operation table. + /// + /// The operation table to display. + static void DisplayOperationTable(List operationTable) + { + Console.ForegroundColor = ConsoleColor.Yellow; + foreach ( var cell in operationTable) + { + + if (cell.X == 0 && cell.Y == 0) + Console.Write("Lower => "); + if (cell.X == 0 && cell.Y == 1) + Console.Write("Higher => "); + if (cell.X == 0 && cell.Y == 2) + Console.Write("Substraction => "); + if (cell.X == 0 && cell.Y == 3) + Console.Write("Addition => "); + if (cell.X == 0 && cell.Y == 4) + Console.Write("Multiplication => "); + if (cell.IsChecked) + Console.Write("X | "); + if (!cell.IsChecked) + Console.Write(" | "); + if (cell.X == 3) + Console.WriteLine(); + } + Console.ResetColor(); + } + + /// + /// Gets the cell chosen by the player. + /// + /// The cell chosen by the player. + static Cell GetPlayerChoice() + { + int row, column; + while (true) + { + Console.WriteLine("Enter the position of the cell you want to play"); + Console.WriteLine("Enter the row number (0-5)"); + if (!int.TryParse(Console.ReadLine(), out row) || row < 0 || row >= 6) + { + Console.WriteLine("Invalid row number. Please enter a number between 0 and 5."); + continue; + } + + Console.WriteLine("Enter the column number (0-5)"); + if (!int.TryParse(Console.ReadLine(), out column) || column < 0 || column >= 6) + { + Console.WriteLine("Invalid column number. Please enter a number between 0 and 5."); + continue; + } + + return new Cell(row, column); + } + } + + /// + /// Gets the operation chosen by the player. + /// + /// + /// + static Operation GetPlayerOperation(object? sender) + { + DisplayOperationOptions(); + string? op = Console.ReadLine(); + while (op != "1" && op != "2" && op != "3" && op != "4" && op != "5") + { + Console.WriteLine("Invalid operation. Please choose again."); + op = Console.ReadLine(); + } + int test = Convert.ToInt32(op); + + while(((Game)sender).UsedMap.CheckOperationPossible(test-1)) + { + Console.WriteLine("Invalid operation. Please choose again."); + Console.WriteLine(); + op = Console.ReadLine(); + while (op != "1" && op != "2" && op != "3" && op != "4" && op != "5") + { + Console.WriteLine("Invalid operation. Please choose again."); + op = Console.ReadLine(); + } + test = Convert.ToInt32(op); + } + + return op switch + { + "1" => Operation.ADDITION, + "2" => Operation.SUBTRACTION, + "3" => Operation.MULTIPLICATION, + "4" => Operation.LOWER, + "5" => Operation.HIGHER, + _ => throw new ArgumentOutOfRangeException() + }; + } + + /// + /// Displays the operation options for the player to choose from. + /// + static void DisplayOperationOptions() + { + Console.WriteLine("Choose an operation:"); + Console.WriteLine("1: Addition (+)"); + Console.WriteLine("2: Subtraction (-)"); + Console.WriteLine("3: Multiplication (*)"); + Console.WriteLine("4: Lower Dice (less)"); + Console.WriteLine("5: Higher Dice (high)"); + } } \ No newline at end of file diff --git a/source/Trek-12/Models/Game/Game.cs b/source/Trek-12/Models/Game/Game.cs index 4d0f6a7..4e3d2cb 100644 --- a/source/Trek-12/Models/Game/Game.cs +++ b/source/Trek-12/Models/Game/Game.cs @@ -104,6 +104,7 @@ namespace Models.Game public Operation PlayerOperation { get; set; } public Cell PlayerCell { get; set; } + public int Resultat { get; set; } public Rules.Rules GameRules { get; } @@ -326,8 +327,13 @@ namespace Models.Game select cell; foreach (var item in ValidCell) { - if(item.X == playerChoice.X && item.Y == playerChoice.Y) + if (item.X == playerChoice.X && item.Y == playerChoice.Y) + { item.Value = result; + return; + } + + } } @@ -393,7 +399,6 @@ namespace Models.Game { IsRunning = true; GameStarted?.Invoke(this, new GameStartedEventArgs(CurrentPlayer)); - GameLoop(); } /// @@ -408,19 +413,15 @@ namespace Models.Game /// /// The main game loop that runs while the game is active. /// - private void GameLoop() + public void GameLoop() { - int res = 0,turn = 1; - Cell cell; while (IsRunning) { RollAllDice(); - res = PlayerChooseOperation(); - PlayerOption?.Invoke(this,new PlayerOptionEventArgs(UsedMap.Boards.ToList(),res,turn)); + Resultat = PlayerChooseOperation(); PlayerSelectionCell(); - PlaceResult(PlayerCell,res); BoardUpdated?.Invoke(this, new BoardsUpdateEventArgs(UsedMap.Boards.ToList())); - turn++; + Turn++; } } @@ -431,6 +432,7 @@ namespace Models.Game { PlayerChooseOp?.Invoke(this, new PlayerChooseOperationEventArgs(PlayerOperation)); } + PlayerOption?.Invoke(this, new PlayerOptionEventArgs(UsedMap.Boards.ToList(), ResultOperation(PlayerOperation), Turn)); return ResultOperation(PlayerOperation); } @@ -442,6 +444,7 @@ namespace Models.Game PlayerChooseCell?.Invoke(this, new PlayerChooseCellEventArgs(PlayerCell)); } MarkOperationAsChecked(PlayerOperation); + PlaceResult(PlayerCell, Resultat); } /// diff --git a/source/Trek-12/Trek-12/Views/PageBoard.xaml b/source/Trek-12/Trek-12/Views/PageBoard.xaml index 397b0eb..d9aef40 100644 --- a/source/Trek-12/Trek-12/Views/PageBoard.xaml +++ b/source/Trek-12/Trek-12/Views/PageBoard.xaml @@ -6,52 +6,70 @@ BackgroundColor="Bisque"> - - + + -