Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2010, 19:19   #1
Kn793
Форумчанин
 
Регистрация: 20.06.2008
Сообщений: 125
По умолчанию Стоит ли реализовывать данную идею?

В универе дали задание на весь семестр: придумать идею проекта и реализовать её в полной мере. Тематика почти не ограничена (хоть робототехника, хоть серверное ПО). И неделя на размышления.

Собственно что придумал:
Представьте игру battle sity(танчики еще со времён денди), где в распоряжении у вас есть не 1 танк, а например 5, аналогично у противника. А управление осуществляется не в реальном времени, а в виде отправляемого вами кода, содержащего тактику и алгоритм поведения.
В общем нечто наподобие Fortress, но с визуализацией происходящего.
Так же будет возможность взять управление одного из танков на себя, конечно, только в режиме тестировании.
  • Скажите, вызовет у вас это хоть какой-нибудь интерес, или же такой нудятиной никто и заниматься не будет?
  • И еще подозреваю, что вместо battle sity можно выбрать какую-нибудь более удачную модель происходящего. Ведь не так то просто написать алгоритм для целой команды танков, еще и учитывая возможность разрушения ландшафта.
Kn793 вне форума Ответить с цитированием
Старый 05.09.2010, 19:39   #2
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Хз на каком вы курсе, но предлагаю реализовать что-нибудь из этого списка, это моя лаб работа по потокам по ОС на этот семестр

Цитата:
Лабораторная работа №2
по курсу «Операционные системы»
на тему «Синхронизация потоков и процессов»

Во всех вариантах необходимо предусмотреть ведение и отображение протокола действий потоков, механизмы синхронизации должны выбираться самостоятельно, выбор необходимо обосновывать.

Обедающие философы: 5 философов, перед каждым тарелка, справа от каждой тарелки по вилке, в центре одно большое блюдо с кушаньем, любой философ или думает или принимает пищу, для приема пищи он должен взять 2 вилки и с большого блюда переложить себе часть кушанья, а затем с помощью одной вилки (правой) принимать пищу.

Брадобрей: брадобрей спит в любом свободном кресле посетителей, если нет клиентов, если появляется клиент, то брадобрей обслуживает его, если брадобрей занят, то посетитель занимает свободное кресло, если свободных нет, то уходит, если клиент слишком долго ждет в очереди, то он тоже может уйти.
Проверка правописания слов: первый поток проверяет выполнимость правил для русского языка, второй поток для английского языка; правила представляют собой запрещенные сочетания символов для каждого из языков (к примеру, в слове не могут идти подряд три гласных буквы), количество правил для каждого языка не менее 10, проверяемый текст редактируется пользователем в компоненте TRichEdit, неправильные слова подчеркиваются.

Супермаркет: управляющий поток выполняет открытие и закрытие супермаркета, создает потоки-посетителей, организует ожидание не расплатившихся посетителей; поток-покупатель ожидает вход в магазин, совершает случайные покупки, ждут в очереди у кассы, расплачиваются у кассы, перекладывают продукты из корзины, покидают магазин.

Писатели-читатели: потоки-читатели подсчитывают количество разных символов в файле и отображают найденные значения, потоки-писатели случайным образом модифицируют содержимое файла.

Поиск файлов с отображением первых n байтов выбранного пользователем файла, поиск по следующим критериям: вхождение определенного набора символов, имя, расширение файла, дата создания, модификации, минимальный и максимальный размер.

Подсчет статистики по файлу разными потоками (количество символов, количество слов, количество строк, количество разных символов, количество символов-цифр, слова разделяются специальными символами разделителями, задаваемыми пользователем)

Игра «Поле монстров»: имеется квадратное поле, игроку необходимо управляя курсором необходимо провести свое существо из одного угла поля в другой, не сталкиваясь с монстрами; монстры 2-х типов, командиры и подчиненные, командиры задают подчиненным направление на следующие 2 хода, подчиненные либо ожидают приказа, либо его выполняют, сами командиры двигаются случайно, на одной клетке монстры не могут находиться, в случае столкновения игрока и монстра игрок считается проигравшим.

Больница: имеются больные, посещающие лечебные процедуры или отдыхающие, во время отдыха могут придти посетители, и встретится с больным в приемном покое, в нем количество мест ограничено, каждый больной имеет степень тяжести заболевания, что влияет на возможность его прихода в приемное отделение, посетители могут справляться о состоянии здоровья пациента, ждать некоторое время в приемном покое, уходить.

Таксопарк: имеется несколько диспетчеров, принимающих заказы (откуда, куда и идентификаторы заказчика), диспетчеры подыскивают свободную машину, ближайшую к местоположению заказчика и отсылают ее. Заказчик в случае долгого ожидания отменяет заказ путем дозвона диспетчеру.

Заправочная станция: несколько мест для заправки, к каждому может выстраиваться небольшая очередь, любая машина может заправиться определенным видом топлива в количестве кратном 10, иногда на заправку приезжают бензовозы, пополняющие запасы топлива, в этот момент станция никого не обслуживает, также станция закрывается при достижении запасов топлива некоторой критической отметки.

Кафе: набор столиков и официантов (может быть меньше чем столиков), посетители приходят компаниями в разном количестве (>0), если за столиком сидит компания, то другие к ним не могут подсесть, компания может занять больше 1 столика, посетители из одной компании могут приходить и уходить по одному, вероятность прихода новых посетителей в компанию зависит от длительности нахождения компании в кафе, чем дольше компания находится в кафе тем меньше вероятность появления новых ее членов.

Бюрократический аппарат: граждане обращаются с делами к бюрократам, решающим определенные типы вопросов, а те решают их неопределенное время или отсылают к другим; если долго решают, то граждане уходят к другим и т.д. каждое дело заканчивается только после решения определенного количества вопросов разного типа или отказом гражданина от решения дела.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 05.09.2010, 19:40   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

И продолжение

Цитата:
Игра «Дикий футбол»: имеется 2 противоборствующих команды, целью каждой из них является занесение мяча в ворота соперника и отстаивание своих ворот в неприкосновенности, в каждой команде 2 вида игроков – «созидатели» и «разрушители», «созидатели» стараются направить мяч к воротам соперника, а «разрушители» отталкивают чужих игроков от мяча сталкиваясь с ними, распределение игроков по полю случайное в начале игры и после каждого гола, игроки одной команды не могут находиться в одной точке поля.

Игра «Битва коней и слонов»: имеется шахматная доска с произвольной длиной стороны, определенное количество фигур «Конь» и «Слон» в каждой играющей стороне (черные и белые), 2 фигуры одного цвета не могут находиться на одной клетке, в случае хода фигуры на клетку, занятую фигурой другого цвета, данная фигура удаляется с доски. Фигуры ходят по правилам шахмат (ход конем и ход слоном соответственно), игра идет до тех пор, пока на доске не останется фигур одной из команд.

Писатели-читатели 2: имеется заданный каталог, потоки читатели считывают и отображают информацию о файлах и подкаталогах (размер, атрибуты файла, имена и пр.), потоки-писатели выполняют изменение атрибутов и содержимого файлов, создают или удаляют файлы и каталоги.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 05.09.2010, 21:37   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Представьте игру battle sity(танчики еще со времён денди), где в распоряжении у вас есть не 1 танк, а например 5, аналогично у противника. А управление осуществляется не в реальном времени, а в виде отправляемого вами кода, содержащего тактику и алгоритм поведения.
Типа robocode, но пошаговый с возможностью менять программу между ходами?

Цитата:
Скажите, вызовет у вас это хоть какой-нибудь интерес, или же такой нудятиной никто и заниматься не будет?
Интерес-то вызовет, но у узкого круга лиц. (широкому кругу лиц Crysis подавай).

Цитата:
И еще подозреваю, что вместо battle sity можно выбрать какую-нибудь более удачную модель происходящего. Ведь не так то просто написать алгоритм для целой команды танков, еще и учитывая возможность разрушения ландшафта.
Ну... думаю, что сложность тут зависит не от разрушаемого ландшафта, а от того, насколько сложное поведение хочет получить программист. Если будет возможность перепрограммирования после хода, то не будет необходимости создавать слишком сложный код. (хватит мелких шаблончиков программок, на несколько ходов вперед.)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 05.09.2010, 22:21   #5
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Мне бы было интересно, если бы вы реализовали. Если уж и думать в таком направлении - можно порыть интернет по поводу тактики поведения танковых войск и как действительно они действуют.
А еще можно ввести элемент "неподчинения", когда по каким-либо причинам команда либо не дошла, либо не выполняется - плохая связь, и тогда ИИ танков принимает решением сам.
и это пройдет...
grenles вне форума Ответить с цитированием
Старый 06.09.2010, 01:05   #6
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Сама идея интересная. Так, что думаю стоит реализовать ее.
з.ы. Ну и сам смотри, если тебе будет интересно, то конечно реализовывай.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 06.09.2010, 02:09   #7
Kn793
Форумчанин
 
Регистрация: 20.06.2008
Сообщений: 125
По умолчанию

Всем спасибо за положительные отзывы, мотивации мне теперь точно хватит .

Но всё же вопрос о выборе модели остаётся открытым. Может вы знаете какие-нибудь простые, всем известные игры, которые неплохо вписались бы в данную систему?

Цитата:
Типа robocode, но пошаговый с возможностью менять программу между ходами?
Да, как robocode, но там вроде такая возможность как раз таки есть, а в данном проекте не думаю что стоит её вводить. Ведь вся завязка на соревновательном процессе, мол кто напишет более умного бота.
Я имел ввиду, управление с клавиатуры как в обычных танчиках не победы ради, а чисто в режиме тестирования.
Kn793 вне форума Ответить с цитированием
Старый 06.09.2010, 07:19   #8
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Да, как robocode, но там вроде такая возможность как раз таки есть, а в данном проекте не думаю что стоит её вводить.
Хм... насколько я знаю, там "на ходу" подправить код нельзя.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно ли в абстрактном классе реализовывать методы? psihadelic Общие вопросы C/C++ 1 22.04.2010 17:19
Реально ли построить данную фигуру? NoHeart Общие вопросы Delphi 10 13.02.2009 18:39
Как обрабатывать данную ситуацию? Arkuz БД в Delphi 2 08.12.2008 02:51
Помогите пж составить данную програму на Pascal.... Dima_my Помощь студентам 1 04.06.2008 15:29
Помогите реализовать данную задачу ==Spider== Работа с сетью в Delphi 2 15.12.2007 11:25