Написать игру "Быки и коровы" - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д