Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
1. Перед добавлением следующего кода разберитесь в принципе его работы. Есть новое ключевое слово foreach,
private void AssignIconsToSquares ()
{
foreach (Control control in tableLayoutPanel1.Controls)
{
Label iconLabel = control as Label;
if (iconLabel!= null)
{
int randomNumber = random.Next(icons.Count);
iconLabel.Text = icons[randomNumber];
icons.RemoveAt(randomNumber);
}
}
}
2. Добавьте метод AssignIconsToSquares(), как показано в предыдущем шаге. В методе AssignIconsToSquares() имеется определенное нововведение: цикл foreach можно использовать в любое время для выполнения одного и того же действия несколько раз. В этом случае требуется выполнять одни и те же операторы для каждого элемента управления Label в TableLayoutPanel, как показано в следующем коде. Первая строка создает переменную с именем control, которая хранит каждый элемент управления по одному, пока у этого элемента управления есть инструкции в цикле, выполняемом для него.
foreach (Control control in tableLayoutPanel1.Controls)
{
}
Примечание: Используются имена iconLabel и control, поскольку они являются описательными. Можно заменить эти имена на любые другие и это не повлияет на работу кода (при условии, что имена будут изменены имена в каждом операторе внутри цикла).
Метод AssignIconsToSquares() перебирает все элементы управления Label в TableLayoutPanel и выполняет одни и те же операторы для каждого из них. Помните, что каждый из этих значков является буквой в шрифте Webdings, поэтому в этом методе они выражены как текст. Вы включили в список по два значка. Это позволяет назначить пару значков случайным элементам управления Label.
Внимательнее рассмотрите код, выполняемый внутри цикла foreach Этот код воспроизведен здесь.
Label iconLabel = control as Label;
if (iconLabel!= null)
{
int randomNumber = random.Next(icons.Count);
iconLabel.Text = icons[randomNumber];
icons.RemoveAt(randomNumber);
}
Первая строка преобразует переменную control в метку с именем iconLabel. Следующая строка представляет собой оператор if, проверяющий и обеспечивающий успешное выполнение преобразования. Если преобразование выполняется, выполняются операторы в операторе if. Первая строка в операторе if создает переменную с именем randomNumber, содержащую случайное число, соответствующее одному из элементов списка значков. Для этого используется метод Next() объекта Random, созданного ранее. Метод Next возвращает случайное число. Эта строка также использует свойство Count списка значков для определения диапазона, из которого выбирается случайное число. В следующей строке один из элементов списка значков присваивается свойству Text этой метки. Пояснения относительно строки с комментариям приводятся далее в этом разделе. Наконец, последняя строка в операторе if удаляет из списка значок, добавленный в форму.
Помните, если вы не уверены, что делает какая-либо часть кода, можно навести указатель мыши на элемент кода и посмотреть отображаемую подсказку. Можно также выполнять каждую строку кода пошагово после запуска программы, воспользовавшись отладчиком Visual Studio.
3. Чтобы быстро заполнить игровое поле значками, необходимо вызвать метод AssignIconsToSquares() сразу после запуска программы. Добавьте оператор после вызова метода InitializeComponent() в Form1 constructor. Так форма будет вызывать новый метод для настройки перед отображением. Конструкторы вызываются при создании нового объекта, такого как класс или структура.
public Form1 ()
{
InitializeComponent();
AssignIconsToSquares();
}
3. Сохраните и выполните программу. Должна отобразиться форма со случайными значками, которые назначены каждой метке.
4. Закройте программу, а затем снова запустите ее. Обратите внимание, что теперь каждой метке назначены другие значки, как показано на следующем рисунке.
Игра "Подбери пару!" со случайными значками
Значки видимы, поскольку они не были скрыты. Чтобы скрыть их от игрока, можно задать для свойства ForeColor каждого элемента управления Label тот же цвет, что и у свойства BackColor.
5. Чтобы скрыть значки, остановите программу и удалите метки комментариев с соответствующей строки кода в цикле For Each.
iconLabel.ForeColor = iconLabel.BackColor;
6. На панели меню нажмите кнопку Сохранить все, чтобы сохранить программу, а затем запустите программу. Похоже, что значки исчезли. Отображается только голубой фон. Однако значки назначены случайным образом и по-прежнему существуют. Поскольку значки имеют тот же цвет, что и фон, они невидимы, т. е. скрыты от игрока. Наконец, игра станет неинтересной, если игрок будет сразу видеть все значки!
Игра "Подбери пару!" работает следующим образом.
1. Когда игрок выбирает один из квадратов со скрытым значком, программа показывает значок игроку, изменяя цвет значка на черный.
2. После этого игрок выбирает другой скрытый значок.
3. Если значки совпадают, они остаются видимыми. Если нет, оба значка снова скрываются.
Чтобы программа работала именно так, добавьте обработчик событий Click, изменяющий цвет выбираемого элемента управления Label.
|
|
|
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!