Esempio n. 1
0
 static void Ping(SchereSteinPapierArbiter arbiter)
 {
     if (GetNonEmptyInput("Enter name of player to ping:", out string name))
     {
         Console.WriteLine(arbiter.PingPlayer(name));
     }
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            string baseAddress = "net.tcp://localhost:{0}";

            baseAddress = string.Format(baseAddress, 9090);

            var instance = new SchereSteinPapierArbiter();
            var uri      = new Uri(baseAddress);

            using (ServiceHost host = new ServiceHost(instance, uri))
            {
                var binding = new NetTcpBinding();
                binding.Security.Mode  = SecurityMode.None; // don't ask for authetication
                binding.ReceiveTimeout = TimeSpan.MaxValue; // do not timeout at all!
                binding.SendTimeout    = TimeSpan.MaxValue;
                var endpoint = host.AddServiceEndpoint(
                    typeof(ISchereSteinPapierArbiter),
                    binding,
                    SchereSteinPapierTools.ArbiterService);
                host.Open();
                Console.WriteLine("Schere Stein Papier Arbiter ready - enter quit to stop");

                var cmd = Console.ReadLine();
                while (cmd.Trim() != "quit")
                {
                    if (cmd == "show")
                    {
                        ShowPlayers(instance.RegisteredPlayers);
                    }
                    else if (cmd == "play")
                    {
                        if (GetNonEmptyInput("Enter name of player 1:", out string name1))
                        {
                            if (GetNonEmptyInput("Enter name of player 2:", out string name2))
                            {
                                var summary = instance.Play(name1, name2, 100);
                                Console.WriteLine("**********************************");
                                Console.WriteLine("* Winner: {0} ", summary.Winner);
                                Console.WriteLine("* Winning ratio: {0}", summary.WinnerSuccessRatio);
                                Console.WriteLine("**********************************");
                            }
                        }
                    }
                    else if (cmd == "ping")
                    {
                        Ping(instance);
                    }
                    else if (cmd == "tournament")
                    {
                        instance.ResetVictoryStats();
                        instance.PlayAll(instance.RegisteredPlayers.Select <
                                             KeyValuePair <string, string>, string>(x => x.Key), 200);
                        instance.PrintVictoryStats();
                    }
                    cmd = Console.ReadLine();
                }
                instance.CloseAllPlayers();
            }
        }