Search:

Submit Article

# Prolog program of spiral game

Posted By: Milind Mishra     Category: Artificial Intelligence     Views: 3772

## Code for Prolog program of spiral game in Artificial Intelligence

```%trace
domains

startx,starty = integer
dicevalx,dicevaly = integer
%totalx,totaly = integer

database

state(startx,starty,dicevalx,dicevaly)

predicates

play(startx,starty)
rand(startx,starty)
%turnx(startx,starty,totalx)
%turny(starty,startx,totaly)

clauses

play(Startx,StartY):-
Startx = 25,
Starty <= 25,
write("problem solved").

play(Startx,StartY):-
Starty = 25,
Startx <= 25,
write("problem solved").
play(Startx,Starty):-
Startx = 0,
Starty = 0,
rand(6,Dicevalx),
Newx = Startx + Dicevalx,
rand(6,Dicevaly),
Newy = Starty + Dicevaly,
%Newx <> Newy,
Newvalx=Dicevalx,
Newvaly=Dicevaly,
assert(state(Newx,Newy,Newvalx,Newvaly)),
play(Newx,Newy).

play(Startx,Starty):-
Startx <= 19,
Starty <= 19,
rand(6,Dicevalx),
Newx =     Startx + Dicevalx,
rand(6,Dicevaly),
Newy = Starty + Dicevaly,
Newvalx=Dicevalx,
Newvaly=Dicevaly,
assert(state(Newx,Newy,Newvalx,Newvaly)),
play(Newx,Newy).

play(Startx,Starty):-
Startx < 26,
Starty < 26,
rand(6,Dicevalx),
rand(6,Dicevaly),
Startx + Dicevalx <= 25,
Newx = Startx + Dicevalx,
Newy = Starty + Dicevaly,
Newx <= 25,
Newy <= 25,
Newvalx=Dicevalx,
Newvaly=Dicevaly,
assert(state(Newx,Newy,Newvalx,Newvaly)),
play(Newx,Newy).

rand(X,Y):-
random(Z),
Y = (X - 1) * Z + 1.

goal
makewindow(1,2,3,"2 player spiral move game",0,0,25,80),
play(0,0),
save("outs.txt").

***************
spiral1

%trace
domains

startx,starty = integer
dicevalx,dicevaly = integer
totalx,totaly = integer

database

state(startx,starty,dicevalx,dicevaly)

predicates

play(startx,starty)
rand(startx,starty)
turnx(startx,starty,dicevalx,totalx,totaly)
turny(startx,starty,dicevaly,totalx,totaly)
check(startx,dicevalx,finalvalx)

clauses

play(Startx,StartY):-
Startx = 25,
Starty <= 25,
write("problem solved").

play(Startx,StartY):-
Starty = 25,
Startx <= 25,
write("problem solved").

play(Startx,Starty):-
Startx = 0,
Starty = 0,
rand(6,Dicevalx),
Newvalx = Dicevalx,
turnx(Startx,Starty,Newvalx,Totalx,Totaly),
rand(6,Dicevaly),
Newvaly = Dicevaly,
Totalxx = Totalx,
Totalxy = Totaly,
turny(Totalxx,Totalxy,Newvaly,Totalyx,Totalyy),
Newx = Totalyx,
Newy = Totalyy,
assert(state(Newx,Newy,Newvalx,Newvaly)),
play(Newx,Newy).

play(Startx,Starty):-
Startx <= 19,
Starty <= 19,
rand(6,Dicevalx),
Newvalx = Dicevalx,
turnx(Startx,Starty,Newvalx,Totalx,Totaly),
rand(6,Dicevaly),
Newvaly = Dicevaly,
Totalxx = Totalx,
Totalxy = Totaly,
turny(Totalxx,Totalxy,Newvaly,Totalyx,Totalyy),
Newx = Totalyx,
Newy = Totalyy,
assert(state(Newx,Newy,Newvalx,Newvaly)),
play(Newx,Newy).

play(Startx,Starty):-
Startx < 26,
Starty < 26,
rand(6,Dicevalx),
Newvalx=Dicevalx,
/*        turnx(Startx,Starty,Newvalx,Totalx,Totaly),        Totalxx = Totalx,        Totalxy = Totaly,        Totalxx < 25,*/
check(Startx,Newvalx,Totalx),
rand(6,Dicevaly),
Newvaly=Dicevaly,
turny(Totalxx,Totalxy,Newvaly,Totalyx,Totalyy),
Newx = Totalyx,
Newy = Totalyy,
assert(state(Newx,Newy,Newvalx,Newvaly)),
play(Newx,Newy).

rand(X,Y):-
random(Z),
Y = (X - 1) * Z + 1.

turnx(Startx,Starty,Dicevalx,Totalx,Totaly):-
Startx + Dicevalx <> Starty,
free(Totalx),
Totalx = Startx + Dicevalx,
free(Totaly),
Totaly = Starty.

turnx(Startx,Starty,Dicevalx,Totalx,Totaly):-
Startx + Dicevalx = Starty,
free(Totalx),
Totalx = Startx + Dicevalx,
free(Totaly),
Totaly = 0.

turny(Startx,Starty,Dicevaly,Totalx,Totaly):-
Starty + Dicevaly <> Startx,
free(Totaly),
Totaly = Starty + Dicevaly,
free(Totalx),
Totalx = Startx.

turny(Startx,Starty,Dicevaly,Totalx,Totaly):-
Starty + Dicevaly = Startx,
free(Totaly),
Totaly = Starty + Dicevaly,
free(Totalx),
Totalx = 0.

check(Startx,Dicevalx,Finalvalx):-
25 - Startx >= Dicevalx,
free(Finalvalx),
Finalvalx = Startx + Dicevalx.

check(Startx,Dicevalx,Finalvalx):-
25 - Startx <= Dicevalx,
free(Finalvalx),
Finalvalx = Startx.

goal
makewindow(1,2,3,"2 player spiral move game",0,0,25,80),
play(0,0),
save("outs.txt").

Output

state(0,2,2,2)
state(4,7,4,5)
state(9,10,5,3)
state(12,16,3,6)
state(15,21,3,5)
state(20,25,5,4)

************

state(3,5,3,5)
state(6,9,3,4)
state(10,13,4,4)
state(0,15,5,2)
state(5,19,5,4)
state(8,20,3,1)
state(11,23,3,3)
state(12,25,1,2)
```
Share:

Didn't find what you were looking for? Find more on Prolog program of spiral game Or get search suggestion and latest updates.

 Milind Mishra author of Prolog program of spiral game is from India. View All Articles

 Please enter your CommentComment should be atleast 30 Characters.Please put code inside [Code] your code [/Code]. No Comment Found, Be the First to post comment!