Чтение онлайн

на главную - закладки

Жанры

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 8: Программирование на Visual C# искусственного интеллекта. Издание 2. Продолжение 1
Шрифт:

К недостатку XML-комментария, относятся две дополнительные строки начального и конечного тэгов, увеличивающие (и без них) большое количество строк в программе.

1.20. Методика рисования текстов на основе класса

Для рисования текстов на экране при помощи универсального (для многих других игр) класса Utilities,

В панели Solution Explorer выполняем правый щелчок по имени проекта и в контекстном меню выбираем Add, New Item. В панели Add New Item выделяем шаблон Code File, в окне Name записываем имя нового файла с расширением *.cs

и щёлкаем кнопку Add. В проект (и в панель Solution Explorer) добавляется этот файл, открывается пустое окно редактирования кода, в которое записываем следующий код.

Листинг 1.13. Файл Utilities.cs.

using System.Drawing;

namespace PocketJack

{

public class Utilities

{

static private SolidBrush messageBrush =

new SolidBrush(Color.Black);

public static void BigText(string message, int x, int y,

Color back, Color fore, Font messageFont, Graphics g)

{

int i;

messageBrush.Color = back;

for (i = 1; i < 3; i++)

{

g.DrawString(message, messageFont, messageBrush,

x – i, y – i);

g.DrawString(message, messageFont, messageBrush,

x – i, y + i);

g.DrawString(message, messageFont, messageBrush,

x + i, y – i);

g.DrawString(message, messageFont, messageBrush,

x + i, y + i);

}

messageBrush.Color = fore;

g.DrawString(message, messageFont, messageBrush, x, y);

}

public Utilities

{

// TODO: Add constructor logic here

}

}

}

Этот файл Utilities.cs мы будем использовать в нескольких приведённых далее играх для рисования текстов на экране , но там мы не будем приводить этот файл, для экономии места в книге, а будем давать только ссылку на этот параграф.

Сразу же здесь отметим, что для использования данного файла Utilities.cs в проекте с другим именем (отличным от имени данного проекта PocketJack), необходимо:

или в данном файле Utilities.cs вместо имени пространства имён (с именем проекта PocketJack) в строке:

namespace PocketJack

записать имя нового проекта,

или в новом проекте в файле, где используется ссылка на данный файл Utilities.cs, в верхней части импортировать (записать директиву) пространства имён PocketJack:

using PocketJack;

1.21. Методика добавления информации в справочные формы

Для ввода в проект новой (справочной) формы, по которой игрок будет изучать, например, правила игры, в меню Project выбираем Add Windows Form, в панели Add New Item оставляем заданные по умолчанию параметры и щёлкаем кнопку Add. В ответ Visual Studio выводит новую форму Form2 (рис. 1.31) и добавляет в панель Solution Explorer новый пункт Form2.cs.

< image l:href="#"/>

Рис. 1.31. Проектируем справочную форму. Рис. 1.32 В свойстве Multiline выбираем True.

Аналогично, как первую, проектируем вторую форму и вводим элемент управления в виде окна TextBox. Чтобы в это окно можно было записать многострочный текст, в панели Properties (для этого элемента) в свойстве Multiline выбираем значение True (рис. 1.32).

По этой схеме можно добавлять и большее количество форм, сколько необходимо для каждого конкретного приложения. Для закрытия второй формы можно воспользоваться каким-либо элементом управления или компонентом. А можно использовать уже автоматически размещенный на форме крестик Close, которым мы и будем пользоваться.

Теперь мы должны написать программу для второй формы Form2. Открываем (например, по схеме: File, Open, File) файл Form2.cs и в методе-конструкторе класса Form2 ниже следующих строк:

public Form2

{

InitializeComponent;

записываем следующий код для выдачи на экран на элемент управления TextBox справочной информации.

Листинг 1.14. Код для выдачи на экран справочной информации.

StringBuilder sbl;

sbl = new StringBuilder;

sbl.Append("Правила игры в очко:\r\n\r\n\r\n");

sbl.Append("Rules of the game in “point”:\r\n\r\n\r\n");

sbl.Append("1) Вы являетесь игроком (player) и играете " +

sbl.Append("1) You are a player and play" +

"один на один с банкомётом (dealer).\r\n\r\n");

"in private with a dealer.\r\n\r\n");

sbl.Append("2) Ваша цель состоит в том, чтобы иметь в руке " +

sbl.Append("2) Your purpose consists in having in a hand" +

"карты с очками, как можно ближе к 21, но не превышая 21, " +

"a card with points as it is possible closer to 21, " +

"but without exceeding 21," +

больше, чем у банкомёта.\r\n\r\n");

"and more, than at dealer.\r\n\r\n");

sbl.Append("3) Первоначально у вас имеются две карты, " +

sbl.Append("3) Originally are available for you two cards," +

"вы видите сумму очков этих двух карт, и вы можете взять " +

"you see the sum of points of these two cards, " +

"and you can take" +

"дополнительные карты, нажимая кнопку Enter " +

"the additional cards, pressing the Enter key" +

"или выбирая команду “Карту мне” в Меню " +

"or choosing the command "HitMe" in the Menu" +

"для элемента управления mainMenu1.\r\n\r\n");

"for the control mainMenu1.\r\n\r\n control");

sbl.Append("4) Если общее количество очков " +

sbl.Append("4) If total quantity of points" +

"ваших карт превышает 21, " +

"of your cards exceeds 21," +

"вы взяли лишние карты и теряете вашу ставку.\r\n\r\n");

Поделиться:
Популярные книги

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4

С Новым Гадом

Юнина Наталья
Любовные романы:
современные любовные романы
эро литература
7.14
рейтинг книги
С Новым Гадом

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Приручитель женщин-монстров. Том 6

Дорничев Дмитрий
6. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 6

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Убивать, чтобы жить

Бор Жорж
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать, чтобы жить

Релокант. Вестник

Ascold Flow
2. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант. Вестник

Неудержимый. Книга XIX

Боярский Андрей
19. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIX

Моя (не) на одну ночь. Бесконтрактная любовь

Тоцка Тала
4. Шикарные Аверины
Любовные романы:
современные любовные романы
7.70
рейтинг книги
Моя (не) на одну ночь. Бесконтрактная любовь

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Первый пользователь. Книга 3

Сластин Артем
3. Первый пользователь
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Первый пользователь. Книга 3

Назад в СССР: 1985 Книга 2

Гаусс Максим
2. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Назад в СССР: 1985 Книга 2

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4