![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
N0rd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 24.10.2004 Где: Карелия,Петрозаво дск Репутация: нет Всего: нет |
Уже описывал эты проблемку в ветке общие вопросы,но так как пишем под линукс(в emacs'e),меня отправили сюда.
5. Управление луноходом по карте. Луноход передвигается по дорогам, отмеченным на карте размером 20х20. 1 символ - 1 координатная единица. Ширина дороги - 1. На карте должны быть развилки (не менее трех) и перекрестки. На перекрестках находятся шахты, добывающие металл (не менее трех) и лунные поселки (не менее двух). В поселках можно взять топливо, оплатив его металлом, а на шахтах получить металл. Вес топлива и металла не должен превышать грузоподъемность лунохода. Луноход передвигается по команде пользователя вида (направление, число шагов). Например (вправо, 5). Если встретились шахта или поселок, луноход сообщает о встреченном им объекте. По запросу пользователя луноход должен сообщать расстояние до ближайшего перекрестка и вид объекта (размещенного на нем), а также расстояния до ближайших шахты или поселка. По другому запросу луноход должен сообщать общий вес груза, который еще можно взять на борт и оставшийся запас топлива. Каждая единица пройденного пути вызывает расход топлива. Если топливо кончилось, луноход может просить ближайший поселок привезти ему топливо, получая долг по металлу. По требованию пользователя программа должна выводить карту, на которой обозначены все шахты и поселки, дороги и текущее положение лунохода. В начале работы программы луноход имеет запас топлива, достаточный для посещения четырех объектов. Примечание: на перекрестках обязательно расположены шахты или лунные поселки, пустых перекрестков быть не может. Язык реализации C. Должно получиться что то типа игры.Карта,луноход и т.д. обозначаются буковками символами(это вроде псевдографика называется). Помогите пожалуйста. З.Ы. Обычный Си без плюсов. |
|||
|
||||
dargaard |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 450 Регистрация: 7.5.2004 Репутация: 4 Всего: 25 |
Модератор: Тема не имеет никакого отношения к линуксу/юниксу.
-------------------- Ты должна сделать добро из зла потому что его больше не из чего сделать. Р.П.Уоррен |
|||
|
||||
LuckLess |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
ты что , хочешь чтобы тебе эту прогу целиком написали ??
Или тебе алгоритм нужен ? Или в каком нибудь конкретном месте чтото не выходит..? |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
N0rd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 24.10.2004 Где: Карелия,Петрозаво дск Репутация: нет Всего: нет |
Писать я начал,вот что у меня пока что получилось
Маловато конечно,но хоть кое что.Вообщем идея такова.В текстовом файле хранится карта,составленная так(например): 100000000001 110000000011 031111211310 010000000100 010000000100 0-это "пробел" 1-дорога 2-шахта 3-поселок Я уже начал открывать файл.Далее будет такая конструкция: if(input_data(file_input,map,MAP_SIZE)) // считываем данные из файла // если произошла ошибка то выводим предупреждение printf("Произошла ошибка при считывании данных\nПроверьте формат входных данных\n"); input_data-функция,которая будет посимвольно считывать данные из файла и в зависимости от цифры заносить в массив символы (д вместо 1,пробел вместо 0,ш вместо 2,п вместо 3).После этого я думаю файл становится ненужным и его можно закрыть?После всех этих приготовлений начинаем собственно сам процесс.Сначала я думаю надо вывести на экран справку содержащую все команды(вправо Х,влево У,карта...),справку реализовать функцией.Потом, пока команда не "выход": введите команду В зависимости от команды:вправо,влево,вниз,вверх,карта,торговля(в деревнях),справка,взять в долг топливо(если оно кончилось),расстояние до ближайшего...;Выполняем действия(их я думаю тоже реализовать функциями). Дело в том что это можно сказать моя первая программа на Си.Вот что мне не очень понятно:как сделать функцию input_data,как вычислять расстояние до щахты,поселка,ближайшего объекта? З.Ы. У меня есть готовая программа(у одногрупника взял),но я сам хочу написать свою.У вас на форуме можно файлы выкладывать,я бы положил эту прогу,может вам интересно посмотреть. З.З.Ы.Ы. Даже не знаю что делать ![]() ![]() |
|||
|
||||
antonmasteR |
|
|||
Unregistered |
N0rd
я когда-то такое писал вот лови http://odinsoft.webcindario.com/worm.rar там прога для ДОС но сам алгоритм думаю поймеш |
|||
|
||||
N0rd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 24.10.2004 Где: Карелия,Петрозаво дск Репутация: нет Всего: нет |
Спасибо за помощь, но без комментариев разобраться сложновато.
|
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Это лишнее. То есть посимвольно это делать не надо. Читаешь все содержание файла в массив и готово. Как это сделать я думаю сто раз на форуме описано... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
http://odinsoft.webcindario.com/worm.rar
Ага ![]() ![]() или всё вместе ![]() |
|||
|
||||
antonmasteR |
|
|||
Unregistered |
En_t_end
это игра worm типо червяк бегает по экрану жрет яблоки и растет ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |