Раскраска карты. Помочь написать на Turbo или перевести с Visual на Turbo - Prolog

Узнай цену своей работы

Формулировка задачи:

Приветствую! Задание состоит в следующем: необходимо РАЗРАБОТАТЬ ПРОГРАММУ ДЛЯ РАСКРАШИВАНИЯ ПЛОСКОЙ КАРТЫ, а именно раскрасить карту четырьмя цветами так, чтобы никакие 2 смежные области на ней не были окрашены в одинаковые цвета. При этом предусмотреть возможность задания карты!!! есть наброски в виде предложений :
Помогите оформить это все в РАБОТАЮЩУЮ реально программу , и хотелось бы, чтобы реализация была на Turbo Prolog !// заранее всем спасибо за помощь!!

Решение задачи: «Раскраска карты. Помочь написать на Turbo или перевести с Visual на Turbo»

textual
Листинг программы
domains
slist=string*
region=region(string,string,slist)
regions=region*
 
predicates
color_map(regions,slist)
color_region(region,slist)
select(string,slist,slist)
members(slist,slist)
test_color(string,regions)
map(string,regions)
colors(slist)
member(string,slist).
 
clauses
color_map([Region|Regions],Colors) :-color_region(Region,Colors),color_map(Regions,Colors).
color_map([],_).
 
color_region(region(_,Color,Neighbors),Colors) :-
select(Color,Colors,Colors1),
members(Neighbors,Colors1).
 
select(X,[X|Xs],Xs).
select(X,[Y|Ys],[Y|Zs]) :- select(X,Ys,Zs).
 
member(X,[X|_]).
member(X,[_|Xs]):-member(X,Xs).
 
members([X|Xs],Ys) :- member(X,Ys), members(Xs,Ys).
members([],_).
 
test_color(Name,Map) :-
map(Name,Map),
colors(Colors),
color_map(Map,Colors).
 
map("test",[region(a,A,[B,C,D]), region(b,B,[A,C,E]),
region(c,C,[A,B,D,E,F]), region(d,D,[A,C,F]),
region(e,E,[B,C,F]), region(f,F,[C,D,E])]).
 
map("west_europe",
[ region("portugal",P,[E]), region("spain",E,[F,P]),
region("france",F,[E,I,S,B,WG,L]), region("belgium",B,[F,H,L,WG]),
region("holland",H,[B,WG]), region("west_germany",WG,[F,A,S,H,B,L]),
region("luxembourg",L,[F,B,WG]), region("italy",I,[F,A,S]),
region("switzerland",S,[F,I,A,WG]), region("austria",A,[I,S,WG])]).
 
colors(["red","yellow","blue","white"]). 
 
goal
test_color("west_europe",Map),write(Map).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы