Forum » Programiranje » Othello proggy
Othello proggy
StratOS ::
Programček, ki bo naredil najboljše poteze za oba playerja.
Za več informacij poglejte Tukaj .
Ne zanima me program kot program ( grafika itd...) zanima me le končna rešitev, torej navadni algoritem in string rezultat !
go get it ...
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
- spremenila: StratOS ()
StratOS ::
You may need to do quite a bit of research for this one, but I hope you will
enjoy it.
You are going to write a program to evaluate the best move in a game of
Othello.
The position we are interested in is:
It is Blacks turn to move. The computer is playing Black and must evaluate
the best move from this position.
We are going to evaluate the moves to 12-ply and we will assume best play on
both sides in order to do this. All positions are evaluated at the end of a
sequence of moves using a static evaluation function, which I will define
shortly. Only the positions at the 12-ply depth are evaluated (be aware of
positions from which no moves are possible). Black, the computer, aims to
maximise its best score while White will want to minimise Blacks final best
score.
All you need now is the evaluation function. In order to evaluate any board
position we include three main elements in the scoring function:
Mobility is defined as the number of moves available to us minus the number of
moves available to our opponent. Multiply this by 2.
The structure is based on the number of strategic positions occupied as follows:
However when someone has played outside the inner 4*4 square the values of
the inner 4*4 square are set to zero in the evaluation.
Simply sum the values of the squares occupied minus squares occupied by the
opponent. Multiply this by 3 if someone has moved outside the inner 4*4 square.
This is defined as the number of pieces minus the number of the opponents
pieces.
Now the scoring function is defined as:
Board Value = (M+S)*W1 + A*W2
where W1 is exp(-nz) and W2 is 1-exp(-nz)
and n = number of discs on board in total
and z = 0.035
which means that mobility and structure are important at the start but later on
material becomes more important.
I want to know what the sequence of moves that is best play on both sides.
Submit your moves as a string for example 'd6e6' would represent two possible
moves, but of course I want 12 moves and not two. Where two different moves lead
to the same score you should take the first from the order
a1,a2,a3,...,b1,b2,b3,... etc
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Šah Carlsen vs KarjakinOddelek: Šport | 2141 (1170) | sesobebo |
» | AlphaGo v goju proti človeškemu prvaku vodi 2:0 (strani: 1 2 )Oddelek: Novice / Znanost in tehnologija | 23429 (19191) | Rok Woot |
» | Katera alkoholna pijača je najbolj zdrava?Oddelek: Loža | 6931 (4956) | BigWhale |
» | Glasbeni izrazi v angleščiniOddelek: Sedem umetnosti | 6465 (6079) | embe |
» | Pomoč pri MySQL in PHP...Oddelek: Programiranje | 1808 (1676) | darh |