1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
| Andrewshkovskii |
18.12.2008 17:33
Сообщение
#1
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Есть желание написать программу, реализующую действия ракеты и её цели. Задаются координаты цели для ракеты, стрелками на клавиатуре можно менять положение цели в 2-х мерном пространстве, ракета должна отслеживать цель. Все это должно производиться "параллельно"..
Код исходный большой(т.е там файлов листинга просто много). Я знаю, что один вольво отвечает на мои безумные посты, на него и надежда вся. В общем, в коде я оставил комментарии, где происходит "неконтролируемое", они в 2х файлах main и realiz.cpp. Код в архиве... Сообщение отредактировано: Andrewshkovskii - 18.12.2008 17:58 Прикрепленные файлы
ev.zip ( 3.04 килобайт )
Кол-во скачиваний: 161 |
![]() ![]() |
| volvo |
18.12.2008 23:56
Сообщение
#2
|
|
Гость |
Цитата просто забыл убрать? Нет-нет... Это как раз для того, чтобы показать тебе, где заканчивается мой фрагмент, и продолжается дальше твой, чтоб ты не подумал, что лишняя закрывающая скобка...Насчет Set/ResetEvent внутри ChangeCoordTarget() - не то, чтобы для теста, оно таки должно там быть. Пока у тебя пауза в одном потоке в 100 раз больше, чем в другом - практически нереально, чтобы в тот самый момент, когда один поток переменную меняет, другой ее считывал. Как только длительности Sleep-ов приблизятся друг к другу, вероятность такого события будет все выше и выше, и тебе с уменьшением паузы при полете ракеты придется раскомментировать Set/ResetEvent, а в начале цикла while(IsAlive) добавить ожидание этого события, по тому же принципу, как это сделано в ChangeCoordTarget()... А теперь у меня вопрос на засыпку тебе, раз ты не спросил сам WaitForSingleObject(startEvent, INFINITE);и в начале потока ChangeCoordTarget, и в начале потока MoveToTarget(). Почему? Зачем? Что будет, если не делать SetEvent? |
Andrewshkovskii Ракета и Цель. 18.12.2008 17:33
Andrewshkovskii с одной проблемой в case разобрался. совсем забыл ... 18.12.2008 18:00
volvo А можно объяснить, что ты задумывал сделать вот ту... 18.12.2008 18:32
Andrewshkovskii switch (choise)
{
case 'n':// если ответ... 18.12.2008 18:45
Andrewshkovskii Одну проблему нашел, где вычисляется соотношение к... 18.12.2008 19:35
volvo Задумка неплохая, НО... Объясни мне, зачем у тебя ... 18.12.2008 20:12
Andrewshkovskii Честно говоря не совсем. НЕ совсем я понимаю в син... 18.12.2008 20:19
volvo Смотри... Я ничего не менял в файлах Rocket.cpp и ... 18.12.2008 22:01
Andrewshkovskii ну интересуют все закомментированные инструкции, в... 18.12.2008 23:24
Andrewshkovskii я сделал такое лицо сейчас - :dry:
У меня лишь п... 19.12.2008 0:08
volvo вот сейчас тупо вставил твой код, попробывал ... 19.12.2008 0:21
Andrewshkovskii Volvo, скажу одно - тебе можно только позавидовать... 19.12.2008 0:24
volvo Если убрать SetEvent в ChangeCoordTarget, то поток... 19.12.2008 1:12
Andrewshkovskii про аски-код - не заметил, извиняюсь.
Странно, но ... 19.12.2008 1:22
volvo Кстати, чтобы ракета наводилась на цель, достаточн... 19.12.2008 1:25
Andrewshkovskii Про вывод из потоков понятно.НО проблема-то не в в... 19.12.2008 1:30
volvo Мой вариант функции слежения тоже работает стабиль... 19.12.2008 1:36
Andrewshkovskii Missile at : 8 ,-8
missile report: target at 15278... 19.12.2008 1:45![]() ![]() |
|
Текстовая версия | 8.12.2025 13:00 |