Reply to this topicStart new topic
> Игра "Познай числото" на C#
splash2k16
публикация 7.07.2016г. в 08:45ч.
Коментар: #1


Новак
*

Група: Потребители
Съобщения: 1
Дата на регистрация: 7.07.2016г.
Потребител # 24 766





Здравейте, в този урок ще ви покажа как да направите игра "Познай числото" на езика C#. Кодът е писан и тестван от мен. Добавил съм и "коментари" към кода за тези които не разбират от езика.

Код:
КОД
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{
    class Program
    {
        // Това е "коментар". Той ще бъде игнориран от компилатора.

        // Инициализиране на променливи, които ще използваме и в други функции
        public static bool guessed = false;
        public static int number;

        static void Main(string[] args) // Това ще се изпълни с отварянето на програмата
        {
            Console.Title = "GuessMyNumber | Loading..."; // Наглася заглавието на програмата
            Console.WriteLine("Welcome to GuessMyNumber!"); // Приветства потребителя
            PauseProgram(); // Изпълнява функцията PauseProgram

            EnterNumber: // Тук започва EnterNumber

            int attempts = 0; // Инициализира променлива, която ще брои опитите

            Console.Clear(); // Изчиства конзолата

            Console.Title = "GuessMyNumber"; // Наглася заглавието на програмата

            Console.Write("Enter max number: "); // Подканва потребителят да въведе най-голямото възможно число

            int maxNumber = Convert.ToInt32(Console.ReadLine()); // Изчаква потребителят да въведе числото. Привежда въведеното към Int32 и го запазва в променливата maxNumber

            if (maxNumber != 0) // Проверява дали стойността на maxNumber е различна от 0
            {
                // Този код ще се изпълни ако стойността на maxNumber е различна от 0
                maxNumber += 1; // Прибавя 1 към стойността на maxNumber, поради начинът, по който Random функцията работи

                GetRandomNumber(maxNumber); // Изпълнява функцията GetRandomNumber и му дава за параметър променливата maxNumber

                while (guessed == false) { // Кодът в "блока" по-долу ще се изпълнява, докато потребителят не познае числото
                    Console.Title = "GuessMyNumber | Waiting for a guess..."; // Наглася заглавието на програмата
                    Console.Write("Type your guess: "); // Подканва потребителят да направи своят опит да познае числото
                    attempts += 1; // Прибавя 1 към опитите

                    int guessedNumber = Convert.ToInt32(Console.ReadLine ()); // Изчаква потребителят да въведе число. Привежда въведеното към Int32 и го запазва в променливата guessedNumber

                    if (guessedNumber != number) // Проверява дали потребителят е сбъркал
                    {
                        // Този код ще се изпълни ако потребителят е сбъркал числото
                        if (guessedNumber < number) // Проверява дали въведеното число е по-малко от това, което се търси
                        {
                            Console.WriteLine("Wrong! My number is higher!"); // Подсказва на потребителя, че числото е по-голямо от неговото
                            System.Threading.Thread.Sleep(500); // Изчаква половин секунда
                        }
                        else if (guessedNumber > number) // Проверява дали въведеното число е по-голямо от това, което се търси
                        {
                            Console.WriteLine("Wrong! My number is smaller!"); // Подсказва на потребителя, че числото е по-малко от неговото
                            System.Threading.Thread.Sleep(500); // Изчаква половин секунда
                        }
                    }
                    else {
                        // Този код ще се изпълни, ако потребителят познае числото
                        Console.Title = "GuessMyNumber | Restarting..."; // Наглася заглавието на програмата
                        System.Threading.Thread.Sleep(1000); // Изчаква 1 секунда
                        Console.Clear(); // Изчиства конзолата
                        Console.WriteLine("Good job! You guessed my number in " + attempts + " attempts! Press any key to start again! ..."); // Казва на потребителя колко опита са му били нужни и го подканва да натисне клавиш, за да започне отново
                        guessed = true; // Прави стойността на булевата guessed на true, за да покаже, че потребителят е познал
                        Console.Title = "GuessMyNumber | Waiting user input..."; // Наглася заглавието на програмата
                        Console.ReadKey(); // Изчаква потребителят да натисне клавиш

                        goto EnterNumber; // Изпраща потребителят обратно

                    }
                }
            }
            else if (maxNumber < 0) { // Проверява дали стойността на maxNumber е по-малка от 0
                // Този код ще се изпълни, ако стойността на maxNumber е по-малка от 0
                Console.WriteLine("Your max number can't be lower than 0!"); // Казва на потребителя, че трябва да въведе число по-голямо от 0
                goto EnterNumber; // Изпраща потребителят обратно
            }
            else if (maxNumber == 0) // Проверява дали стойността на maxNumber е равна на 0
            {
                // Този код ще се изпълни, ако стойността на maxNumber е равна на 0
                Console.WriteLine("You can't have 0 for max number!"); // Казва на потребителя, че не може да използва 0 за максимално число
                goto EnterNumber; // Изпраща потребителят обратно
            }
        }

        // Функции

        public static void PauseProgram() // Функцията PauseProgram
        {
            System.Threading.Thread.Sleep(500); // Изчаква половин секунда
            Console.Write("Press any key to continue . . . "); // Казва на потребителя да натисне някой клавиш
            Console.Title = "GuessMyNumber | Waiting user input..."; // Наглася заглавието на програмата
            Console.ReadKey(); // Изчаква потребителят да натисне някой клавиш
            Console.Clear(); // Изчиства конзолата
        }

        public static void GetRandomNumber(int maxNumber) { // Функцията GetRandomNumber *Тя взема за параметър променлива int, която ще служи за определяне на най-голямото (максималното) число*
            Console.Title = "GuessMyNumber | Generating number..."; // Наглася заглавието на програмата
            Random random = new Random(); // Създава нов Random под името random, който ще използваме да вземем случайно число от нула до максималното число
            number = random.Next(0, maxNumber); // Взима случайно число от нула до максималното число
            Console.WriteLine("Random number generated!"); // Казва на потребителя, че случайното число е "генерирано"
            System.Threading.Thread.Sleep(500); // Изчаква половин секунда

            guessed = false; // Прави стойността на булевата guessed на false, за да покаже, че потребителят все още не е познал числото
        }
    }
}

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

 

RSS Олекотена Версия Сега е: 12:43 - 9.08.2026г.

Калдейта Ком ЕООД - © 2003-. Всички права запазени.