Написать игру "Быки и коровы" - C#

Узнай цену своей работы

Формулировка задачи:

Нужно написать игру "Быки и коровы" в форме С#. Это моя курсовая работа, судя потому как нам преподают программирование я не напишу ее, а нужно срочно. Через месяц надо сдать. Помогите пожалуйста!!!

Решение задачи: «Написать игру "Быки и коровы"»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// на конструкторе формы лежит 3 кнопки(проверка введенного числа, показать загаданное число, новая игра)
// лежит 3 метки(пояснение к текстбоксу, вывод результатов сравнения, вывод загаданного числа)
// лежит 1 текстбокс
// названия контролов и событий VisualStudio назначала автоматически. я ничего не менял
 
namespace WindowsFormsApplication14
{
    public partial class Form1 : Form
    {
        // объявление переменной для  генерации случайных чисел
        private Random rand = new Random();
        private int[] x = new int[4];
        // в строковой переменной впоследствии будем хранить строковое представление загаданного числа
        private string s;
        // счетчики полного и частичного совпадения цифр в загаданном и введенном числах
        private int polnoeSovpadenie;
        private int chastichnoeSovpadenie;
 
        public Form1()
        {
            InitializeComponent();
          // вызов метода для начала новой игры
            NewGame();
        }
 
        // метод новой игры
        private void NewGame()
        {
          // вызов метода для генерации нового числа
            NovoeChislo();
          // обнуление метки вывода результатов сравнения загаданного и введенного чисел
            label2.Text = "";
          // обнуление метки вывода загаданного числа
            label3.Text = "";
          // открываем textbox для ввода значений
            textBox1.ReadOnly = false;
        }
 
        // метод генерации нового числа
        private void NovoeChislo()
        {
          // флаг сравнения с предыдущими цифрами. совпадает - true 
            bool contains;
          // цикл заполнения массива нового числа новыми цифрами
            for (int i = 0; i < 4; i++)
            {
                do 
                {
                    contains = false;
                // генерация новой цифры
                    x[i] = rand.Next(10);
                // цикл сравнения сгенерированной цифры с предыдущими
                    for (int k = 0; k < i; k++)
                        if (x[k] == x[i])
                    //если сгенериррованная цифра совпала с одной из предыдущих
                    // флаг сравнения делаем true для продолжения генерации
                    //несовпадающей цифры в элемент массива
                            contains = true;
                } while (contains);
            }
            s = x[0].ToString() + x[1] + x[2] + x[3];// из элементов массива формируем строку
        }
 
        // это событие. его надо привязать к событию textboxa  KeyPress
        // описывает что делать программе при нажатии на клавиатуру
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
          //Char.IsDigit(e.KeyChar) проверка, является ли нажатая клавиша цифрой. возвращает true или false
          //e.KeyChar == (char)Keys.Back проверяет, является ли нажатая клавиша бекспейсом.
            if (Char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back)
            // если были нажаты цифра или бекспейс, то событие обработать в обычном режиме
                e.Handled = false;
            else
            //иначе, поставить метку что событие обработанно, но не пускать сигнал в текстбокс
                e.Handled = true;
        }
 
        // событие клик кнопки №1 - проверка введенного числа
        private void button1_Click(object sender, EventArgs e)
        {
          // если в текстбоксе не 4 цифры
            if (textBox1.Text.Length != 4)
            {
            // вывести сообщение об ошибке
                MessageBox.Show("введенное число должно быть четырехзначным");
            }
            else
            {
            // иначе вызвать метод сравнения чисел
                SravenieChisel();
            // вызвать метод вывода результатов сравнения на экран
                RezultShow();
            }
          // очистка текстбокса
            textBox1.Text = "";
        }
 
        // метод вывода результата сравнения загаданного и введенного чисел на экран в label2
        private void RezultShow()
        {
            label2.Text += textBox1.Text + " полностью совпало " + polnoeSovpadenie + " совпало " + chastichnoeSovpadenie + "\n";
        }
 
        // метод сравнения загаданного и введенного чисел
        private void SravenieChisel()
        {
          // обнуление счетчиков
            polnoeSovpadenie = 0;
            chastichnoeSovpadenie = 0;
          // перевод содержимого текстбокса в символьный массив
            char[] ch = textBox1.Text.ToCharArray();
          // цикл проверки символов в массиве
            for (int i = 0; i < 4; i++)
            {
            // если строка s содержит в себе элемент массива
                if (s.Contains(ch[i]))
                {
                // если номер символа в массиве совпадает с номером символа в строке
                    if (s[i] == ch[i])
                  // увеличиваем счетчик полного совпадения
                        polnoeSovpadenie++;
                    else
                  // если номер символа в массиве не совпадает с номером символа в строке
                  // увеличиваем счетчик неполного совпадения
                        chastichnoeSovpadenie++;
                }
            }
        }
 
        // событие клик кнопки №2 - вывод загаданного числа на экран
        private void button2_Click(object sender, EventArgs e)
        {
          // в label3 передаем загаданное число
            label3.Text = s;
          // обнуляем метку вывода результатов сравнения введенного и загаданного чисел
            label2.Text = "";
          // запрещаем ввод символов в текстбокс
            textBox1.ReadOnly = true;
        }
 
        // событие клик кнопки №3 - новая игра
        private void button3_Click(object sender, EventArgs e)
        {
          // вызов метода начала новой игры
            NewGame();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы