The Action Plugin and Action Addon Framework


The Reversi Action Addon

The Reversi Action Addon is an example which shows how it's possible to play an online version of the popular board game Reversi using logic rules to choose the move to be made. We used the online version of the website yourturnmyturn.com but we developed this Addon for research purposes only, please note that the site rules of yourturnmyturn.com "consider unsporting to use a computer to determine your move" and says that "every form of cheating where you win a board game not on your own is forbidden".

There are some actions to set the gamenumber and the login information (the username and the password), to make the move and to wait until the opponent makes the move. The Reversi Action Addon provides a single atom #reversi. It takes three inputs where former is the action name and the others are the options related to action:

#reversi[A, AO1, AO2]{O,P}[W : L]
Input:
A
action type, can be setGamenumber, setUsername, setPassword, makeAMove, wait
AO1
option related to the type of action A

AO2
option related to the type of action A

The Atom Action #reversi allows you to set the gamenumber, the username and the password, to make the move and to wait until the opponent makes the move.

The Action setGamenumber allows to set the gamenumber of the game to play; the parameter AO1 specifies the number of the game, the parameter AO2 is not used.
The Action setUsername allows to set the username to login in the website; the parameter AO1 specifies the username, the parameter AO2 is not used.
The Action setPassword allows to set the password to login in the website; the parameter AO1 specifies the password, the parameter AO2 is not used.
The Action makeAMove allows to make the move in the selected game and with the set username and password; the parameters AO1 and AO2 specify respectively the row and the column where to put the pawn.
The Action wait allows to wait until the opponent makes the move; the parameters AO1 and AO2 are not used.


The Reversi Action Addon provides some External Atoms:
&pawnPlaced[GN](Row,Column,Color)
Input:
GN
gamenumber that identifies the game.

Output:
Row
row that identifies the cell.

Column
column that identifies the cell.

Color
color of the pawn in the cell.

&gameFinished[GN]()
Input:
GN
gamenumber that identifies the game.


We used Perl scripts in order to take information from the website and Javascript (CasperJS) scripts in order to perform actions on the website.


You can check it out its source here.

For other action addons return to the section Action Addons of The Action Plugin and Action Addon Framework.



Last edited 2013-04-23

 

General
dlvhex source code @ github.com
Description-Of-A-Project

Popular Plugins
Action Plugin
DecisionDiagrams Plugin
Description Logics Plugin
Description Logics Lite Plugin
MELD: Belief Merging Plugin
Nested HEX Plugin
MCSIE Plugin
String Plugin
dlvhex-semweb Project

Documentation
User Guide
README
doxygen
Writing Plugins in C++
Writing Plugins in Python