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

на главную

Жанры

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

byte swap;

int p1, p2;

for (int i = 0; i < decks.Length; i++)

{

p1 = rand.Next(decks.Length);

p2 = rand.Next(decks.Length);

swap = decks[p1];

decks[p1] = decks[p2];

decks[p2] = swap;

}

}

nextCard = 0;

}

/// <summary>

/// Gets the next card number from the deck

/// </summary>

/// <returns>The number of the next card</returns>

public byte NextCardNo

{

if (nextCard == decks.Length)

{

shuffleShoe;

}

return decks[nextCard++];

}

/// <summary>

/// Gets the next card from the deck.

/// </summary>

/// <returns>A new instance of the card</returns>

public Card DealCard

{

return new Card(NextCardNo);

}

/// <summary>

/// Constructs a shoe containing a number of decks

/// </summary>

/// <param name="noOfDecks"></param>

public CardShoe(int noOfDecks)

{

this.noOfDecks = noOfDecks;

makeShoe;

shuffleShoe;

testShoe = false;

}

/// <summary>

/// Constructs a shoe containing a single deck

/// </summary>

public CardShoe

: this(1)

{

}

/// <summary>

/// Creates a stacked deck for test purposes.

/// </summary>

/// <param name="stackedDeck">array of bytes</param>

public CardShoe(byte[] stackedDeck)

{

decks = stackedDeck;

testShoe = true;

}

}

}

В

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

Листинг 1.12. Новый файл Pot.cs .

using System;

namespace PocketJack

{

/// <summary>

/// Summary description for Betting.

/// </summary>

public class Pot

{

private int betValueChangeValue;

private int betValue;

private int potValue;

private const int INITIAL_POT_VALUE = 500;

private const int INITIAL_BET_CHANGE_VALUE = 5;

public int BetValue

{

get

{

return betValue;

}

}

public int PotValue

{

get

{

return potValue;

}

}

public void ResetPot

{

betValueChangeValue = INITIAL_BET_CHANGE_VALUE;

betValue = INITIAL_BET_CHANGE_VALUE;

potValue = INITIAL_POT_VALUE;

}

public void CheckPot

{

if (betValue > potValue)

{

if (System.Windows.Forms.MessageBox.Show(

"Insufficient funds for the bet." +

"Do you want to reload the pot?",

"Bank",

System.Windows.Forms.MessageBoxButtons.YesNo,

System.Windows.Forms.MessageBoxIcon.Question,

System.Windows.Forms.

MessageBoxDefaultButton.Button1) ==

System.Windows.Forms.DialogResult.Yes)

{

ResetPot;

}

else

{

betValue = potValue;

}

}

}

public void DoIncreaseBet

{

betValue = betValue + betValueChangeValue;

CheckPot;

}

public void DoDecreaseBet

{

if (betValue >= betValueChangeValue)

{

betValue = betValue – betValueChangeValue;

}

}

public void PlayerWins

{

// win back 2 * our stake

potValue = potValue + betValue;

//potValue = potValue + betValue; //We commented out.

}

public void HouseWins

{

CheckPot;

}

public void DoPushBet

{

// put the betValue back in the potValue

potValue = potValue + betValue;

}

public void DoPlaceBet

{

potValue = potValue – betValue;

}

public Pot

{

ResetPot;

}

}

}

После

этого добавления в панели Solution Explorer должны быть файлы, показанные на рисунке выше. Дважды щёлкая по имени файла, любой файл можно открыть, изучить и редактировать.

В этих файлах использованы XML-комментарии (XML comment), где XML – Extensible Markup Language – расширяемый язык разметки, типа:

/// <summary>

/// Description of a variable:

/// </summary>

который состоит из начального тэга (start tag):

/// <summary>

и конечного тэга (end tag):

/// </summary>

между которыми записывается сам комментарий:

/// Описание переменной:

/// Description of a variable:

В отличие от обычных комментариев после двойного слеша // или между двух символов /*…*/, в любом месте программы при наведении указателя мыши на переменную с XML-комментарием появляется подсказка, в которой имеется не только тип и класс переменной (как для переменной с обычным комментарием или вообще без комментария), но также имеется и её описание на любом языке, в том числе на русском языке, которое мы записали между начальным и конечным тэгами. XML-комментарии имеют и другие преимущества, описанные в специальной литературе.

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

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь