![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.03.2010
Сообщений: 6
|
![]()
Кусок из программы лабиринт
при нажатии "1" нужно нарисовать лабиринт размером 13на 13, но он выводит только 4,5 строки. в чем ошибка, подскажите? trace domains m=a* a=a(i,j) j=integer i=integer predicates wall(i,j) no_wall(i,j) finish(i,j) writemaze(i,j) menu do(char) clauses wall(1,1). %We draw a walls of column 1. wall(3,1). wall(4,1). wall(5,1). wall(6,1). wall(7,1). wall(8,1). wall(9,1). wall(10,1). wall(11,1). wall(12,1). wall(13,1). wall(1,2). %We draw a walls of column 2. wall(7,2). wall(11,2). wall(13,2). wall(1,3). %We draw a walls of column 3. wall(2,3). wall(3,3). wall(5,3). wall(6,3). wall(7,3). wall(8,3). wall(9,3). wall(11,3). wall(13,3). wall(1,4). %We draw a walls of column 4. wall(3,4). wall(5,4). wall(13,4). wall(1,5). wall(7,5). %We draw a walls of column 5. wall(8,5). wall(9,5). wall(11,5). wall(12,5). wall(13,5). wall(1,6). %We draw a walls of column 6. wall(2,6). wall(4,6). wall(5,6). wall(9,6). wall(13,6). wall(1,7). %We draw a walls of column 7. wall(4,7). wall(5,7). wall(11,7). wall(12,7). wall(13,7). wall(1,8). %We draw a walls of column 8. wall(3,8). wall(4,8). wall(7,8). wall(8,8). wall(9,8). wall(11,8). wall(13,8). wall(1,9). %We draw a walls of column 9. wall(5,9). wall(13,9). wall(1,10). %We draw a walls of column 10. wall(3,10). wall(4,10). wall(7,10). wall(9,10). wall(11,10). wall(12,10). wall(13,10). wall(1,11). %We draw a walls of column 11. wall(5,11). wall(6,11). wall(7,11). wall(8,11). wall(9,11). wall(12,11). wall(13,11). wall(1,12). %We draw a walls of column 12. wall(3,12). wall(9,12). wall(10,12). wall(13,12). wall(1,13). %We draw a walls of column 13. wall(2,13). wall(3,13). wall(4,13). wall(5,13). wall(6,13). wall(7,13). wall(8,13). wall(9,13). wall(10,13). wall(11,13). wall(12,13). wall(13,13). no_wall(2,1). %We draw a path of column 1. no_wall(2,2). %We draw a path of column 2. no_wall(3,2). no_wall(4,2). no_wall(5,2). no_wall(6,2). no_wall(8,2). no_wall(9,2). no_wall(10,2). no_wall(12,2). no_wall(4,3). %We draw a path of column 3. no_wall(10,3). no_wall(12,3). no_wall(2,4). %We draw a path of column 4. no_wall(4,4). no_wall(6,4). no_wall(7,4). no_wall(8,4). no_wall(9,4). no_wall(10,4). no_wall(11,4). no_wall(12,4). no_wall(2,5). no_wall(3,5). %We draw a path of column 5. no_wall(4,5). no_wall(5,5). no_wall(6,5). no_wall(10,5). no_wall(3,6). %%We draw a path of column 6. no_wall(6,6). no_wall(7,6). no_wall(8,6). no_wall(10,6). no_wall(11,6). no_wall(12,6). no_wall(2,7). %We draw a path of column 7. no_wall(3,7). no_wall(5,7). no_wall(6,7). no_wall(8,7). no_wall(9,7). no_wall(10,7). no_wall(2,8). %We draw a path of column 8. no_wall(6,8). no_wall(10,8). no_wall(12,8). no_wall(2,9). %We draw a path of column 9. no_wall(3,9). no_wall(4,9). no_wall(6,9). no_wall(7,9). no_wall(8,9). no_wall(9,9). no_wall(10,9). no_wall(11,9). no_wall(12,9). no_wall(2,10). %We draw a path of column 10. no_wall(5,10). no_wall(6,10). no_wall(8,10). no_wall(10,10). no_wall(2,11). %%We draw a path of column 11. no_wall(3,11). no_wall(4,11). no_wall(10,11). no_wall(11,11). no_wall(2,12). %We draw a path of column 12. no_wall(4,12). no_wall(5,12). no_wall(6,12). no_wall(7,12). no_wall(8,12). no_wall(11,12). no_wall(12,12). no_wall(12,13). %We draw a path of column 13. finish(12,13). menu:-write("1 To draw a labyrinth."),nl, nl,nl, readchar(N),do(N),N='0'. do('1'):-writemaze(1,1),nl. do('0'). writemaze(13,14):-nl. writemaze(N,14):-B=N+1,nl,writemaze(B,1). writemaze(N,M):-wall(N,M),write("*"),K=M+1,writemaz e(N,K); no_wall(N,M),write("+"),K=M+1,write maze(N,K). goal menu.
Я не поняла вашего вопроса, но я вам на него отвечу
ISQ 456791898 http://vkontakte.ru/id8698421 |
![]() |
![]() |
![]() |
#2 |
Регистрация: 02.03.2010
Сообщений: 6
|
![]()
выводит получается только 50 символов, как сделать так, чтобы выводились 119 символов?
Я не поняла вашего вопроса, но я вам на него отвечу
ISQ 456791898 http://vkontakte.ru/id8698421 |
![]() |
![]() |
![]() |
#3 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
все очень просто. Смотрим вся логика программы заключена тут:
Код:
вторая строчка чтобы начать отрисовку новой строки после вывода 14 символа текущей строки. во всех остальных случаях выполняет следующее Код:
Вообще ИМХО весьма криво построена программа. Логично что если в клетке ничего нет - то она пуста. Зачем заносить все пустые клетки в БД? no_wal надо удалить вообще. Кроме того, стоит нормально отформатировать код - расставить отступы. Раздел goal лучше помещать сразу после predicates - так легче его найти, а ведь именно с него начинает работать программа. Записи БД(о стенах, в вашем случае) надо поместить в самый конец, а лучше в отдельный файл. |
![]() |
![]() |
![]() |
#4 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
еще надо было в районе правила do
добавить отсечение. Вот, примите в дар код: Код:
Последний раз редактировалось rrrFer; 13.11.2011 в 20:42. |
![]() |
![]() |
![]() |
#5 | |
Регистрация: 02.03.2010
Сообщений: 6
|
![]() Цитата:
За остальные советы огромное спасибо, исправлю.
Я не поняла вашего вопроса, но я вам на него отвечу
ISQ 456791898 http://vkontakte.ru/id8698421 |
|
![]() |
![]() |
![]() |
#6 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
Но лучше всеже не хранить информацию о "нестенах". Почему? - писал выше. |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 02.03.2010
Сообщений: 6
|
![]()
Благодарю))) Очень выручили)))
Я не поняла вашего вопроса, но я вам на него отвечу
ISQ 456791898 http://vkontakte.ru/id8698421 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
prolog | Studento4ka | Помощь студентам | 0 | 18.04.2010 11:17 |
Prolog | Darck Angel | Софт | 0 | 17.01.2010 20:32 |
Prolog | @Katushka@ | Помощь студентам | 0 | 03.10.2009 22:44 |
Prolog | Zeraim | Общие вопросы Delphi | 1 | 14.05.2008 18:01 |
Prolog | 301 | Помощь студентам | 10 | 27.03.2008 20:43 |