Пример #1
0
 public SampleUI(int w, int h, char _empty = ' ', int anchor_v = 0, int anchor_h = 0)
 {
     this.canvas  = new ConsoleCanvas(w, h, _empty, anchor_v, anchor_h);
     draw_buff    = canvas.GetBuffer();
     color_buff   = canvas.GetColorBuffer();
     this.MsgList = new List <string>();
 }
Пример #2
0
        static void Main(string[] args)
        {
            canvas       = new ConsoleCanvas(width, height);
            buffer       = canvas.GetBuffer();
            color_buffer = canvas.GetColorBuffer();
            Rule.Init();

            int level = 1;

            if (args.Length > 1)
            {
                level = int.Parse(args[1]);
            }
            bool game_ok = true;

            while (game_ok)
            {
                // 关卡
                StageLogic();

                canvas.ClearBuffer_DoubleBuffer();
                DrawAll();
                canvas.Refresh_DoubleBuffer();

                Console.ReadLine();
            }
        }
Пример #3
0
        public Game(int scence_h_size = 55, int scence_v_size = 35)
        {
            SenceWidth  = scence_h_size;
            SenceHeigth = scence_v_size;
            StageManager.LoadAllStage();
            this.stage = StageManager.GetStageByIdx(0);
            this.gsm   = GameStatusManger.GetInstance();
            // gsm.Inital();
            this.gsm.stage = this.stage;

            // TODO: adopt the new draw system
            // new draw buffer
            stagecanvas    = new ConsoleCanvas(SenceWidth, SenceHeigth, anchor_h: 2, anchor_v: 2);
            gameMsgUI      = new GameMsgUI(SenceWidth, 10, anchor_v: SenceHeigth + 2, anchor_h: 2);
            playerStatusUI = new PlayerStatusMsgUI(30, SenceHeigth, anchor_v: 2, anchor_h: 2 * (SenceWidth + 1) + 2);
            // gameMsgCanvas = new ConsoleCanvas(SenceWidth, 10, anchor_v: SenceHeigth + 2, anchor_h: 2);
            // playerStatusUICanvas = new ConsoleCanvas(25, SenceHeigth, anchor_v: 2, anchor_h: 2*(SenceWidth+1) + 2);


            draw_buffer  = stagecanvas.GetBuffer();
            color_buffer = stagecanvas.GetColorBuffer();
            stagecanvas.drawEdge();
            gameMsgUI.canvas.drawEdge();
            playerStatusUI.canvas.drawEdge();

            BulletManager.gsm = this.gsm;
        }
Пример #4
0
        static void Main(string[] args)
        {
            Console.SetWindowSize(25, 10);
            Console.Title = "2048 Game";
            canvas        = new ConsoleCanvas(21, 9);
            buffer        = canvas.GetBuffer();
            colorBuffer   = canvas.GetColorBuffer();

            nums = new int[4, 4];
            RandNewNum();

            // 先刷新一次界面
            canvas.ClearBuffer_DoubleBuffer();
            DrawAll();
            canvas.Refresh_DoubleBuffer();

            while (true)
            {
                GameLogic();

                canvas.ClearBuffer_DoubleBuffer();
                DrawAll();
                canvas.Refresh_DoubleBuffer();
            }
        }
Пример #5
0
        static void Main(string[] args)
        {
            int flag = minesweeper;

            canvas       = new ConsoleCanvas(width, height + 3);
            buffer       = canvas.GetBuffer();
            color_buffer = canvas.GetColorBuffer();
            player.SetPos(0, 0);                                                  // 默认位置

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); // 计算用时
            int[,] mine     = initMine();
            int[,] saveMine = SaveMap(mine);
            int[,] userMine = InitUser(mine.GetLength(0), mine.GetLength(1));


            bool   b   = true;
            string res = "不好意思,您输了。下次走运!";

            sw.Start(); // 计时开始
            while (b)
            {
                below_text   = "按U标记,按A打开,按IJKL移动";
                level_target = $"当前雷数{minesweeper},剩余标记{flag}";
                DrawAll(userMine); // 显示棋盘
                int count = InputNum();
                if (count == 1)
                {
                    b = StartGame(mine, userMine); //
                    if (GameOver(userMine, saveMine))
                    {
                        res = "恭喜!您赢了!";
                        break;
                    }
                }
                else if (count == 0)
                {
                    if (userMine[player.i, player.j] != -10 && userMine[player.i, player.j] < 0)
                    {
                        userMine[player.i, player.j] = -10;
                        flag--;
                    }
                    else if (userMine[player.i, player.j] == -10)
                    {
                        userMine[player.i, player.j] = -2;
                        flag++;
                    }
                }
            }
            sw.Stop(); // 计时结束
            canvas.ClearBuffer_DoubleBuffer();
            DrawOther(saveMine);
            canvas.Refresh_DoubleBuffer();
            Console.WriteLine();
            Console.Write(res);
            Console.WriteLine("时间:{0} 秒", sw.ElapsedMilliseconds / 1000);
            Console.ReadLine();
        }