نمايش پست تنها
قديمي ۰۴-۱۰-۱۳۸۹, ۰۹:۴۹ قبل از ظهر   #1 (لینک دائم)
salar_cpp_cs
عضو جدید
 
آواتار salar_cpp_cs
 
تاريخ عضويت: دي ۱۳۸۸
پست ها: 8
تشكرها: 3
1 تشكر در 1 پست
پيش فرض راهنمایی در مورد کد برنامه 8 وزیر به زبان Prolog

سلام به همه دوستان عزیز ، از دوستانی که به پرولوگ آشنایی کامل دارند میخواستم

نحوه عملکرد کد زیر رو توضیح دهند : (هریک از relation ها چه کاری انجام میدهند؟)

كد:
    queens(N, Qs) :-
         range(1, N, Ns),
         queens(Ns, [], Qs).

     queens(UnplacedQs, SafeQs, Qs) :-
         select(Q, UnplacedQs, UnplacedQs1),
         \+ attack(Q, SafeQs),
         queens(UnplacedQs1, [Q|SafeQs], Qs).
         queens([], Qs, Qs).

     attack(X, Xs) :- attack(X, 1, Xs).

     attack(X, N, [Y|_Ys]) :- X is Y + N.
     attack(X, N, [Y|_Ys]) :- X is Y - N.
     attack(X, N, [_Y|Ys]) :-
         N1 is N + 1,
         attack(X, N1, Ys).

     range(M, N, [M|Ns]) :-
         M < N,
         M1 is M + 1,
         range(M1, N, Ns).
     range(N, N, [N]).

     show_solution(Tcl, L) :-
         reverse(L, LR),
         tcl_eval(Tcl, [show_solution, br(LR)], _),
         tk_do_all_events.

     tk_do_all_events :-
         tk_do_one_event, !,
         tk_do_all_events.
     tk_do_all_events.
ممنون از راهنمایی شما . (دوستان هرچه سریعتر راهنمایی کنند ، ممنون میشم)

ويرايش شده توسط salar_cpp_cs; ۰۴-۱۰-۱۳۸۹ در ساعت ۰۹:۵۱ قبل از ظهر
salar_cpp_cs آفلاين است   پاسخ با نقل قول
از salar_cpp_cs تشكر كرده است:
nasersalehiazar (۰۸-۲۵-۱۳۸۹)

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online