IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Игра Лабиринт, помочь доделать!, Срочно
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


задача вроде не сложная, но я весь запутался, решается практически моя судьба, поэтому ооочень надеюсь на вашу Помощь!!!!
очень срочно!!!
игра сама по себе сделана, нужно переделать такую вещь как:
вместо ходящего элемента * сделать змейку состоящую из 3-х элементов *--


Прикрепленные файлы
Прикрепленный файл  PIAVY_lab1.pas ( 2.94 килобайт ) Кол-во скачиваний: 178
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Volf @ 4.10.2006 13:57) *

задача вроде не сложная, но я весь запутался, решается практически моя судьба, поэтому ооочень надеюсь на вашу Помощь!!!!
очень срочно!!!
игра сама по себе сделана, нужно переделать такую вещь как:
вместо ходящего элемента * сделать змейку состоящую из 3-х элементов *--

А если она идет вертикально - использовать "|" ?
В принципе, это можно сделать без особо больших изменений, мне кажется.
Для этого :

1. затирать старое положение звездочки нужно не пробелом, а либо -, либо |. Можно ввести этот символ в число параметров процедуры Move и вызывать ее с нужным символом из управления.

2. Нужно запоминать все промежуточные положения в буфер типа FIFO и затирать пробелом хвост в координатах выходящего элемента этого буфера.

3. Ход назад придется запретить. Для этого надо хранить последний ход или проверять значение поля на экране..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(lapp @ 4.10.2006 13:39) *

А если она идет вертикально - использовать "|" ?
В принципе, это можно сделать без особо больших изменений, мне кажется.


нет...там у меня ошибка...3 символ не -, а спецсимвол псевдографики (#217)...
а в программир я практически 0, и вообще нихрена не получается...=''''''(((((((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


SOS!!!
SOS!!!
SOS!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Volf @ 4.10.2006 16:38) *

нет...там у меня ошибка...3 символ не -, а спецсимвол псевдографики (#217)...

Ты не мог бы подробнее сказать?
Проблема в том, что когда она движется влево - все хорошо, у нее хвост приподнят (#217 выглядит уголком).
Но если она идет вправо - хвост уже странный.
И совсем странно, если она идет вверх или вниз:

*
-
-

Ты точно этого хочешь?
Почему нужно выпытывать? Это нужно тебе или мне? Я же явно спросил про вертикальное движение в прошлом посте..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(lapp @ 5.10.2006 3:58) *

Ты точно этого хочешь?
Почему нужно выпытывать? Это нужно тебе или мне? Я же явно спросил про вертикальное движение в прошлом посте..


Да мне УЖЕ хоть как!!!!!!!
Лищь бы змейка ходила!!!!!!!!лишь бы сдать!!!!!!!!! время есть до 11,00!!!!!!!!!!! HELPPPPPPPPPPPPPPPPPP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! =(((((((((((((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Volf @ 5.10.2006 6:06) *

Да мне УЖЕ хоть как!!!!!!!
Лищь бы змейка ходила!!!!!!!!лишь бы сдать!!!!!!!!! время есть до 11,00!!!!!!!!!!! HELPPPPPPPPPPPPPPPPPP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! =(((((((((((((

Нет, до 11 я точно не могу даже заняться.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(lapp @ 5.10.2006 6:34) *

Нет, до 11 я точно не могу даже заняться.



mega_chok.gif
ну может хоть что-нибудь...наброски...часть...ПЛЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=((((((((((((((((((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


ШАНС НА СПАСЕНИЕ!!!
сдачу переназначили!!!!!
так что зов о помощи с этой злосчастной змейкой в силе!!!!!!!!!!!!!!!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Volf @ 5.10.2006 13:07) *

сдачу переназначили!!!!!
так что зов о помощи с этой злосчастной змейкой в силе!!!!!!!!!!!!!!!!!!!

Твоя настойчивость достойна поощрения smile.gif И надолго ли отсрочка?
Ладно, ночью попробую что-то придумать.. Но на легкий путь не рассчитывай. Делать будем вместе smile.gif
В порядке первого упражнения - попробуй, если сможешь, что-то сделать сам, руководствуясь тем, что я написал выше..
А пока - пока!
smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(lapp @ 5.10.2006 12:17) *

Твоя настойчивость достойна поощрения smile.gif И надолго ли отсрочка?
Делать будем вместе smile.gif
В порядке первого упражнения - попробуй, если сможешь, что-то сделать сам, руководствуясь тем, что


ОК! хотя я столько пробовал, и результат - практически 0...
а сдача либо завтра во второй половине дня, либо в понедельник...известно будет завтра с утра...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Volf @ 5.10.2006 13:36) *

хотя я столько пробовал, и результат - практически 0...

Вот и показал бы свой "практически 0"...
Цитата(Volf @ 5.10.2006 13:36) *

а сдача либо завтра во второй половине дня, либо в понедельник...известно будет завтра с утра...

Ладно, на этот раз не буду сильно мучить тебя. Выкладываю вариант со змейкой длины 3.

Замечания:
1. Я причесал весь код (поставил правильные отступы и ввел большие буквы в идентификаторы для лучшей читаемости).
2. Исправил нечитабельный русский на читабельный английский. Если хочешь русский - переводи сам.
3. Исправил вертикальную черту в отрисовке лабиринта.
4. Кое-где изменил код для оптимзации. Например, множественный IF заменен на CASE (не везде).
5. При длине 3 затевать кухню с FIFO все же не стоит. Я просто добавил пару переменных VeryOldX и VeryOldY и сделал перекладывание. Если нужно будет реализовать бОльшую длину - надо делать FIFO.
6. Добавил проверку на самопересечение, которое считаю запрещенным.
7. При запрете на самопересечение возможна блокировка. Добавил проверку блокировки с выходом из програмы (сообщение "You are lost", то есть "Вы потерялись").
8. Все более-менее существенные изменения и добавления снабжены комментариями.
9. Компилировалось с использованием FPC с опцией совместимости с TP.

Прикрепленный файл  t028.pas ( 3.3 килобайт ) Кол-во скачиваний: 368

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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


ОК!
СПАСИБО огромное!!! все работает, единственное это то,что при любом исходе, даже при выигрыше выдает "Вы потерялись" =) ну это мелочи, еще раз СПАСИБО!
good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Volf @ 6.10.2006 12:32) *

даже при выигрыше выдает "Вы потерялись"

В конце процедуры CheckMove измени так:
Код
    if (CurX=1) or (CurX=10) or (CurY=1) or (CurY=10) then exitcode:=2
    else
    if (Lab[CurX-1,CurY]<>' ')and(Lab[CurX+1,CurY]<>' ')and(Lab[CurX,CurY-1]<>' ')and(Lab[CurX,CurY+1]<>' ') then
      ExitCode:=3


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 21.11.2017 0:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"