Minimax Algorithm AI score ideas for a game called “Martian Chess” [closed]
up vote
0
down vote
favorite
I have to make an AI using Minimax algorithm for a game called Martian Chess in Java, and I'm a little bit lost about what leads to advantages in this game and what should I base my scoring system on for the different moves. I would be happy to receive any ideas!
java algorithm logic artificial-intelligence minimax
closed as too broad by Dukeling, Joe C, GBlodgett, Jacob G., AdrianHHH Nov 10 at 23:26
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
up vote
0
down vote
favorite
I have to make an AI using Minimax algorithm for a game called Martian Chess in Java, and I'm a little bit lost about what leads to advantages in this game and what should I base my scoring system on for the different moves. I would be happy to receive any ideas!
java algorithm logic artificial-intelligence minimax
closed as too broad by Dukeling, Joe C, GBlodgett, Jacob G., AdrianHHH Nov 10 at 23:26
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
You could take a greedy approach. Assign each piece a value and maximize the amount of value on each turn by taking a piece of the highest value from your opponent
– Mitchel Paulin
Nov 10 at 22:20
Questions asking for people's opinions are off-topic on this site, unfortunately.
– Joe C
Nov 10 at 22:29
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have to make an AI using Minimax algorithm for a game called Martian Chess in Java, and I'm a little bit lost about what leads to advantages in this game and what should I base my scoring system on for the different moves. I would be happy to receive any ideas!
java algorithm logic artificial-intelligence minimax
I have to make an AI using Minimax algorithm for a game called Martian Chess in Java, and I'm a little bit lost about what leads to advantages in this game and what should I base my scoring system on for the different moves. I would be happy to receive any ideas!
java algorithm logic artificial-intelligence minimax
java algorithm logic artificial-intelligence minimax
asked Nov 10 at 22:11
Zoltán Biacsi
11
11
closed as too broad by Dukeling, Joe C, GBlodgett, Jacob G., AdrianHHH Nov 10 at 23:26
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
closed as too broad by Dukeling, Joe C, GBlodgett, Jacob G., AdrianHHH Nov 10 at 23:26
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
You could take a greedy approach. Assign each piece a value and maximize the amount of value on each turn by taking a piece of the highest value from your opponent
– Mitchel Paulin
Nov 10 at 22:20
Questions asking for people's opinions are off-topic on this site, unfortunately.
– Joe C
Nov 10 at 22:29
add a comment |
You could take a greedy approach. Assign each piece a value and maximize the amount of value on each turn by taking a piece of the highest value from your opponent
– Mitchel Paulin
Nov 10 at 22:20
Questions asking for people's opinions are off-topic on this site, unfortunately.
– Joe C
Nov 10 at 22:29
You could take a greedy approach. Assign each piece a value and maximize the amount of value on each turn by taking a piece of the highest value from your opponent
– Mitchel Paulin
Nov 10 at 22:20
You could take a greedy approach. Assign each piece a value and maximize the amount of value on each turn by taking a piece of the highest value from your opponent
– Mitchel Paulin
Nov 10 at 22:20
Questions asking for people's opinions are off-topic on this site, unfortunately.
– Joe C
Nov 10 at 22:29
Questions asking for people's opinions are off-topic on this site, unfortunately.
– Joe C
Nov 10 at 22:29
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
First time I heard about this game so forgive me if I'm mistaken, but it seems like you simply get more points for capturing bigger pieces – and whoever gets the most points wins.
Let's assume you have a class for each kind of piece, I'm just going to call them Pawn, Drone and Queen as I see them called on the wikipedia.
Suppose each have a getVal() that returns 1, 2 and 3 respectively. And that you have a method boardEvaluation() somewhere that uses the getVal() of each element on the board to calculate the score of the board. Let's assume there's only two players at first. Then let a positive score mean that the board favors player one, and a negative score that the board favors player two. How can you do that?
Your goal is to somehow anticipate a move (perhaps by simply going through all possible moves?) and for this move (or each of these moves) find the corresponding board-evaluation. This would be if your scope was only one. But you could anticipate yet another move for all possible moves, to achieve scope 2. And so on. Maybe you could even reach your win-condition (player one has the least amount of points (score is positive an amount such that) player two can never win.), or lose-condition in a similar sense?
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
First time I heard about this game so forgive me if I'm mistaken, but it seems like you simply get more points for capturing bigger pieces – and whoever gets the most points wins.
Let's assume you have a class for each kind of piece, I'm just going to call them Pawn, Drone and Queen as I see them called on the wikipedia.
Suppose each have a getVal() that returns 1, 2 and 3 respectively. And that you have a method boardEvaluation() somewhere that uses the getVal() of each element on the board to calculate the score of the board. Let's assume there's only two players at first. Then let a positive score mean that the board favors player one, and a negative score that the board favors player two. How can you do that?
Your goal is to somehow anticipate a move (perhaps by simply going through all possible moves?) and for this move (or each of these moves) find the corresponding board-evaluation. This would be if your scope was only one. But you could anticipate yet another move for all possible moves, to achieve scope 2. And so on. Maybe you could even reach your win-condition (player one has the least amount of points (score is positive an amount such that) player two can never win.), or lose-condition in a similar sense?
add a comment |
up vote
0
down vote
First time I heard about this game so forgive me if I'm mistaken, but it seems like you simply get more points for capturing bigger pieces – and whoever gets the most points wins.
Let's assume you have a class for each kind of piece, I'm just going to call them Pawn, Drone and Queen as I see them called on the wikipedia.
Suppose each have a getVal() that returns 1, 2 and 3 respectively. And that you have a method boardEvaluation() somewhere that uses the getVal() of each element on the board to calculate the score of the board. Let's assume there's only two players at first. Then let a positive score mean that the board favors player one, and a negative score that the board favors player two. How can you do that?
Your goal is to somehow anticipate a move (perhaps by simply going through all possible moves?) and for this move (or each of these moves) find the corresponding board-evaluation. This would be if your scope was only one. But you could anticipate yet another move for all possible moves, to achieve scope 2. And so on. Maybe you could even reach your win-condition (player one has the least amount of points (score is positive an amount such that) player two can never win.), or lose-condition in a similar sense?
add a comment |
up vote
0
down vote
up vote
0
down vote
First time I heard about this game so forgive me if I'm mistaken, but it seems like you simply get more points for capturing bigger pieces – and whoever gets the most points wins.
Let's assume you have a class for each kind of piece, I'm just going to call them Pawn, Drone and Queen as I see them called on the wikipedia.
Suppose each have a getVal() that returns 1, 2 and 3 respectively. And that you have a method boardEvaluation() somewhere that uses the getVal() of each element on the board to calculate the score of the board. Let's assume there's only two players at first. Then let a positive score mean that the board favors player one, and a negative score that the board favors player two. How can you do that?
Your goal is to somehow anticipate a move (perhaps by simply going through all possible moves?) and for this move (or each of these moves) find the corresponding board-evaluation. This would be if your scope was only one. But you could anticipate yet another move for all possible moves, to achieve scope 2. And so on. Maybe you could even reach your win-condition (player one has the least amount of points (score is positive an amount such that) player two can never win.), or lose-condition in a similar sense?
First time I heard about this game so forgive me if I'm mistaken, but it seems like you simply get more points for capturing bigger pieces – and whoever gets the most points wins.
Let's assume you have a class for each kind of piece, I'm just going to call them Pawn, Drone and Queen as I see them called on the wikipedia.
Suppose each have a getVal() that returns 1, 2 and 3 respectively. And that you have a method boardEvaluation() somewhere that uses the getVal() of each element on the board to calculate the score of the board. Let's assume there's only two players at first. Then let a positive score mean that the board favors player one, and a negative score that the board favors player two. How can you do that?
Your goal is to somehow anticipate a move (perhaps by simply going through all possible moves?) and for this move (or each of these moves) find the corresponding board-evaluation. This would be if your scope was only one. But you could anticipate yet another move for all possible moves, to achieve scope 2. And so on. Maybe you could even reach your win-condition (player one has the least amount of points (score is positive an amount such that) player two can never win.), or lose-condition in a similar sense?
answered Nov 10 at 22:35
RoyM
746
746
add a comment |
add a comment |
You could take a greedy approach. Assign each piece a value and maximize the amount of value on each turn by taking a piece of the highest value from your opponent
– Mitchel Paulin
Nov 10 at 22:20
Questions asking for people's opinions are off-topic on this site, unfortunately.
– Joe C
Nov 10 at 22:29