Автор: Пользователь скрыл имя, 09 Мая 2012 в 18:16, курсовая работа
Развитие компьютерных технологий в течение последних нескольких десятилетий происходило удивительно быстрыми темпами. Современные ноутбуки и стационарные компьютеры могут производить вычисления гораздо быстрее и хранить намного больше информации, чем, например, компьютеры второй половины прошлого столетия. Также в ногу со временем развивались языки программирования.
Введение………………………………………………………………………………………..4
1. Постановка задачи…………………………………………………………………….5
2. Объектно-ориентированный анализ предметной области……..6
3. Результаты проектирования……………………………………………………..9
4. Результаты комплексного тестирования………………………………….11
Выводы………………………………………………………………………………………….16
Использованная литература………………………………………………………...17
Приложение А. Руководство пользователя…………………………………18
Приложение Б. Листинг программы……………………………………………19
//задаем
координаты дополнительной
game.Deck.X = 5*offsetX;
game.Deck.Y = offsetY / 4 + menuStrip1.Height + 5;
}
//прорисовкакарт
publicvoid drawPiles(Graphics graphics)
{
Bitmap bmp;
Card[] cards;
int i, j;
for (i = 0; i <Game.countOfPiles; i++)
{
if (game.Piles[i].
{
cards = game.Piles[i].getPile();
for (j = game.Piles[i].
{
if ((drag && transportCard.CardNumber != cards[j].CardNumber) || (!drag))
{
if (cards[j].IsOpen)
{
}
else
}
}
}
}
cards = game.Piles[Game.countOfPiles].
for (i = game.Piles[Game.countOfPiles].
graphics.DrawImage(rubashka, cards[i].X, cards[i].Y);
//прорисовываембазы
Pen pen = newPen(Color.Black);
for (i = 0; i <Game.countOfBases; i++)
{
graphics.DrawRectangle(pen, game.Bases[i].X, game.Bases[i].Y, Game.widthCard, Game.heightCard);
Base _base = game.Bases[i];
cards = game.Bases[i].getPile();
for (j=_base.countCardsInPile() - 1; j>=0; j--)
{
bmp = (Bitmap)
graphics.DrawImage(bmp, cards[j].X, cards[j].Y);
}
}
//если
дополнительная колода непуста,
if (game.Deck.countCardsInPile() != 0)
{
bmp = (Bitmap)
graphics.DrawImage(bmp, game.Deck.X, game.Deck.Y);
}
//перерисовываем перемещаемую карту
if (drag)
{
bmp = (Bitmap)
graphics.DrawImage(bmp, transportCard.X - transportX, transportCard.Y + transportY);
}
}
//функцияначалановойигры
publicvoid StartNewGame()
{
game = newGame();
initFirstCard();
graphics = this.CreateGraphics();
drawPiles(graphics);
}
//генерированиеслучайныхкарт
privatevoid Form1_Shown(object sender, EventArgs e)
{
StartNewGame();
}
//закрытиеокнаприложения
privatevoidвыходToolStripMenuI
{
Close();
}
//Пункт меню начала новой игры
privatevoidвыходToolStripMenuI
{
StartNewGame();
}
//обработчикщелчка
privatevoid Form1_MouseDown(object sender, MouseEventArgs e)
{
drag = false;
if (e.Button == MouseButtons.Left)
transportCard = game.defineCard(e.X, e.Y, ref numberOfTransPile);
//"разворачиваем" колоду
if (numberOfTransPile == Game.countOfPiles && transportCard != null)
{
if (game.Piles[numberOfTransPile]
{
Card card = game.Piles[numberOfTransPile].
game.Deck.addCardToPile(card);
}
else
{
while (game.Deck.countCardsInPile() != 0)
{
game.Piles[numberOfTransPile].
}
}
}
else
//начинаемперемещениекарты
if (transportCard != null)
{
transportX = e.X - transportCard.X;
transportY = transportCard.Y - e.Y;
startX = transportCard.X;
startY = transportCard.Y;
drag = true;
//transportBitmap
= (Bitmap)
}
}
//
privatevoid Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && drag)
{
//graphics.DrawImage(
transportCard.X = e.X;
transportCard.Y = e.Y;
}
this.Invalidate();
}
//обработчик отпускания клавиши мыши
privatevoid Form1_MouseUp(object sender, MouseEventArgs e)
{
if (drag)
{
int i = 0;
for (i = 0; i <Game.countOfBases; i++)
{
Base _base = game.Bases[i];
if (game.intersect(transportCard, _base.X,
_base.Y) && transportCard.isRightBaseCard(
{
drop = true;
transportCard.X = _base.X;
transportCard.Y = _base.Y;
game.Bases[i].addCardToPile(
game.Piles[numberOfTransPile].
if (game.Piles[numberOfTransPile]
game.Piles[numberOfTransPile].
break;
}
}
for (i = 0; i <Game.countOfPiles; i++)
{
Pile pile = game.Piles[i];
if (game.intersect(transportCard, pile)
&& transportCard.isRightPileCard(
{
drop = true;
transportCard.X = offsetX + i * Game.widthCard + pileDistance * i;
if (pile.countCardsInPile() == 0)
transportCard.Y = pile.Y;
else
transportCard.Y = pile.peekCard().Y + edgeOpen;
game.Piles[i].addCardToPile(
game.Piles[numberOfTransPile].