Игра "Линии"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



};

//смотрим вверх-влево=true;=1;(x-i>=0 && y-i>=0 && bSeeFuther){//если поле слева вверху существует=false;(m_field[x-i][y-i]==m_field[x][y]){//и его цвет совпадает с цветом (x,y)++;//увеличиваем счётчик совпадений вправо=true;

}++;

};

//смотрим вправо-вверх=true;=1;(x+i=0 && bSeeFuther){//если поле справа вверху существует=false;(m_field[x+i][y-i]==m_field[x][y]){//и его цвет совпадает с цветом (x,y)++;//увеличиваем счётчик совпадений вправо=true;

}++;

};

//смотрим вниз-влево=true;=1;

(x-i>=0 && y+i<iNumOfRows && bSeeFuther){//если поле слева внизу существует=false;(m_field[x-i][y+i]==m_field[x][y]){//и его цвет совпадает с цветом (x,y)++;//увеличиваем счётчик совпадений вправо=true;

}++;

};

//запоминаем, сколько шариков было до удаленияiWasNumOfBalls = m_iNumOfBalls;(iS+iN+1>=5){//есть 5 в рядInLine(x,y-iN,x,y+iS);=true;

//return true;

}(iO+iW+1>=5){//есть 5 в рядInLine(x-iW,y,x+iO,y);=true;

//return true;

}

//есть 5 в ряд по диагонали слева-сверху справа-снизу(iNW+iSO+1>=5){InLine(x-iNW,y-iNW,x+iSO,y+iSO);=true;

//return true;

}

//есть 5 в ряд по диагонали справа-сверху слева-снизу(iSW+iNO+1>=5){InLine(x+iNO,y-iNO,x-iSW,y+iSW);=true;

//return true;

}(bAddPoints){_iNumOfPoints+=CalcPoints(iWasNumOfBalls-m_iNumOfBalls);

}bRes;//нет 5 в ряд

}ClinesDoc::CalcPoints(int iNumDeletedBalls)

{iRes;(iNumDeletedBalls<5){0;

}{= 2* iNumDeletedBalls*iNumDeletedBalls

*iNumDeletedBalls+60;

}iRes;

}ClinesDoc::Delete5InLine(int x1, int y1, int x2, int y2)

{

//удаляет 5 шариков, расположенных в ряд

//от поля (x1, y1) до поля (x2, y2).i;

//удаление по горизонтали(y1==y2){(i=x1;i<=x2;i++){(m_field[i][y1]!=0){(i,y1,0);

}

}

}

//удаление по вертикали(x1==x2){(i=y1;i<=y2;i++){(m_field[x1][i]!=0){(x1,i,0);

}

}

}

//удаление по диагонали сверху-слева - снизу-справа((x1<x2) && (y1<y2)){(i=x1;i<=x2;i++){(m_field[i][y1-x1+i]!=0){(i,y1-x1+i,0);

}

}

}

//удаление по диагонали снизу-слева - сверху-справа((x1>x2) && (y1<y2)){(i=y1;i<=y2;i++){(m_field[x1+y1-i][i]!=0){(x1+y1-i,i,0);

}

}

}

}

4. Алгоритм окончания программы.

void ClinesDoc::StopGame(void)

{(L"Игра закончена!");

//MessageBox(L"Игра закончена!+\nИгра закончена!+\nИгра закончена!+\nИгра закончена!+\nИгра закончена!");

/*Form *f = new Form();>*/

}

В данной процедуре мы сначала при запуске кидаем 5 шариков в случайном порядке. Потом перетаскиваем шарики, чтобы собрать линию из 5 одинаковых шариков. Игра заканчивается, когда поле будет полностью заполнено.

программа алгоритм игра объектный ориентированный

4. Примеры работы программы

Приведем примеры работы программы.

На рис. 6 приведен вид программы в процессе игры.

Рис. 6

На рис. 7 демонстрируется результат когда игра завершена.

Рис. 7

Список литературы

  1. Павловская, Т. А. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. - СПб.: Питер, 2010. - 461 с.
  2. Прата, С. Язык программирования С++. Лекции и упражнения / С. Прата. М.: Вильямс, 2006. - 1184 с.

3. Богуславский, А.А. Основы программирования на языке Си++. Часть 4: Программирование для Microsoft Windows с использованием Visual C++ и библиотеки классов MFC / А. А. Богуславский, С.М. Соколов. - Коломна: КГПИ, 2002. - 490 с.