Автор: Пользователь скрыл имя, 09 Мая 2012 в 18:16, курсовая работа
Развитие компьютерных технологий в течение последних нескольких десятилетий происходило удивительно быстрыми темпами. Современные ноутбуки и стационарные компьютеры могут производить вычисления гораздо быстрее и хранить намного больше информации, чем, например, компьютеры второй половины прошлого столетия. Также в ногу со временем развивались языки программирования.
Введение………………………………………………………………………………………..4
1. Постановка задачи…………………………………………………………………….5
2. Объектно-ориентированный анализ предметной области……..6
3. Результаты проектирования……………………………………………………..9
4. Результаты комплексного тестирования………………………………….11
Выводы………………………………………………………………………………………….16
Использованная литература………………………………………………………...17
Приложение А. Руководство пользователя…………………………………18
Приложение Б. Листинг программы……………………………………………19
int suit = num / 13;
if (seniority == 0)
{
seniority = 13;
suit -= 1;
}
returnnewCard((Card.SuitTypes)
}
//получение цвета карты по масти
publicColor SuitToColor()
{
if (this.suit == SuitTypes.clubs || this.suit == SuitTypes.spades)
returnColor.black;
else
returnColor.red;
}
//определение, может ли карта лечь на другую
/*public bool isRightCard(Card destinationCard)
{
if (this.SuitToColor() != destinationCard.SuitToColor() && (this.Seniority == destinationCard.Seniority - 1))
{
return true;
}
return false;
}*/
//определение, может ли быть добавлена карта в базу
publicbool isRightBaseCard(Base _base)
{
if (_base.countCardsInPile() == 0)
{
if (this.seniority == 1)
{
_base.Suit = this.Suit;
returntrue;
}
}
else
{
Card card = _base.peekCard();
if (this.seniority == card.seniority + 1 &&this.suit == _base.Suit)
returntrue;
}
returnfalse;
}
//определение, может ли быть добавлена карта в колоду
publicbool isRightPileCard(Pile pile)
{
if (pile.countCardsInPile() == 0)
{
if (this.seniority == 13)
{
returntrue;
}
}
else
{
Card card = pile.peekCard();
if (this.SuitToColor() != card.SuitToColor() && (this.Seniority == card.Seniority - 1))
{
returntrue;
}
}
returnfalse;
}
//достоинствокарты
publicint Seniority
{
get
{
return seniority;
}
}
//мастькарты
publicSuitTypes Suit
{
get
{
return suit;
}
}
//коодинаты нахождения карты (X)
publicint X
{
set
{
if (value<= Game.widthGameField &&value>= 0)
Xcoord = value;
}
get
{
return Xcoord;
}
}
//координаты нахождения карты (Y)
publicint Y
{
set
{
if (value<= Game.heightGameField &&value>= 0)
Ycoord = value;
}
get
{
return Ycoord;
}
}
//признак открытой карты
publicbool IsOpen
{
get
{
return isOpen;
}
set
{
isOpen = value;
}
}
//номер карты (для доступа к ресурсам карт)
publicint CardNumber
{
get
{
return cardNumber;
}
set
{
if (value>= 1 &&value<= Game.countOfCards)
cardNumber = value;
}
}
}
}
Game.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
//классигры
classGame
{
//счет
privateint score;
//количествостопок
publicconstint countOfPiles = 7;
//количествокарт
publicconstint countOfCards = 52;
//количествобаз
publicconstint countOfBases = 4;
//высотакарты
publicconstint heightCard = 96;
//ширинакарты
publicconstint widthCard = 71;
//ширинаигровогополя
publicconstint widthGameField = 748;
//высотаигровогополя
publicconstint heightGameField = 703;
//стопки
publicPile[] Piles;
//базы
publicBase[] Bases;
//дополнительная колода для сбрасываемых карт
publicPile
Deck;
//конструктор игры
//генерация карт в стопках
public Game()
{
int i;
bool inserted;
Random rnd = newRandom();
score = 0;
Piles = newPile[countOfPiles + 1];
Bases = newBase[countOfBases];
Deck = newPile();
for (i = 0; i < Piles.Length; i++)
Piles[i] = newPile();
for (i = 0; i < Bases.Length; i++)
Bases[i] = newBase();
for (i = 1; i <= countOfCards; i++)
{
inserted = false;
while (!inserted)
{
int index = rnd.Next(0, countOfPiles + 1);
if ((Piles[index].
{
Piles[index].addCardToPile(new