
%%
%% Calculate pi, using a random number generator.
%%

:-object picalc.

loop(0,  TC, TC) :- !.
loop(LC, CC, TC) :-
	LN is LC-1,
	X is random,
	Y is random,
	R2 is X*X + Y*Y,
	less(R2, CC, NC),
	loop(LN, NC, TC).

less(R2, CC, NC) :-
	R2 =< 1.00, !,
	NC is CC + 1.
less(_, CC, CC).

calc(LC) :-
	loop(LC, 0, TC),
	PI is 4.0 * TC/LC,
	format('~nPI = ~w (= 4*~w/~w)~n', [PI,TC,LC]).

main(_) :-
	calc(200).

:-end_object picalc.
