Разработка компьютерной игры «Косынка»

Автор: Пользователь скрыл имя, 09 Мая 2012 в 18:16, курсовая работа

Краткое описание

Развитие компьютерных технологий в течение последних нескольких десятилетий происходило удивительно быстрыми темпами. Современные ноутбуки и стационарные компьютеры могут производить вычисления гораздо быстрее и хранить намного больше информации, чем, например, компьютеры второй половины прошлого столетия. Также в ногу со временем развивались языки программирования.

Оглавление

Введение………………………………………………………………………………………..4
1. Постановка задачи…………………………………………………………………….5
2. Объектно-ориентированный анализ предметной области……..6
3. Результаты проектирования……………………………………………………..9
4. Результаты комплексного тестирования………………………………….11
Выводы………………………………………………………………………………………….16
Использованная литература………………………………………………………...17
Приложение А. Руководство пользователя…………………………………18
Приложение Б. Листинг программы……………………………………………19

Файлы: 1 файл

курсовая програмирование Косынка.docx

— 276.40 Кб (Скачать)

//задаем  координаты дополнительной колоды

            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].countCardsInPile() != 0)

                {

                    cards = game.Piles[i].getPile();

for (j = game.Piles[i].countCardsInPile() - 1; j >= 0; j--)

                    {

if ((drag && transportCard.CardNumber != cards[j].CardNumber) || (!drag))

                        {

if (cards[j].IsOpen)

                            {

                                bmp = (Bitmap)WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("_" + cards[j].CardNumber);

                                graphics.DrawImage(bmp, cards[j].X, cards[j].Y);

                            }

else

                                graphics.DrawImage(rubashka, cards[j].X, cards[j].Y);

                        }

                    }

                }

            }

            cards = game.Piles[Game.countOfPiles].getPile();

for (i = game.Piles[Game.countOfPiles].countCardsInPile() - 1; i >= 0; i--)

                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)WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("_" + cards[j].CardNumber);

                    graphics.DrawImage(bmp, cards[j].X, cards[j].Y);

}

            } 

//если  дополнительная колода непуста,  прорисовываем ее

if (game.Deck.countCardsInPile() != 0)

            {

                bmp = (Bitmap)WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("_" + game.Deck.peekCard().CardNumber);

                graphics.DrawImage(bmp, game.Deck.X, game.Deck.Y);

} 

//перерисовываем  перемещаемую карту

if (drag)

{

                bmp = (Bitmap)WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("_" + transportCard.CardNumber);

                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выходToolStripMenuItem1_Click(object sender, EventArgs e)

{

            Close();

        } 

//Пункт  меню начала новой игры

privatevoidвыходToolStripMenuItem_Click(object sender, EventArgs e)

        {

            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].countCardsInPile() > 0)

                {

Card card = game.Piles[numberOfTransPile].removeCardFromPile();

                    game.Deck.addCardToPile(card);

                }

else

                {

while (game.Deck.countCardsInPile() != 0)

                    {

                        game.Piles[numberOfTransPile].addCardToPile(game.Deck.removeCardFromPile());

                    }

                }

            }

else

//начинаемперемещениекарты

if (transportCard != null)

            {

                transportX = e.X - transportCard.X;

                transportY = transportCard.Y - e.Y;

                startX = transportCard.X;

                startY = transportCard.Y;

                drag = true;

//transportBitmap = (Bitmap)WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("_" + Convert.ToString(transportCard.CardNumber));

            }

        } 

//обработчикперемещениякурсорамыши

privatevoid Form1_MouseMove(object sender, MouseEventArgs e)

        {

if (e.Button == MouseButtons.Left && drag)

            {               

//graphics.DrawImage(transportBitmap, new Point(e.X - transportX, e.Y - transportY));

                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(_base))

{

                        drop = true;

                        transportCard.X = _base.X;

transportCard.Y = _base.Y;

                        game.Bases[i].addCardToPile(transportCard);

game.Piles[numberOfTransPile].removeCardFromPile();

if (game.Piles[numberOfTransPile].countCardsInPile() != 0)

                            game.Piles[numberOfTransPile].peekCard().IsOpen = true;

break;

                    }

                }

for (i = 0; i <Game.countOfPiles; i++)

                {

Pile pile = game.Piles[i];

if (game.intersect(transportCard, pile) && transportCard.isRightPileCard(pile))

{

                        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(transportCard);

                        game.Piles[numberOfTransPile].removeCardFromPile();

Информация о работе Разработка компьютерной игры «Косынка»