private void ok_btn_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(spieler1_tbx.Text.Trim()) || String.IsNullOrEmpty(spieler2_tbx.Text.Trim())) { return; } Logik.Player.Player p1 = new Logik.Player.Player(spieler1_tbx.Text[0]); Logik.Player.Player p2 = new Logik.Player.Player(spieler2_tbx.Text[0]); if (spieler2_ki_cbx.Checked) { p2 = new Logik.Player.AIPlayer((int)ki_nud.Value, 3, 3, p2.Symbol); } if (online_modus_cbx.Checked) { Logik.Network.Network client = null; if ((string)protokoll_lbx.SelectedItem == "TCP/IP") { if (server_cbx.Checked) { client = new Logik.Network.TCPServer(host_tbx.Text, int.Parse(port_tbx.Text)); } else { client = new Logik.Network.TCPClient(host_tbx.Text, int.Parse(port_tbx.Text)); } } else { client = new Logik.Network.IRCClient(host_tbx.Text, int.Parse(port_tbx.Text), "#UniTTT-play"); } p2 = new Logik.Player.NetworkPlayer(p2.Symbol, client); _gameMode = new NetworkGame(p1, p2, new BrettDarsteller(3, 3), new Logik.Fields.Brett(3, 3), client); } else { _gameMode = new Game(p1, p2, new BrettDarsteller(3, 3), new Logik.Fields.Brett(3, 3)); } if (spieler2_anfang_cbx.Checked && !online_modus_cbx.Checked) { _gameMode.PlayerChange(); } Logik.WinChecker.GewinnBedingung = (int)gewinnbedingung_nud.Value; DialogResult = System.Windows.Forms.DialogResult.OK; _spieler1Anfang = spieler1_anfang_cbx.Checked && online_modus_cbx.Checked; _spieler2Anfang = spieler2_anfang_cbx.Checked && !online_modus_cbx.Checked; Close(); }
//ki:1 = Reinforcement //ki:2 = Recursion //ki:3 = Minimax //ki:4 = Like //ki:5 = Random7 //ki:6 = Bot static void Main(string[] args) { Logik.Parameterdata parameters = Logik.ParameterInterpreter.InterpretCommandLine(args); Logik.Plugin.PluginManager plugManager = new Logik.Plugin.PluginManager(); int width = parameters.GetValue <int>("breite"); int height = parameters.GetValue <int>("hoehe"); if (!parameters.IsDefined("breite")) { width = 3; } if (!parameters.IsDefined("hoehe")) { height = 3; } Logik.Fields.Field field = new Logik.Fields.Brett(width, height); if (parameters.IsDefined("plugin")) { Logik.Plugin.IPlugin plugin = plugManager.Get(parameters.GetValue <string>("plugin"), Logik.Plugin.PluginTypes.Field); if (plugin is Logik.Fields.Field) { field = (Logik.Fields.Field)plugin; if (plugin is Logik.Plugin.IFieldPlugin) { if (((Logik.Plugin.IFieldPlugin)plugin).ForceFieldSize) { width = field.Width; height = field.Height; } } } } HumanPlayer hPlayer; char aisymb; if (parameters.IsDefined("player")) { char symb = parameters.GetValue <char>("player"); aisymb = Logik.Player.Player.PlayerChange(symb); hPlayer = new HumanPlayer(symb); } else { hPlayer = new HumanPlayer('X'); aisymb = 'O'; } Logik.Player.Player aiplayer = null; if (parameters.GetValue <int>("ki") != default(int)) { aiplayer = new Logik.Player.AIPlayer(parameters.GetValue <int>("ki"), width, height, aisymb); } else if (parameters.GetValue <string>("ki") != default(string)) { aiplayer = new Logik.Player.AIPlayer(parameters.GetValue <string>("ki"), width, height, aisymb); } if (parameters.IsDefined("help") && parameters.Count == 1) { Help(); } else if (parameters.IsDefined("learn")) { if (parameters.IsDefined("human")) { hPlayer.Learn(); } else { if (aiplayer == null) { throw new FormatException(); } Console.Title = string.Format(CultureInfo.CurrentCulture, "UniTTT - {0} Lernmodus", aiplayer.ToString()); ((Logik.Player.AIPlayer)aiplayer).AI.ShowMessageEvent += Console.WriteLine; ((Logik.Player.AIPlayer)aiplayer).AI.GetStringEvent += Console.ReadLine; ((Logik.Player.AIPlayer)aiplayer).AI.GetIntEvent += GetInt; aiplayer.Learn(); } } else if (parameters.IsDefined("network")) { Logik.Network.Network client; string ip = parameters.GetValue <string>("ip"); int port = parameters.GetValue <int>("port"); if (parameters.GetValue <string>("protokoll") == "irc") { client = new Logik.Network.IRCClient(ip, port, parameters.GetValue <string>("channel")); } else { if (parameters.IsDefined("server")) { client = new Logik.Network.TCPServer(ip, port); } else { client = new Logik.Network.TCPClient(ip, port); } } Logik.Game.Game gameMode = new Logik.Game.NetworkGame(hPlayer, new Logik.Player.NetworkPlayer(Logik.Player.Player.PlayerChange(hPlayer.Symbol), client), new BrettDarsteller(width, height), field, client); Game g = new Game(gameMode); g.Run(); } else { Logik.Game.Game gameMode; BrettDarsteller bdar = new BrettDarsteller(width, height); if (parameters.IsDefined("kigame")) { gameMode = new Logik.Game.Game(aiplayer, aiplayer, bdar, field); } else { if (aiplayer != null) { gameMode = new Logik.Game.Game(hPlayer, aiplayer, bdar, field); } else { gameMode = new Logik.Game.Game(new HumanPlayer('X'), new HumanPlayer('O'), bdar, field); } } Game g = new Game(gameMode); g.Run(); } }
//ki:1 = Reinforcement //ki:2 = Recursion //ki:3 = Minimax //ki:4 = Like //ki:5 = Random7 //ki:6 = Bot static void Main(string[] args) { Logik.Parameterdata parameters = Logik.ParameterInterpreter.InterpretCommandLine(args); Logik.Plugin.PluginManager plugManager = new Logik.Plugin.PluginManager(); int width = parameters.GetValue<int>("breite"); int height = parameters.GetValue<int>("hoehe"); if (!parameters.IsDefined("breite")) { width = 3; } if (!parameters.IsDefined("hoehe")) { height = 3; } Logik.Fields.Field field = new Logik.Fields.Brett(width, height); if (parameters.IsDefined("plugin")) { Logik.Plugin.IPlugin plugin = plugManager.Get(parameters.GetValue<string>("plugin"), Logik.Plugin.PluginTypes.Field); if (plugin is Logik.Fields.Field) { field = (Logik.Fields.Field)plugin; if (plugin is Logik.Plugin.IFieldPlugin) { if (((Logik.Plugin.IFieldPlugin)plugin).ForceFieldSize) { width = field.Width; height = field.Height; } } } } HumanPlayer hPlayer; char aisymb; if (parameters.IsDefined("player")) { char symb = parameters.GetValue<char>("player"); aisymb = Logik.Player.Player.PlayerChange(symb); hPlayer = new HumanPlayer(symb); } else { hPlayer = new HumanPlayer('X'); aisymb = 'O'; } Logik.Player.Player aiplayer = null; if (parameters.GetValue<int>("ki") != default(int)) { aiplayer = new Logik.Player.AIPlayer(parameters.GetValue<int>("ki"), width, height, aisymb); } else if (parameters.GetValue<string>("ki") != default(string)) { aiplayer = new Logik.Player.AIPlayer(parameters.GetValue<string>("ki"), width, height, aisymb); } if (parameters.IsDefined("help") && parameters.Count == 1) { Help(); } else if (parameters.IsDefined("learn")) { if (parameters.IsDefined("human")) { hPlayer.Learn(); } else { if (aiplayer == null) throw new FormatException(); Console.Title = string.Format(CultureInfo.CurrentCulture, "UniTTT - {0} Lernmodus", aiplayer.ToString()); ((Logik.Player.AIPlayer)aiplayer).AI.ShowMessageEvent += Console.WriteLine; ((Logik.Player.AIPlayer)aiplayer).AI.GetStringEvent += Console.ReadLine; ((Logik.Player.AIPlayer)aiplayer).AI.GetIntEvent += GetInt; aiplayer.Learn(); } } else if (parameters.IsDefined("network")) { Logik.Network.Network client; string ip = parameters.GetValue<string>("ip"); int port = parameters.GetValue<int>("port"); if (parameters.GetValue<string>("protokoll") == "irc") { client = new Logik.Network.IRCClient(ip, port, parameters.GetValue<string>("channel")); } else { if (parameters.IsDefined("server")) { client = new Logik.Network.TCPServer(ip, port); } else { client = new Logik.Network.TCPClient(ip, port); } } Logik.Game.Game gameMode = new Logik.Game.NetworkGame(hPlayer, new Logik.Player.NetworkPlayer(Logik.Player.Player.PlayerChange(hPlayer.Symbol), client), new BrettDarsteller(width, height), field, client); Game g = new Game(gameMode); g.Run(); } else { Logik.Game.Game gameMode; BrettDarsteller bdar = new BrettDarsteller(width, height); if (parameters.IsDefined("kigame")) { gameMode = new Logik.Game.Game(aiplayer, aiplayer, bdar, field); } else { if (aiplayer != null) { gameMode = new Logik.Game.Game(hPlayer, aiplayer, bdar, field); } else { gameMode = new Logik.Game.Game(new HumanPlayer('X'), new HumanPlayer('O'), bdar, field); } } Game g = new Game(gameMode); g.Run(); } }