/// <summary> /// Get player move /// </summary> /// <returns></returns> public virtual GameDB.MoveType GetMove() { // move to return GameDB.MoveType res = (GameDB.MoveType) 0; if (delagateUserMoveLogic != null) { res = delagateUserMoveLogic(); } return(res); }
/// <summary> /// Record last match informations /// </summary> /// <param name="opponentmov"></param> /// <param name="playermov"></param> /// <param name="matchres"></param> public void RecordGameResult(GameDB.MoveType opponentmov, GameDB.MoveType playermov, GameDB.MatchResult matchres) { OpponentHistory.Add(opponentmov); PlayerMoveHistory.Add(playermov); MatchResultHistory.Add(matchres); // Increase GameControler win counter if win if (matchres == GameDB.MatchResult.eWin) { currentGameWinCnt++; } }
/// <summary> /// Move strategy : Random /// </summary> /// <returns></returns> public override GameDB.MoveType GetMove() { GameDB.MoveType res = (GameDB.MoveType) 0; Console.WriteLine("CPU : " + this.GetName()); // Get the randome move from 1 to PlayerMove list count int value = new Random().Next(1, this.GetPlayerMoves().Count); res = (GameDB.MoveType)value; return(res); }
public override GameDB.MoveType GetMove() { GameDB.MoveType res = (GameDB.MoveType) 0; Console.WriteLine("Player : " + this.GetName()); Console.WriteLine(""); Console.WriteLine("Choose your move : "); Console.WriteLine(""); int keyindex = 0; // Show list of move to player foreach (GameDB.MoveType mv in this.GetPlayerMoves()) { // Increase index 1 => Move1 2 => Move2 so and so keyindex++; // Add separator before excepted for the first one XX / YY / ZZ if (keyindex > 1) { Console.Write(" / "); } Console.Write(keyindex.ToString() + " => " + mv.ToString()); } Console.WriteLine(""); bool validinput = false; while (validinput == false) { char input = Console.ReadKey().KeyChar; int value = (input - '0') - 1; if ((value >= 0) && (value <= keyindex)) { validinput = true; res = (GameDB.MoveType)value; } } return(res); }
/// <summary> /// Move strategy : Random /// </summary> /// <returns></returns> public override GameDB.MoveType GetMove() { GameDB.MoveType res = (GameDB.MoveType) 0; Console.WriteLine("CPU : " + this.GetName()); bool FoundCpuMove = false; if (MatchResultHistory.Count > 0) { GameDB.MoveType prvMove = OpponentHistory[OpponentHistory.Count - 1]; foreach (KeyValuePair <GameDB.MoveType, List <GameDB.MoveType> > listMove in GameDB.MoveTable) { foreach (GameDB.MoveType mvt in GameDB.MoveTable[listMove.Key]) { if (mvt == prvMove) { res = listMove.Key; FoundCpuMove = true; break; } } if (FoundCpuMove) { break; } } } else { // Get the randome move from 1 to PlayerMove list count int value = new Random().Next(1, this.GetPlayerMoves().Count); res = (GameDB.MoveType)value; } return(res); }