Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вывод информации о выигравшем игроке




Начало игры

Запрос имен игроков.

Инициализация массива объектов Player.

В случае неудачи продолжаем выводить приглашение

Catch

Число игроков

Попытка преобразовать введенную информацию в корректное

Try

Do

Приглашение для ввода числа игроков

Вывод заставки

Сюда будет включаться дальнейший код.

}

В файле Class1.cs содержится функция Main(), которая инициализирует и запускает игру. Эта функция выполняет следующие шаги:

• На экран выводится заставка.

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

• В соответствии с введенным числом игроков определяются объекты типа Player.

• Каждому пользователю выводится приглашение, запрашивающее его имя, которое будет использоваться при инициализации соответствующего объекта типа Player в массиве.

• Создается объект Game и с помощью метода SetPlayers () определяются игроки, которые будут принимать участие в игре.

• Начинается собственно игра посредством метода PlayGame ().

• Возвращаемое значение метода PlayGame () типа int используется для вывода сообщения о том, кто из игроков выиграл (возвращаемое значение представляет собой индекс победителя в массиве объектов типа Player).

Код, выполняющий все эти действия (снабженный комментариями для большей ясности), приводится ниже:

static void Main (string [] args)

{

Console.WriteLine(“KarliCards: a new and exciting card game.”);

Console.WriteLine(“To win you must have 7 cards of the same suit in” +

“your hand.”);

Console.WriteLine();

bool inputOK = false;

int choice = -1;

{

Console.WriteLine(“How many players (2-7)?”);

string input = Console.ReadLine();

{

choice = Convert.ToInt32(input);

if ((choice >= 2) && (choice <= 7))

inputOK = true;

}

{

}

} while (inputOK == false);

Player[] players = new Player[choice];__

for (int p = 0; р < players.Lerxgth; р++)

{

Console.WriteLine(“Player (0), enter your name:”, p + 1)

string playerName = Console,ReadLine();

players[p] = new Player (playerName);

}

Game newGame = new Game ();

newGame.SetPlayers(players);

int whoWon = newGame.PlayGame();

Console.WriteLine(“(0) has won the game!”, players[whoWon].Name);

}

Теперь обратимся к методу PlayGame(), представляющему основное тело приложения. Этот метод не будет описываться подробно, так как он снабжен комментариями, что делает его несколько более понятным. На самом деле, за некоторыми исключениями, в коде нет ничего столь уж сложного.

Игра протекает следующим образом: каждый игрок видит собственные карты и одну открытую карту на столе. Игроки могут взять либо открытую карту, либо новую карту из колоды. Взяв карту, игрок должен сбросить одну карту, положив ее либо на место открытой карты, если им была взята именно открытая карта, либо поверх лежащей на столе (отправляя предыдущую карту, лежащую на столе, в семейство discardedCards).

Ключевым моментом, который необходимо иметь в виду при изучении кода, является способ, используемый для манипуляций над объектами типа Card. Теперь становится понятным, почему они были описаны как переменные ссылочного типа, а не как значимого (посредством использования структуры). Один объект Card может находиться одновременно в нескольких местах, поскольку на него могут ссылаться объект Deck, поля hand различных объектов Player, семейство discardedCards и объект playCard (поскольку карта в настоящий момент находится на столе). Это значительно упрощает процедуру отслеживания движения карт и используется, в частности, в коде, который отвечает за сдачу очередной карты из колоды. Карта может быть принята только в том случае, если она не находится у какого-нибудь игрока на руках, на столе или в семействе discardedCards, код имеет следующий вид:

public int PlayGame()

{




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 387; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.