Ifi6057lab3demo2

Allikas: Lambda
Redaktsioon seisuga 18. november 2015, kell 20:34 kasutajalt PriitJ (arutelu | kaastöö) (Uus lehekülg: 'Pulkade mäng. Oletame, et hetkel on 11 pulka laual, siis küsitakse järgmist käiku nii: <code>take(X, 11).</code>. move(1). move(2). move(3). % Y - pulkade arv laual he...')
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti

Pulkade mäng. Oletame, et hetkel on 11 pulka laual, siis küsitakse järgmist käiku nii: take(X, 11)..

move(1).
move(2).
move(3).

% Y - pulkade arv laual hetkel
take(X, Y):-
  iswin(X, Y).

% kui võita pole võimalik, tuleb mingi käik ikka teha
take(X, Y):-
  isloss(X, Y).

iswin(X, Y):-
  move(X),
  Z is Y - X,
  Z > 0,
  isloss(1, Z),
  isloss(2, Z),
  isloss(3, Z).

isloss(X, Y):-
  move(X),
  Z is Y - X,
  Z < 1.

isloss(X, Y):-
  move(X),
  Z is Y - X,
  iswin(_, Z).