Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Заблокирован

Стрельба по тарелочкам

30.01.2016, 19:43. Показов 673. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень нужна помощь,чтобы исправить ошибку в уже написанной программе. Стрельба по тарелочкам.Ружье находится внизу экрана.Управление углом ружья.Тарелочки летят слева по случайным траекториям.
Ошибка на 107 шаге.

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
DECLARE SUB klav (COM$, alfa, dalfa, LOC$)
DECLARE SUB boom (x, y, Le, E, R$, R1$)
DECLARE SUB fly (x, y)
DECLARE SUB Lines (x)
 
DIM scorer(10), scorep$(10)
 
'const
pi = 3.141592
alfa = 0
dalfa = 10
 
'menu
DO
0
CLS
PRINT "Skeet vol1"
PRINT "Press s to see a high score, g to start or x to exit"
a$ = INKEY$
IF a$ = "x" THEN GOTO 4
IF a$ = "s" THEN GOTO 1
IF a$ = "g" THEN GOTO 2
SLEEP
LOOP
 
'game
2
SCREEN 11
WINDOW (0, 0)-(640, 350)
 
CALL Lines(x)
 
f$ = "BU10 Bl7 l3 d30 R20 U30 L3 Bl7"
g$ = "BU14 l7 d14 BR14 U14 L7"
 
f1$ = "C0BU10 C0Bl7 C0l3 C0d30 C0R20 C0U30 C0L3 C0Bl7"
g1$ = "C0BU14 C0l7 C0d14 C0R14 C0U14 C0L7"
 
R$ = "C1BU11 H1 E1 F1 G1 U1"
R1$ = "C0BU11 H1 E1 F1 G1 U1"
u1$ = f1$ + g1$
u$ = f$ + g$
 
LOCATE 1, 1: PRINT "Score:"; E
PSET (310, 20), 1
DRAW u$
PAINT (310, 19), 1
LOCATE 15, 30: PRINT "Kill the flying saucers!!!"
LOCATE 16, 30: PRINT "If you are ready press any button!!!"
SLEEP
LOCATE 15, 30: PRINT "                          "
LOCATE 16, 30: PRINT "                                    "
 
RANDOMIZE TIMER
LOCATE 1, 1: PRINT "Score:"; E
FOR w = 1 TO 100
 x = 609              
 y = RND * 270 + 45
 FOR u = 1 TO 580
  CALL Lines(x)
  PSET (310, 20), 0  
  DRAW u1$ + LOC$
  PSET (310, 20), 1
  DRAW u$ + LOC$
  PAINT (310, 19), 1
  CIRCLE (x, y), 7, 12, , , .5
  PAINT (x, y), 2
  COM$ = INKEY$  
  CALL klav(COM$, alfa, dalfa, LOC$)
  IF RIGHT$(COM$, 185) = " " THEN CALL boom(x, y, Le, E, R$, R1$)
  FOR k = 1 TO 25000 * RND(x): NEXT k
  PAINT (x, y), 0
  CALL fly(x, y)
  PSET (310, 20), 1
  PAINT (310, 20), 0
 NEXT u
NEXT w
 
4
END
1
CLS
PRINT "", "High score table"
PRINT ""
OPEN "g:\scorep.txt" FOR INPUT AS #1
FOR z = 1 TO 10
 INPUT #1, scorep$(z)
NEXT z
CLOSE #1
OPEN "g:\scorer.txt" FOR INPUT AS #2
FOR z = 1 TO 10
 INPUT #2, scorer(z)
NEXT z
CLOSE #2
 
FOR T = 1 TO 10
 PRINT "Player"; SPC(3); scorep$(T); SPC(3); "earned"; SPC(3); scorer(T)
NEXT T
PRINT ""
PRINT "Press any key to return to main menu"
SLEEP
GOTO 0
 
SUB boom (x, y, Le, E, R$, R1$)
tm = 29
DO WHILE tm <> 339 OR Le < 8
 PSET (310, tm)
 DRAW R$
 FOR i = 1 TO 100: NEXT i
 DRAW R1$
 tm = tm + 1
 Le = SQR((310 - x) ^ 2 + (tm - y) ^ 2)
 IF Le < 8 THEN E = E + 1: LOCATE 1, 1: PRINT "Score:"; E
LOOP
END SUB
 
SUB fly (x, y)
x = x - 1
DO
 y = y + 4 * RND(x) * COS(15 * y)
LOOP WHILE y > 310 OR y < 40
END SUB
 
SUB klav (COM$, alfa, dalfa, LOC$)
 IF RIGHT$(COM$, 1) = "K" THEN alfa = alfa + dalfa
 IF RIGHT$(COM$, 1) = "M" THEN alfa = alfa - dalfa
 IF alfa >= 360 OR alfa <= -360 THEN alfa = 0
 i$ = STR$(alfa)
 LOC$ = "ta" + i$: DRAW u1$
END SUB
 
SUB Lines (x)
LINE (20, 20)-(20, 330)  
LINE (20, 330)-(630, 330)
LINE (630, 330)-(630, 20)
LINE (630, 20)-(340, 20)
LINE (280, 20)-(20, 20)
END SUB
Добавлено через 3 часа 33 минуты
Неужели никто не может помочь. Код же есть, не прошу помощи с нуля.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2016, 19:43
Ответы с готовыми решениями:

Стрельба по тарелочкам
Собственно столкнулся с некой проблемой. Сначала напишу условие: Начал писать программу, написал меню, результаты, но в самой игре...

Стрельба по тарелочкам
Подскажите, пожалуйста, как прописать движение изображения тарелки? По заданию у меня должна траектория пули рисоваться и траектория...

Стрельба
Как создать стрельбу очередями. При стрельбе одним патроном в общемто понятно, а очередью нужно создавать множество патронов?

2
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.01.2016, 20:08
Цитата Сообщение от 7kaktus7 Посмотреть сообщение
Тарелочки летят слева
Тарелочки летят справа!
Цитата Сообщение от 7kaktus7 Посмотреть сообщение
Ошибка на 107 шаге.
Ошибки в QB нет, по крайне мере синтаксической.
Логические возможно - стреляет как то криво ружьё

Вы так и не ответили на мой вопрос - у вас какой язык программирования QBasic или может QB64 или может вообще другой?
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
30.01.2016, 21:00
Без комментариев трудно разобрать. К тому же
мне неизвестно, что считывает программа из ваших
файлов. Но ближе к делу.
Ошибка в строке 102:
GOTO 0
Нельзя делать переход ВНУТРЬ ЦИКЛА DO (метка на строке 15)
примечание:
Процедуру Lines() можно записать из двух строк.
Ведь она рисует прямоугольник и вход (цвет фона)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2016, 21:00
Помогаю со студенческими работами здесь

Стрельба с ЛА по ЛА
Стрельба с ЛА по ЛА может производиться с трех дальностей: 900, 600, и 300м. Вероятность того , что стрельба производится с соответствующей...

Стрельба
Привет всем! Пишу FPS шутер. Подскажите пожалуйста код, где персонаж будет стрелять. Чтобы, когда нажимаешь левой кнопкой мыши,...

Стрельба
Помогите решить задачку... Размер мишени для стрельбы задается координатам центра концентричных кругов (x,y) и соответственными радиусами...

Стрельба
Здравствуйте. Пишу игру на подобие Doodle Jump. Подскажите пожалуйста, как сделать стрельбу своего персонажа.

Стрельба из мыши
Хочу реализовать возможность стрельбы из мыши для мини-игры. По задумке по щелчку мыши из текущего положения курсора должен появляться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru