private bool GetCoordinatesFromConsole(GameFieldPlayer player) { if (player == GameFieldPlayer.Blue) { Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Add meg a koordinánát, ahova lépni szeretnél. (0 és 6 között) (Elvárt formátum: 4,6): "); string input = Console.ReadLine(); Console.ForegroundColor = ConsoleColor.White; int i = int.Parse(input.Split(',')[0]); int j = int.Parse(input.Split(',')[1]); if (!GameTable.IsFree(i, j)) { return(false); } GameTable.SetPlayer(player, i, j); return(true); } return(false); }
public void MoveCPU(GameFieldPlayer player) { bool done = false; while (!done) { int i = rnd.Next(0, Fields.GetLength(0)); int j = rnd.Next(0, Fields.GetLength(1)); while (Fields[i, j].Player != player) { i = rnd.Next(0, Fields.GetLength(0)); j = rnd.Next(0, Fields.GetLength(1)); } Direction direction; int attemptions = 0; do { direction = (Direction)attemptions++; } while (!MovePlayer(player, i, j, direction) && attemptions < 5); if (attemptions < 5) { done = true; } } }
private bool GetCoordinatesToRemoveTheOpponentFromConsole(GameFieldPlayer player) { if (player == GameFieldPlayer.Blue) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("MALOM!"); Console.Write("Add meg a koordinánát, ahonnan az ellenfél bábuját el szeretnéd venni (0 és 6 között) (Elvárt formátum: 4,6) (exit: mentés és kilépés): "); string input = Console.ReadLine(); if (input == "exit") { Save(); isRunning = false; return(true); } else { Console.ForegroundColor = ConsoleColor.White; int i = int.Parse(input.Split(',')[0]); int j = int.Parse(input.Split(',')[1]); return(GameTable.RemoveOpponent(player, i, j)); } } return(false); }
private void SetCoordinatesByCPU(GameFieldPlayer player = GameFieldPlayer.Red) { int i, j; do { i = rnd.Next(0, 7); j = rnd.Next(0, 7); } while (!GameTable.IsFree(i, j)); GameTable.SetPlayer(player, i, j); }
public bool MovePlayer(GameFieldPlayer player, int iFrom, int jFrom, int iTo, int jTo) { if (IsFree(iTo, jTo)) { Fields[iFrom, jFrom].Player = GameFieldPlayer.None; Fields[iTo, jTo].Player = player; return(true); } return(false); }
private bool GetCoordinatesToMoveFromConsole(GameFieldPlayer player) { if (player == GameFieldPlayer.Blue) { Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Add meg a koordinánát, amelyik bábuval lépni szeretnél. (0 és 6 között) (Elvárt formátum: 4,6) (exit: mentés és kilépés): "); string input = Console.ReadLine(); if (input == "exit") { Save(); isRunning = false; return(true); } else { int iFrom = int.Parse(input.Split(',')[0]); int jFrom = int.Parse(input.Split(',')[1]); Console.Write("A nyilak segítségével add meg, hogy melyik irányba szeretnél tovább haladni."); ConsoleKey keyPressed; do { keyPressed = Console.ReadKey(false).Key; } while (keyPressed != ConsoleKey.UpArrow && keyPressed != ConsoleKey.DownArrow && keyPressed != ConsoleKey.LeftArrow && keyPressed != ConsoleKey.RightArrow); Console.ForegroundColor = ConsoleColor.White; switch (keyPressed) { case ConsoleKey.UpArrow: return(GameTable.MovePlayer(player, iFrom, jFrom, Direction.Up)); case ConsoleKey.DownArrow: return(GameTable.MovePlayer(player, iFrom, jFrom, Direction.Down)); case ConsoleKey.LeftArrow: return(GameTable.MovePlayer(player, iFrom, jFrom, Direction.Left)); case ConsoleKey.RightArrow: return(GameTable.MovePlayer(player, iFrom, jFrom, Direction.Right)); } } } return(false); }
public bool HasMill(GameFieldPlayer player) { foreach (PossibleMill possibleMill in possibleMills) { if (Fields[possibleMill.Points[0].X, possibleMill.Points[0].Y].Player == player && Fields[possibleMill.Points[1].X, possibleMill.Points[1].Y].Player == player && Fields[possibleMill.Points[2].X, possibleMill.Points[2].Y].Player == player) { return(true); } } return(false); }
public bool AllInMill(GameFieldPlayer player) { for (int i = 0; i < Fields.GetLength(0); i++) { for (int j = 0; j < Fields.GetLength(1); j++) { if (!IsInMill(player, i, j)) { return(false); } } } return(true); }
public void RemoveOpponentCPU() { GameFieldPlayer cpu = GameFieldPlayer.Red; GameFieldPlayer opponent = GameFieldPlayer.Blue; int i = rnd.Next(0, Fields.GetLength(0)); int j = rnd.Next(0, Fields.GetLength(1)); while (Fields[i, j].Player != opponent && (!IsInMill(opponent, i, j) || AllInMill(opponent))) { i = rnd.Next(0, Fields.GetLength(0)); j = rnd.Next(0, Fields.GetLength(1)); } RemoveOpponent(cpu, i, j); }
public int GetNumberOfFields(GameFieldPlayer player) { int num = 0; for (int i = 0; i < Fields.GetLength(0); i++) { for (int j = 0; j < Fields.GetLength(1); j++) { if (Fields[i, j].Player == player) { num++; } } } return(num); }
public bool IsInMill(GameFieldPlayer player, int i, int j) { foreach (PossibleMill possibleMill in possibleMills) { if (Fields[possibleMill.Points[0].X, possibleMill.Points[0].Y].Player == player && Fields[possibleMill.Points[1].X, possibleMill.Points[1].Y].Player == player && Fields[possibleMill.Points[2].X, possibleMill.Points[2].Y].Player == player && ((possibleMill.Points[0].X == i && possibleMill.Points[0].Y == j) || (possibleMill.Points[1].X == i && possibleMill.Points[1].Y == j) || (possibleMill.Points[2].X == i && possibleMill.Points[2].Y == j) )) { return(true); } } return(false); }
internal bool RemoveOpponent(GameFieldPlayer player, int i, int j) { GameFieldPlayer opponent = GameFieldPlayer.Red; if (player == GameFieldPlayer.Red) { opponent = GameFieldPlayer.Blue; } if (IsUseable(i, j) && Fields[i, j].Player == opponent && (AllInMill(player) || !IsInMill(opponent, i, j))) { Fields[i, j].Player = GameFieldPlayer.None; return(true); } return(false); }
private bool GetCoordinatesToMoveFromConsoleEndGame(GameFieldPlayer player) { if (player == GameFieldPlayer.Blue) { Console.ForegroundColor = ConsoleColor.Blue; Console.Write("Add meg a koordinánát, amelyik bábuval lépni szeretnél. (0 és 6 között) (Elvárt formátum: 4,6) (exit: mentés és kilépés): "); string input = Console.ReadLine(); if (input == "exit") { Save(); isRunning = false; return(true); } else { int iFrom = int.Parse(input.Split(',')[0]); int jFrom = int.Parse(input.Split(',')[1]); Console.Write("Add meg a koordinánát, ahova lépni szeretnél. (0 és 6 között) (Elvárt formátum: 4,6): "); input = Console.ReadLine(); Console.ForegroundColor = ConsoleColor.White; int iTo = int.Parse(input.Split(',')[0]); int jTo = int.Parse(input.Split(',')[1]); if (!GameTable.IsFree(iTo, jTo)) { return(false); } return(GameTable.MovePlayer(player, iFrom, jFrom, iTo, jTo)); } } return(false); }
internal bool SteppedToMill(GameFieldPlayer blue) { return(steppedToMill); }
public bool MovePlayer(GameFieldPlayer player, int i, int j, Direction direction) { int newCoordinate; if (direction == Direction.Up) { newCoordinate = i; while (newCoordinate >= 0 && !IsFree(newCoordinate, j)) { newCoordinate--; } } else if (direction == Direction.Down) { newCoordinate = i; while (newCoordinate < Fields.GetLength(0) && !IsFree(newCoordinate, j)) { newCoordinate++; } } else if (direction == Direction.Right) { newCoordinate = j; while (newCoordinate < Fields.GetLength(1) && !IsFree(i, newCoordinate)) { newCoordinate++; } } else //if (direction == Direction.Left) { newCoordinate = j; while (newCoordinate >= 0 && !IsFree(i, newCoordinate)) { newCoordinate--; } } if (0 <= newCoordinate && newCoordinate < Fields.GetLength(0)) { if ((direction == Direction.Down || direction == Direction.Up) && IsFree(newCoordinate, j)) { Fields[i, j].Player = GameFieldPlayer.None; Fields[newCoordinate, j].Player = player; steppedToMill = IsInMill(player, newCoordinate, j); } else { Fields[i, j].Player = GameFieldPlayer.None; Fields[i, newCoordinate].Player = player; steppedToMill = IsInMill(player, i, newCoordinate); } return(true); } return(false); }
public void SetPlayer(GameFieldPlayer player, int i, int j) { Fields[i, j].Player = player; steppedToMill = IsInMill(player, i, j); }