예제 #1
0
        public void Parse(Desk desk, Player player, string command)
        {
            switch (command)
            {
            case "上桌":
            case "fork table":
            case "法克忒薄":     // By Charlie Jiang
                //var point = PlayerConfig.GetConfig(player).Point;
                //if (point <= 0)
                //    desk.AddMessage($"你的积分不足以进行游戏! 你现在有{point}点积分.");
                //else
                desk.AddPlayer(player);
                break;

            case "下桌":
                desk.RemovePlayer(player);
                break;

            case "开始游戏":
                if (desk.Players.All(p => p is FakePlayer))
                {
                    desk.AddMessage("仨机器人可不行哟~");
                    return;
                }
                if (desk.PlayerList.Count == 3)
                {
                    desk.Start();
                }
                else
                {
                    desk.AddMessage("人数不够.");
                }
                break;

            case "添加机器人":
                desk.AddPlayer(new FakePlayer(desk));
                break;

            case "移除机器人":
                if (desk.Players.Any(p => p is FakePlayer))
                {
                    desk.RemovePlayer(desk.Players.First(p => p is FakePlayer));
                }
                break;
            }

            if (command.StartsWith("开始游戏 "))
            {
                var seed = int.Parse(command.Substring(5));
                if (desk.PlayerList.Count == 3)
                {
                    desk.Start(seed);
                }
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            var s = string.Join(", ", Card.CardsPool.Select(card => card.ToString()));

            Console.WriteLine(s);
            var desk = new Desk("gg");

            desk.AddPlayer(new Player("gg", desk));
            desk.AddPlayer(new Player("gg2", desk));
            desk.StartGame();

            DeskRenderer.RenderDesk(desk).Save("test5.png");
        }
예제 #3
0
        public override void Parse(Desk desk, Player player, string command)
        {
            var genericCommand = ToGenericCommand(command);

            switch (genericCommand)
            {
            case "join":
                desk.AddPlayer(player);
                break;

            case "leave":
                desk.RemovePlayer(player);
                break;

            case "addRobot":
                desk.AddMessage("请使用 添加机器人 [昵称]");
                break;

            case "start":
                desk.StartGame();
                break;
            }

            if (command.StartsWith("添加机器人 "))
            {
                var nick = command.Substring(6);
                desk.AddPlayer(new FakePlayer(nick, desk));
            }

            if (command.StartsWith("移除机器人 "))
            {
                var nick    = command.Substring(6);
                var players = desk.PlayerList.OfType <FakePlayer>().Where(p => p.Nick == nick).ToArray();
                if (players.Length == 0)
                {
                    return;
                }
                desk.RemovePlayer(players.First());
            }
        }
예제 #4
0
        public override void Parse(Desk desk, Player player, string command)
        {
            switch (command.ToUpper())
            {
            case "加入UNO":
                desk.AddPlayer(player);
                break;

            case "离开UNO":
                desk.RemovePlayer(player);
                break;

            case "开始UNO":
                desk.StartGame();
                break;
            }
        }
예제 #5
0
        static void Main(string[] args)
        {
            var desk    = new Desk("test");
            var players = new List <Player>
            {
                new Player("1", desk)
                {
                    Cards =
                    {
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                    }
                },
                new Player("2", desk)
                {
                    Cards =
                    {
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                    }
                },
                new Player("3", desk)
                {
                    Cards =
                    {
                        new Card(CardValue.Eight, CardColor.Blue),
                    }
                },
                new Player("4", desk)
                {
                    Cards =
                    {
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                        new Card(CardValue.Eight, CardColor.Blue),
                    }
                },
                new Player("5", desk)
                {
                    Cards =
                    {
                        new Card(CardValue.Eight, CardColor.Blue),
                    }
                },
            };

            desk.LastCard = Card.Generate();
            foreach (var player in players)
            {
                desk.AddPlayer(player);
            }
            desk.StartGame();
            //desk._currentParser.CurrentIndex = 2;
            desk.ParseMessage("1", "摸");
            DeskRenderer.RenderDesk(desk).Save("test3.png");
            //desk.Reversed = true;
            DeskRenderer.RenderDesk(desk).Save("test4.png");

            //DeskRenderer.RenderDesk(desk).Save("test5.png");
        }
예제 #6
0
        public void Parse(Desk desk, Player player, string command)
        {
            switch (command)
            {
            case "上桌":
            case "fork table":
            case "法克忒薄":     // By Charlie Jiang
                var point = PlayerConfig.GetConfig(player).Point;
                if (point <= -100000)
                {
                    desk.AddMessage($"CNM 这里是CY 你们的印钞厂停业了.");
                }
                else if (point <= -2000)
                {
                    desk.AddMessage("你输光了.");
                }
                else if (point == 0)
                {
                    desk.AddMessage("你没输入过'领取积分'");
                }
                else
                {
                    desk.AddPlayer(player);
                }
                break;

            case "下桌":
                desk.RemovePlayer(player);
                break;

            case "开始游戏":
                if (desk.Players.Count(p => p is FakePlayer) >= 2)
                {
                    desk.AddMessageLine("游戏要和朋友一起玩才好玩嘛!如果你想看机器人打架 可以@管理员 '表演开始'.");

                    return;
                }

                if (desk.PlayerList.Count == 3)
                {
                    desk.Start();
                }
                else
                {
                    desk.AddMessage("人数不够.");
                }
                break;

            case "添加机器人":
                desk.AddPlayer(new FakePlayer(desk));
                break;

            case "移除机器人":
                if (desk.Players.Any(p => p is FakePlayer))
                {
                    desk.RemovePlayer(desk.Players.First(p => p is FakePlayer));
                }
                break;
            }

            if (command.StartsWith("开始游戏 ") && PlayerConfig.GetConfig(player).IsAdmin)
            {
                var seed = int.Parse(command.Substring(5));
                if (desk.PlayerList.Count == 3)
                {
                    desk.Start(seed);
                }
            }
            if (command.StartsWith("表演开屎") && PlayerConfig.GetConfig(player).IsAdmin)
            {
                if (desk.Players.Any())
                {
                    desk.AddMessage("有玩家了不可以使用.");
                    return;
                }

                for (int i = 0; i < 3; i++)
                {
                    desk.AddPlayer(new FakePlayer(desk));
                }
                desk.Start();
            }
        }
예제 #7
0
파일: Program.cs 프로젝트: Cyl18/UnoSharp
        private static void Main(string[] args)
        {
            //var s = string.Join(", ", Card.CardsPool.Select(card => card.ToString()));
            //Console.WriteLine(s);

            // To use code below you need to change some access modifiers and comment Line 55 (image.Resize(image.Width / 3, image.Height / 3).Save(filename);) in ImageExtensions.cs

            Desk nd   = new Desk("222");
            var  conf = Config.Get();
            var  nks  = conf.Nicks;

            nks["LasmGratel"]   = "苟枫凌";
            nks["Cyl17"]        = "A125";
            nks["CharlieJiang"] = "RED";
            nks["Baka84"]       = "膜法少女LG大续命师";
            conf.Save();

            nd.AddPlayer(new Player("LasmGratel", nd));
            nd.AddPlayer(new Player("Cyl17", nd));
            nd.AddPlayer(new Player("Baka84", nd));
            nd.AddPlayer(new Player("CharlieJiang", nd));

            nd.StartGame();
            Thread.Sleep(1000);
            var timer = new Timer(100);

            timer.Elapsed += (sender, aargs) =>
            {
                var desk = nd;
                Samsara.DoAutoSubmitCard(desk);
                if (desk.Message != null)
                {
                    var msg = desk.Message;
                    desk.ClearMessage();
                    Console.WriteLine(msg);
                }

                foreach (var player in desk.Players.Where(player => player.Message != null))
                {
                    var msg = player.Message;
                    player.ClearMessage();
                    Console.WriteLine(msg);
                }
            };
            timer.Start();
            //nd.CurrentParser.Reversed = true;
            //nd.CurrentParser.CurrentIndex = 0;
            nd.CurrentPlayer.AddCardsAndSort(1000);
            Thread.Sleep(10000);
            for (int i = 0; i < 1; i++)
            {
                nd.RenderDesk().Save("GG.png");
            }
            Thread.Sleep(1000000);

            // nd.RenderDesk();
            //  nd.RenderDesk();
            //   nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();
            //     nd.RenderDesk();
            //    nd.RenderDesk();
            //    nd.RenderDesk();

            //Card.CardsPool.ToImage().Save("test.png");
            //DeskRenderer.RenderDesk(desk).Save("test5.png");
            //var writer = File.CreateText("test.txt");
            //writer.Write(GameStepBase.ToGenericCommand("摸"));
            //writer.Close();
        }
예제 #8
0
        public void Parse(Desk desk, Player player, string command)
        {
            switch (command)
            {
            case "上桌":
            case "fork table":
            case "法克忒薄":     // By Charlie Jiang
                var point = PlayerConfig.GetConfig(player).Point;
                if (point <= -100000)
                {
                    desk.AddMessage($"CNM 这里是CY 你们的印钞厂停业了.");
                }
                else if (point <= 0)
                {
                    desk.AddMessage("您输完了/没领取过分.");
                }
                else
                {
                    desk.AddPlayer(player);
                }
                break;

            case "下桌":
                desk.RemovePlayer(player);
                break;

            case "开始游戏":
                if (desk.Players.All(p => p is FakePlayer))
                {
                    desk.AddMessage("仨机器人可不行哟~");
                    return;
                }

                if (desk.PlayerList.Count == 3)
                {
                    desk.Start();
                }
                else
                {
                    desk.AddMessage("人数不够.");
                }
                break;

            case "添加机器人":
                desk.AddPlayer(new FakePlayer(desk));
                break;

            case "移除机器人":
                if (desk.Players.Any(p => p is FakePlayer))
                {
                    desk.RemovePlayer(desk.Players.First(p => p is FakePlayer));
                }
                break;
            }

            if (command.StartsWith("开始游戏 ") && PlayerConfig.GetConfig(player).IsAdmin)
            {
                var seed = int.Parse(command.Substring(5));
                if (desk.PlayerList.Count == 3)
                {
                    desk.Start(seed);
                }
            }
        }