Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код |
337374 |
Дата создания |
07 июля 2013 |
Страниц |
15
|
Мы сможем обработать ваш заказ (!) 23 декабря в 12:00 [мск] Файлы будут доступны для скачивания только после обработки заказа.
|
Введение
Игра "городок", показать что имеются навыки прграммирования на QBasic.
Фрагмент работы для ознакомления
LINE (ws / 2 - 2 * h + .3 * h, w)-(ws / 2 - 2 * h + .3 * h + w, w + h), 0, BF
END IF
END IF
'block 3
IF x > (ws / 2 - w / 2) AND x < (ws / 2 + w / 2) THEN
IF y > w AND y < w + h THEN
LINE (ws / 2 - w / 2, w)-(ws / 2 + w / 2, w + h), 0, BF
END IF
END IF
'block 4
IF x > (ws / 2 + h) AND x < (ws / 2 + 2 * h) THEN
IF y > 0 AND y < w THEN
LINE (ws / 2 + h, 0)-(ws / 2 + 2 * h, w), 0, BF
END IF
END IF
'block 5
IF x > (ws / 2 + h + .3 * h) AND x < (ws / 2 + h + .3 * h + w) THEN
IF y > w AND y < w + h THEN
LINE (ws / 2 + h + .3 * h, w)-(ws / 2 + h + .3 * h + w, w + h), 3, BF
END IF
END IF
NEXT y
NEXT x
END DEF
Построение третьей фигуры
'Figura 3
DEF FNFigure3 (ws, hs)
w= 10
h = 30
LINE (ws / 2 - 2 * h - h / 2, w / 2)-(ws / 2 - h - h / 2, 1.5 * w), 4, BF
LINE (ws / 2 - h - h / 2, 0)-(ws / 2 - h / 2, w), 4, BF
LINE (ws / 2 - h / 2, w / 2)-(ws / 2 + h / 2, 1.5 * w), 4, BF
LINE (ws / 2 + h / 2, 0)-(ws / 2 + h + h / 2, w), 4, BF
LINE (ws / 2 + h + h / 2, w / 2)-(ws / 2 + 2 * h + h / 2, 1.5 * w), 4, BF
END DEF
Проверка на столкновение с третьей фигурой
'Proverka na stolknovenie s figuroi 3
DEF FNCheckFigure3 (x1, y1, x2, y2)
w = 10
h = 30
FOR x = x1 TO x2
FOR y = y1 TO y2
'block 1
IF x > (ws / 2 - 2 * h - h / 2) AND x < (ws / 2 - h - h / 2) THEN
IF y > w / 2 AND y < 1.5 * w THEN
LINE (ws / 2 - 2 * h - h / 2, w / 2)-(ws / 2 - h - h / 2, 1.5 * w), 0, BF
END IF
END IF
'block 2
IF x > (ws / 2 - h - h / 2) AND x < (ws / 2 - h / 2) THEN
IF y > 0 AND y < w THEN
LINE (ws / 2 - h - h / 2, 0)-(ws / 2 - h / 2, w), 0, BF
END IF
END IF
'block 3
IF x > (ws / 2 - h / 2) AND x < (ws / 2 + h / 2) THEN
IF y > w / 2 AND y < 1.5 * w THEN
LINE (ws / 2 - h / 2, w / 2)-(ws / 2 + h / 2, 1.5 * w), 0, BF
END IF
END IF
'block 4
IF x > (ws / 2 + h / 2) AND x < (ws / 2 + h + h / 2) THEN
IF y > 0 AND y < w THEN
LINE (ws / 2 + h / 2, 0)-(ws / 2 + h + h / 2, w), 0, BF
END IF
END IF
'block 5
IF x > (ws / 2 + h + h / 2) AND x < (ws / 2 + 2 * h + h / 2) THEN
IF y > w / 2 AND y < 1.5 * w THEN
LINE (ws / 2 + h + h / 2, w / 2)-(ws / 2 + 2 * h + h / 2, 1.5 * w), 0, BF
END IF
END IF
NEXT y
NEXT x
END DEF
Удар битой, в функцию передаются координаты концов биты и сила удара
'Udar
DEF FNKick (x1, y1, x2, y2, Power)
Вычисление координат точки, вокруг которой осуществляется поворот
xn = x1 + ABS(x1 - x2) / 2
yn = y1 + ABS(y1 - y2) / 2
angle = 0
angler = angle * 3.141593 / 180
Отображение удара
WHILE (yn > (200 - 2 * Power))
t = TIMER * 1
IF t = TIMER * 1 THEN
LINE (x1, y1)-(x2, y2), 0 Очищаем старый рисунок биты
Вычисление новых координат по y
y1 = y1 - 1
y2 = y2 - 1
Вычисление координат точки, вокруг которой осуществляется поворот
IF x1 < x2 THEN
xn = x1 + ABS(x1 - x2) / 2
ELSE
xn = x2 + ABS(x1 - x2) / 2
END IF
IF y1 < y2 THEN
yn = y1 + ABS(y1 - y2) / 2
ELSE
yn = y2 + ABS(y1 - y2) / 2
END IF
'yn = yn - 1
Вычисление новых координат биты
dx1 = x1 * COS(angler) + y1 * (-SIN(angler)) + (-xn * (COS(angler) - 1) + yn * SIN(angler))
dy1 = x1 * SIN(angler) + y1 * (COS(angler)) + (-yn * (COS(angler) - 1) - xn * SIN(angler))
dx2 = x2 * COS(angler) + y2 * (-SIN(angler)) + (-xn * (COS(angler) - 1) + yn * SIN(angler))
dy2 = x2 * SIN(angler) + y2 * (COS(angler)) + (-yn * (COS(angler) - 1) - xn * SIN(angler))
Вычисление угла поворота
angle = angle + 1
angler = angle * 3.141593 / 180
x1 = dx1
y1 = dy1
x2 = dx2
y2 = dy2
Отрисовка биты с новыми координатами
LINE (x1, y1)-(x2, y2)
Проверка на столкновение биты с фигурой
'check1 = FNCheckFigure1(x1, y1, x2, y2)
check2 = FNCheckFigure2(x1, y1, x2, y2)
'check3 = FNCheckFigure3(x1, y1, x2, y2)
END IF
WEND
END DEF
Начало основной программы
Очистка экрана и установка графического режима
CLS
SCREEN 12
wblock = 20
hblock = 8
wbit = 70
ws = 640
hs = 480
Установка условий
Esc – выход
Left – влево
Right - вправо
Esc$ = CHR$(27)
LF$ = CHR$(0) + CHR$(75)
RF$ = CHR$(0) + CHR$(77)
scores = 3 Количество попыток
kick = 0
bitx1 = ws / 2 - wbit / 2
bitx2 = ws / 2 + wbit / 2
bity = hs - hbit - 100
Вывод на экран информации
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00457