예제 #1
0
        static void Main(string[] args)
        {
            Console.BufferHeight = Console.WindowHeight = MaxHeight;
            Console.BufferWidth  = Console.WindowWidth = MaxWidth;

            // main screen
            DrawingScreen.DrawMainScreen();
            Console.Clear();

            FrogHome home = new FrogHome();

            home.RenderOnPosition(0, 5);

            // main engine
            Engine();
        }
예제 #2
0
        private static void Engine()
        {
            List <Tree>    treesFR   = new List <Tree>();
            List <Tree>    treesSR   = new List <Tree>();
            List <Tree>    treesTR   = new List <Tree>();
            List <Flowers> flowersFR = new List <Flowers>();
            List <Flowers> flowersSR = new List <Flowers>();
            List <Car>     cars      = new List <Car>();

            Random randGen       = new Random();
            int    nextElementTr = 25;
            int    nextElementFl = 48;
            int    counterTr     = 0;
            int    counterFl     = 0;
            int    slower        = 0;

            cars.Add(new PoliceCar(43, 2));
            cars.Add(new Cabrio(39, 60));
            cars.Add(new Truck(34, 3));
            cars.Add(new Cabrio(29, 70));

            foreach (var car in cars)
            {
                car.Render();
            }

            treesFR.Add(new Tree(MaxHeight / 2 - 2, 0));
            treesFR[0].Render();
            treesSR.Add(new Tree(MaxHeight / 2 - 8, 0));
            treesSR[0].Render();
            treesTR.Add(new Tree(MaxHeight / 2 - 14, 0));
            treesTR[0].Render();

            flowersFR.Add(new Flowers(MaxHeight / 2 - 5, Console.WindowWidth - 14));
            flowersFR[0].Render();
            flowersSR.Add(new Flowers(MaxHeight / 2 - 11, Console.WindowWidth - 14));
            flowersSR[0].Render();

            Island island = new Island();

            Frog frog = new Frog(Console.WindowHeight - 2, Console.WindowWidth / 2);

            frog.Render();
            frog.Lives  = 7;
            frog.InHome = 0;

            int counterCars = 0;

            // timer
            Stopwatch time = new Stopwatch();

            time.Start();

            while (frog.Lives != 0)
            {
                counterCars++;
                counterTr++;
                counterFl++;
                slower++;
                bool onElement = false;

                // information on top
                DrawingScreen.Information(frog.Lives, time, frog.Points);

                // draw island
                island.RenderOnPosition(0, MainProgram.MaxHeight / 2 + 1);

                //Tree move
                TreeMove(treesFR, treesSR, randGen, ref nextElementTr, ref counterTr);

                // main logic for frog on the river elements
                FrogOverTheRiverMainLogic(treesFR, treesSR, treesTR, flowersFR, flowersSR,
                                          randGen, ref nextElementFl, ref counterFl, slower, frog, ref onElement);

                // print flowers
                foreach (var flowerFR in flowersFR)
                {
                    flowerFR.PrintOnPosition();
                }
                foreach (var flowerSR in flowersSR)
                {
                    flowerSR.PrintOnPosition();
                }

                // implement crash of the frog with cars
                CrashWithFrog(cars, frog);

                // add cars on row
                AddMoreCarOnRow(cars, counterCars);

                frog.Move();
                // complete level
                if (frog.InHome == 5)
                {
                    break;
                }

                System.Threading.Thread.Sleep(80);
            }

            time.Stop();
            TimeSpan allTime = time.Elapsed;

            // calculated points
            int pasedTime = (int)allTime.TotalSeconds;
            int points    = (pasedTime) + (frog.InHome * 2);

            if (frog.Lives == 0)
            {
                DrawingScreen.GameOver(points);
            }
            else
            {
                DrawingScreen.LevelComplete(points);
            }

            // draw position in ranklist
            DrawingScreen.WritePointsToTxt(points);
            DrawingScreen.DrawScoreBoard();
        }