Esempio n. 1
0
        static void Main()
        {
            List<string> logoList = File.ReadAllLines("../../logo.txt").ToList();

            foreach (var line in logoList)
            {
                Console.WriteLine(line);
            }

            Console.ReadKey();
            Console.Clear();

            double speed = 100.0;
            int livesCount = 3;
            int points = 0;
            int counter = 0;
            // width of the play field
            int playFieledWidth = 40;
            Console.BufferHeight = Console.WindowHeight = 50;
            // height of the play field
            int playFieldHeight = Console.WindowHeight;
            //remove scroll of the console
            Console.BufferWidth = Console.WindowWidth = 70;

            //entering username
            StreamWriter fileName =new StreamWriter( @"../../log.txt",true);

            Console.WriteLine("Please Enter User Name:");
            string userName = Console.ReadLine();
            fileName.Write("{0} - ",userName);
            #region music
            using (SoundPlayer music = new SoundPlayer("../../POL-stealth-mode-short.wav"))
            {
                music.PlayLooping();
            }
            #endregion
            //user car
            Car userCar = new Car();
            userCar.x = (playFieldHeight / 2);
            userCar.y = Console.WindowHeight - 1;
            userCar.c = '▲';
            userCar.color = ConsoleColor.Red;

            Random randomGenerator = new Random(); //for the cars

            List<Car> cars = new List<Car>();

            while (true)
            {
                bool hitted = false;
                speed++;
                if (speed > 560)
                {
                    speed = 560;
                }

                {
                    //on every loop creates a new car
                    Car newCar = new Car();
                    newCar.color = ConsoleColor.White;
                    newCar.x = randomGenerator.Next(0, playFieledWidth);
                    newCar.y = 0;
                    newCar.c = '▼';
                    cars.Add(newCar);
                    counter++;
                }
                {
                    //for every 20 cars 1 live
                    if (counter >= 20)
                    {
                        counter = 0;
                        Car liveCar = new Car();
                        liveCar.color = ConsoleColor.Red;
                        liveCar.x = randomGenerator.Next(0, playFieledWidth);
                        liveCar.y = 0;
                        liveCar.c = '♥';
                        cars.Add(liveCar);
                    }
                }
                //move cars
                List<Car> newCarsList = new List<Car>();

                for (int i = 0; i < cars.Count; i++)
                {
                    Car oldCar = cars[i];
                    Car newCar = new Car();
                    newCar.x = oldCar.x;
                    newCar.y = oldCar.y + 1;
                    newCar.c = oldCar.c;
                    newCar.color = oldCar.color;

                    //check for Lives
                    if (newCar.y == userCar.y && newCar.x == userCar.x && newCar.c == '♥')
                    {
                        livesCount++;
                        hitted = true;
                    }
                    //check if we are hit by car
                    else
                    {
                        if (newCar.y == userCar.y && newCar.x == userCar.x)
                        {
                            livesCount--;
                            hitted = true;
                  //game over
                            if (livesCount <= 0)
                            {
                                fileName.Write(points);
                                fileName.WriteLine();
                                fileName.Close();
                                PrintStringOnPossition(50, 25, "GAME OVER", ConsoleColor.Red);
                                PrintStringOnPossition(50, 29, "Press enter to exit", ConsoleColor.Red);

            //show info after game
            #region InfoAfterGame
                                Console.Clear();

                                List<string> info = File.ReadAllLines("../../log.txt").ToList();

                                Console.WriteLine("HIGH SCORE: ");

                                int line = 0;
                                foreach (var name in info)
                                {
                                    Console.WriteLine("{0}.{1}", line, name);
                                    line++;
                                }

                                Console.ReadKey();
            #endregion
                                Environment.Exit(0);// Exit
                            }
                        }
                    }
               //adding points
                    if (newCar.y == playFieldHeight)
                    {
                        points++;
                    }
                    if (newCar.y < Console.WindowHeight)
                    {
                        newCarsList.Add(newCar);
                    }

                }
                cars = newCarsList;
            #region Movement
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo pressedKey = Console.ReadKey(true);
                    while (Console.KeyAvailable)
                    {
                        Console.ReadKey(true);
                    }
                    // moving to the left
                    if (pressedKey.Key == ConsoleKey.LeftArrow)
                    {
                        if (userCar.x - 1 >= 0)
                        {
                            userCar.x = userCar.x - 1;
                        }
                    }
                    //moving to the right
                    else if (pressedKey.Key == ConsoleKey.RightArrow)
                    {
                        if (userCar.x + 1 < playFieledWidth)
                        {
                            userCar.x = userCar.x + 1;
                        }
                    }
                    //moving up
                    else if (pressedKey.Key == ConsoleKey.UpArrow)
                    {
                        if (userCar.y > 1) // where other cars spawns
                        {
                            userCar.y = userCar.y - 1;
                        }
                    }
                    //moving down
                    else if (pressedKey.Key == ConsoleKey.DownArrow)
                    {
                        if (userCar.y < playFieldHeight - 1)
                        {
                            userCar.y = userCar.y + 1;
                        }
                    }
                    //speed up
                    else if (pressedKey.Key == ConsoleKey.Spacebar)
                    {
                        speed += 15;
                    }
                }

                #endregion

                //clear the console
                Console.Clear();

                foreach (Car car in cars)
                {
                    PrintOnPossition(car.x, car.y, car.c, car.color);
                }
                //when hit
                if (hitted)
                {
                    PrintOnPossition(userCar.x, userCar.y, 'X', ConsoleColor.Red);
                }
                else
                {
                    PrintOnPossition(userCar.x, userCar.y, userCar.c, userCar.color);
                }

                //print additional information
                PrintStringOnPossition(50, 20, "Lives: " + livesCount, ConsoleColor.Red);
                PrintStringOnPossition(50, 21, "Speed: " + speed, ConsoleColor.Blue);
                PrintStringOnPossition(50, 22, "Points: " + points, ConsoleColor.Yellow);

                //slow down program
                Thread.Sleep((int)(600 - speed)); // speed up the level according to speed
            }
        }
Esempio n. 2
0
        //static string PrintCars(int x, int y)
        //{
        //char[,] cars = new char[3, 2];
        //cars[0, 0] = '*';
        //cars[0, 1] = '*';
        //cars[1, 0] = '.';
        //cars[1, 1] = '.';
        //cars[2, 0] = '*';
        //cars[2, 1] = '*';
        //for (int i = 0; i < cars.GetLength(0); i++)
        //{
        //    for (int n = 0; n < cars.GetLength(1); n++)
        //    {
        //        Console.Write(cars[i, n]);
        //    }
        //    Console.WriteLine();
        //}
        //    string cars = new string('*', 2);
        //    string cars2 = new string('.', 2);
        //    new string('*', 2);
        //    Console.WriteLine(cars);
        //    return cars;
        //}
        static void Main()
        {
            double speed = 100.0;
            int livesCount = 3;
            int points = 0;
            int counter = 0;
            int playFieledWidth = 40;// width of the play field
            Console.BufferHeight = Console.WindowHeight = 30;
            int playFieldHeight = Console.WindowHeight; // height of the play field
            Console.BufferWidth = Console.WindowWidth = 70;
            //razmera na conzolata da e kolkoto e prozoreca.Da nqma skroler

            StreamWriter fileName = new StreamWriter(@"../../log.txt", true);
            Console.WriteLine("Please Enter User Name:");
            string userName = Console.ReadLine();
            fileName.Write("{0} - ", userName);

            //using (SoundPlayer music = new SoundPlayer("../../POL-stealth-mode-short.wav"))
            //{
            //    music.PlayLooping();
            //}

            //our car
            Car userCar = new Car();
            userCar.x = (playFieldHeight / 2);
            userCar.y = Console.WindowHeight - 1;
            userCar.c = '@';
            userCar.color = ConsoleColor.Red;

            Random randomGenerator = new Random();

            List<Car> cars = new List<Car>();
            while (true)
            {
                bool hitted = false;
                speed++;
                if (speed > 560)
                {
                    speed = 560;
                }

                {
                    Car newCar = new Car();//vseki pyt da syzdava nova kolichka
                    newCar.color = ConsoleColor.White;
                    newCar.x = randomGenerator.Next(0, playFieledWidth);
                    newCar.y = 0;
                    newCar.c = 'V';
                    cars.Add(newCar);
                    counter++;
                }
                {
                    Car newCar = new Car();//vseki pyt da syzdava nova kolichka
                    newCar.color = ConsoleColor.Red;
                    newCar.x = randomGenerator.Next(0, playFieledWidth);
                    newCar.y = 0;
                    newCar.c = 'V';
                    cars.Add(newCar);
                    counter++;
                }
                {
                    Car newCar = new Car();//vseki pyt da syzdava nova kolichka
                    newCar.color = ConsoleColor.Yellow;
                    newCar.x = randomGenerator.Next(0, playFieledWidth);
                    newCar.y = 0;
                    newCar.c = 'v';
                    cars.Add(newCar);
                    counter++;
                }
                {
                    Car newCar = new Car();//vseki pyt da syzdava nova kolichka
                    newCar.color = ConsoleColor.Cyan;
                    newCar.x = randomGenerator.Next(0, playFieledWidth);
                    newCar.y = 0;
                    newCar.c = 'V';
                    cars.Add(newCar);
                    counter++;
                }
                {
                    Car newCar = new Car();//vseki pyt da syzdava nova kolichka
                    newCar.color = ConsoleColor.Yellow;
                    newCar.x = randomGenerator.Next(0, playFieledWidth);
                    newCar.y = 0;
                    newCar.c = 'V';
                    cars.Add(newCar);
                    counter++;
                }
                {
                    if (counter >= 10)
                    {
                        counter = 0;
                        Car liveCar = new Car();//vseki pyt da syzdava nova kolichka
                        liveCar.color = ConsoleColor.Green;
                        liveCar.x = randomGenerator.Next(0, playFieledWidth);
                        liveCar.y = 0;
                        liveCar.c = '\u0024';
                        cars.Add(liveCar);
                    }
                }
                //move cars
                List<Car> newCarsList = new List<Car>();
                for (int i = 0; i < cars.Count; i++)//for zashtoto foreach ne ni dava da promenqme stoinosti, a samo da gi chetem
                {
                    Car oldCar = cars[i];
                    Car newCar = new Car();
                    newCar.x = oldCar.x;
                    newCar.y = oldCar.y + 1;
                    newCar.c = oldCar.c;
                    newCar.color = oldCar.color;

                    //check for Lives
                    if (newCar.y == userCar.y && newCar.x == userCar.x && newCar.c == '+')
                    {
                        livesCount++;
                        hitted = true;
                    }
                    //check if we are hitted by rock
                    else
                    {
                        if (newCar.y == userCar.y && newCar.x == userCar.x)
                        {
                            livesCount--;
                            hitted = true;
                            //game over
                            if (livesCount <= 0)
                            {
                                fileName.Write(points);
                                fileName.WriteLine();
                                fileName.Close();
                                PrintStringOnPossition(50, 25, "GAME OVER", ConsoleColor.Red);
                                PrintStringOnPossition(50, 29, "Pres enter to exit", ConsoleColor.Red);
                                Console.ReadKey();
                                Environment.Exit(0);//application exit
                            }
                        }
                    }
                    //adding points
                    if (newCar.y == playFieldHeight)
                    {
                        points++;
                    }
                    if (newCar.y < Console.WindowHeight)
                    {
                        newCarsList.Add(newCar);
                    }

                }
                cars = newCarsList;
                #region Movement //car movement(key pressed)
                if (Console.KeyAvailable)// Poneje ReadKey e chakashta operaciq, i za da ne se dvijat vs koli, samo kogato dvijim nashata
                {
                    ConsoleKeyInfo pressedKey = Console.ReadKey(true);
                    while (Console.KeyAvailable)
                    {
                        Console.ReadKey(true); //buferira vs klavishi za da ne zabavq kogato zadyrjim nqkoi
                    }
                    // moving to the left
                    if (pressedKey.Key == ConsoleKey.LeftArrow)
                    {
                        if (userCar.x - 1 >= 0)
                        {
                            userCar.x = userCar.x - 1;
                        }
                    }
                    //moving to the right
                    else if (pressedKey.Key == ConsoleKey.RightArrow)
                    {
                        if (userCar.x + 1 < playFieledWidth)
                        {
                            userCar.x = userCar.x + 1;
                        }
                    }
                    //moving up
                    else if (pressedKey.Key == ConsoleKey.UpArrow)
                    {
                        if (userCar.y > 1) // where other cars spawns
                        {
                            userCar.y = userCar.y - 1;
                        }
                    }
                    //moving down
                    else if (pressedKey.Key == ConsoleKey.DownArrow)
                    {
                        if (userCar.y < playFieldHeight - 1)
                        {
                            userCar.y = userCar.y + 1;
                        }
                    }
                    //speed up
                    else if (pressedKey.Key == ConsoleKey.Spacebar)
                    {
                        speed += 10;
                    }
                }

                #endregion

                //clear the console
                Console.Clear();

                foreach (Car car in cars)
                {
                    PrintOnPossition(car.x, car.y, car.c, car.color);
                }
                //when hit
                if (hitted)
                {
                    PrintOnPossition(userCar.x, userCar.y, 'X', ConsoleColor.Red);
                }
                else
                {
                    PrintOnPossition(userCar.x, userCar.y, userCar.c, userCar.color);
                }

                //print information
                PrintStringOnPossition(50, 21, "Lives: " + livesCount, ConsoleColor.Red);
                PrintStringOnPossition(50, 22, "Speed: " + speed, ConsoleColor.Blue);
                PrintStringOnPossition(50, 23, "Points: " + points, ConsoleColor.Yellow);
                PrintStringOnPossition(50, 24, "User is:" + userName, ConsoleColor.Yellow);
                PrintStringOnPossition(50, 25, "*Controls Games*" + info, ConsoleColor.Cyan);
                PrintStringOnPossition(50, 26, "#Buttons#" + info, ConsoleColor.Cyan);
                PrintStringOnPossition(50, 27, "[<]Left Right[>]" + info, ConsoleColor.Cyan);
                //slow down program
                Thread.Sleep((int)(600 - speed)); // speed up the level according to speed
            }
        }