예제 #1
0
        static void Main(string[] args)
        {
            Console.SetWindowSize(150, 60);

            SplashWriter splashscreen = new SplashWriter(5, 5, 1, ConsoleColor.Black);

            splashscreen.WriteWord("TETRIS", ConsoleColor.Black, TextStyles.Calico);

            Console.WriteLine("\n\nHit any key to play.");
            Console.WriteLine("\n\nq at any time quits.");

            ConsoleKey initial = Console.ReadKey().Key;
            bool       play    = true;

            if (initial == ConsoleKey.P)
            {
                Block.Height = 1;
                Presentation tetris = new Presentation();
                tetris.Start();
            }

            if (initial == ConsoleKey.Q)
            {
                play = false;
            }

            while (play)
            {
                Game game = new Game(startX, startY, boardHeight, boardWidth, ms);
                play = game.playGame();
            }
        }
예제 #2
0
        public void Start()
        {
            Console.CursorVisible = false;
            Console.Clear();
            Console.BackgroundColor = ConsoleColor.White;
            Console.Clear();

            SplashWriter title = new SplashWriter(5, 5, 1, ConsoleColor.Black);
            SplashWriter label = new SplashWriter(5, 5, 1, ConsoleColor.Black);


            label.WriteWord("TETRIS", ConsoleColor.Black, TextStyles.Calico);

            Console.ReadKey();

            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;

            Console.WriteLine("\n\n     The Presentation");

            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;

            Console.ReadKey();

            currentY = Console.CursorTop;


            string[] ProgramMethods = { "Main()" };
            UML      ProgramUML     = new UML(6, 25, indent, Console.CursorTop + 3, ConsoleColor.DarkGray, ConsoleColor.White, "Program", ProgramMethods);

            ProgramUML.drawScoreboard();
            ProgramUML.displayMethods();

            string[] ShapeMethods = { "Dictionary<int, int[]> configurations", "Block[] blocks", "Block[] blocks", "-----------------------------------", "Render()", "Delete()", "Move()", "Arrange()", "Mutate()", "CheckCollision()", "CheckBlocks()", "CheckPoints()" };
            UML      ShapeUML     = new UML(17, 43, indent, Console.CursorTop + 5, ConsoleColor.DarkGray, ConsoleColor.White, "Shape", ShapeMethods);

            ShapeUML.drawScoreboard();
            ShapeUML.displayMethods();

            string[] blockMethods = { "Inflate()", "Draw()", "Shift()", "Erase()", "CheckEveryPoint()", "CheckEveryBlock()" };
            UML      blockUML     = new UML(11, 25, indent, Console.CursorTop + 5, ConsoleColor.DarkGray, ConsoleColor.White, "Block", blockMethods);

            blockUML.drawScoreboard();
            blockUML.displayMethods();

            string[] GameMethods = { "PlayGame()", "ProcessInput()", "Lines()", "DebrisFall()", "GameOver()", "SetStats()", "LevelUp()", "UponMyDeath()" };
            UML      GameUML     = new UML(13, 25, indent * 3 + ShapeUML.Width, currentY + 3, ConsoleColor.DarkGray, ConsoleColor.White, "Game", GameMethods);

            GameUML.drawScoreboard();
            GameUML.displayMethods();

            string[] BoardMethods = { "CreateBoard()", "DrawBoard()" };
            UML      BoardUML     = new UML(7, 25, indent * 3 + ShapeUML.Width, Console.CursorTop + 5, ConsoleColor.DarkGray, ConsoleColor.White, "Board", BoardMethods);

            BoardUML.drawScoreboard();
            BoardUML.displayMethods();

            string[] DictionaryShapes   = { "Dictionary<int, int[]> zero", "Dictionary<int, int[]> one", "Dictionary<int, int[]> two", "Dictionary<int, int[]> three", "Dictionary<int, int[]> four", "Dictionary<int, int[]> five", "Dictionary<int, int[]> six", };
            UML      ShapeDictionaryUML = new UML(12, 34, indent * 3 + ShapeUML.Width, Console.CursorTop + 5, ConsoleColor.DarkGray, ConsoleColor.White, "ShapeDictionary", DictionaryShapes);

            ShapeDictionaryUML.drawScoreboard();
            ShapeDictionaryUML.displayMethods();

            string[] textFiles = { "HighScores.txt", "HighScorers.txt" };
            UML      TextFiles = new UML(7, 25, indent * 5 + ShapeUML.Width + ShapeDictionaryUML.Width, currentY + 3, ConsoleColor.DarkGray, ConsoleColor.White, "Highscores Text", textFiles);

            TextFiles.drawScoreboard();
            TextFiles.displayMethods();

            string[] SplashMethods = { "WriteWord()", "WriteLetter()", "WriteWord()", "DrawBackground()", "WritePixel()", "DrawR" };
            UML      SplashUML     = new UML(11, 25, indent * 5 + ShapeUML.Width + ShapeDictionaryUML.Width, Console.CursorTop + 5, ConsoleColor.DarkGray, ConsoleColor.White, "SplashWriter", SplashMethods);

            SplashUML.drawScoreboard();
            SplashUML.displayMethods();

            Console.ReadKey();

            Console.BackgroundColor = ConsoleColor.White;
            Console.Clear();

            title.WriteWord("TETRIS", ConsoleColor.Black, TextStyles.Calico);



            //title.Y = 17;
            //title.BackGround = ConsoleColor.White;
            //title.FontWidth = 1;
            //title.WriteWord("The Presentation");
            //Console.ResetColor();
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.CursorVisible   = false;

            Console.ReadKey();


            Shape bullet = new Shape(indent - 2, Console.CursorTop + 4, 5);

            bullet.Arrange();
            bullet.render();

            title.X          = indent * 3;
            title.Y          = Console.CursorTop - 3;
            title.BackGround = ConsoleColor.White;
            title.FontWidth  = 1;
            title.Padding    = -4;
            title.YMargin    = 0;
            title.WriteWord("STATE");


            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;

            Console.SetCursorPosition(indent * 4, Console.CursorTop + 2);
            Console.WriteLine("Shape = Block[]");
            Console.SetCursorPosition(indent * 4, Console.CursorTop);
            Console.WriteLine("Block = Point[]");
            Console.SetCursorPosition(indent * 4, Console.CursorTop);
            Console.WriteLine("Each point represents a character space on the console, and has a unique x and y.");
            Console.ReadKey();

            Console.WriteLine();
            Console.WriteLine();

            Shape bullet2 = new Shape(indent - 2, Console.CursorTop + 1, 4);

            bullet2.Arrange();
            bullet2.render();

            title.X          = indent * 3;
            title.Y          = Console.CursorTop - 4;
            title.BackGround = ConsoleColor.White;
            title.FontWidth  = 1;
            title.Padding    = -4;
            title.YMargin    = 0;
            title.WriteWord("THXEAD_SAFE");

            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;


            Console.SetCursorPosition(indent * 4, Console.CursorTop + 2);
            Console.WriteLine("Game uses a timer to cause the shape to fall and trigger other game events");
            Console.SetCursorPosition(indent * 4, Console.CursorTop);
            Console.WriteLine("User input can also cause the shape to move and trigger events");
            Console.ReadKey();
            Console.SetCursorPosition(indent * 4, Console.CursorTop + 1);
            Console.WriteLine("  -  Unusual behavior.");
            Console.ReadKey();
            Console.SetCursorPosition(indent * 4, Console.CursorTop);
            Console.WriteLine("  -  Difficult to Debug.");
            Console.ReadKey();
            Console.SetCursorPosition(indent * 4, Console.CursorTop + 1);
            Console.WriteLine("Critical Section / Lock");
            Console.ReadKey();


            Shape bullet3 = new Shape(indent - 2, Console.CursorTop + 3, 3);

            bullet3.Arrange();
            bullet3.render();

            title.X          = indent * 3;
            title.Y          = Console.CursorTop - 4;
            title.BackGround = ConsoleColor.White;
            title.FontWidth  = 1;
            title.Padding    = -4;
            title.YMargin    = 0;
            title.WriteWord("MOXPH...?");

            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;


            Console.SetCursorPosition(indent * 4, Console.CursorTop + 2);
            Console.WriteLine("Polymorphism vs Dictionary");
            Console.SetCursorPosition(indent * 4, Console.CursorTop);
            Console.WriteLine("Create abstract shape class and a class for each shape");
            Console.SetCursorPosition(indent * 4, Console.CursorTop);
            Console.WriteLine("Or some other way");
            Console.ReadKey();
            Console.ResetColor();
            Console.Clear();
            Console.ReadKey();
        }