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>(); }
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(); } }
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; }
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(); } }
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(); }