arxarian / kbang

Automatically exported from code.google.com/p/kbang
GNU General Public License v2.0
2 stars 1 forks source link

VoidAI plays randomly #1

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
When I shoot an AI player that has a Barrel, the AI player always passes
instead of flipping for barrel first. I'm using Windows Version 0.1.3.

Original issue reported on code.google.com by Parsat.o...@gmail.com on 29 May 2009 at 12:19

GoogleCodeExporter commented 9 years ago
The problem is that VoidAI is very stupid AI. It was made mainly for testing 
purposes
and I was planning to do a better AI. But now as I don't have a lot of time, it 
seems
that I can fix VoidAI a little so it becomes a wee bit smarter.

Original comment by MacJar...@gmail.com on 29 May 2009 at 11:21

GoogleCodeExporter commented 9 years ago
I'd love it when AI got a little stronger.

Seen so many times that the Deputy fires at the Sheriff or the Renegade trying 
to 
kill the Sheriff while the Outlaws are still alive...
The Barrel is also a good example.

Original comment by jer...@m3t.nl on 1 Sep 2009 at 12:26

GoogleCodeExporter commented 9 years ago
So do I. :) But I'm now occupied by other parts of KBang that need improvement. 
Besides I believe that improving AI could be a nice challenge for KBang fans. 
Even 
if you cannot code, you can design your AI yourself. Just write a paper that 
describes how the AI should act in all possible situations and then I could 
"translate" it into code.

Original comment by MacJar...@gmail.com on 4 Sep 2009 at 2:21

GoogleCodeExporter commented 9 years ago
for all possible situations would take some time... I'll give it a start with 
the 
main points:

- if AI = Jourdonnais and action-on-me = bang/gatling -> draw (to fix not using 
player ability of having a constant barrel)
- if AI has Barrel and action-on-me = bang/gatling -> draw (to fix not using 
the 
barrel)
- if AI = Renegade and playersleft > 2 -> do not bang/duel sheriff (to fix 
renegade 
killing the sheriff with other players alive)
- if AI = Deputy -> do not bang/duel sheriff (to fix deputy killing the sheriff)
- if AI = Sheriff and Deputy'sDead < 2 -> do not bang/duel anyone (to fix 
accidently 
killing a deputy as sheriff and losing all your cards)

Original comment by jer...@m3t.nl on 7 Sep 2009 at 5:11

GoogleCodeExporter commented 9 years ago
Forgot this one:

- if AI = Outlaw and Renegade = dead and Number-of-deputy's-alive = 0 -> target 
sheriff only (to fix outlaws killing each other instead of the sheriff)

Original comment by jer...@m3t.nl on 8 Sep 2009 at 7:48

GoogleCodeExporter commented 9 years ago
It would probably be good to add in some randomness level to simulate player 
forgetting abillity, barrel card, 
etc. to not make it too hard.

Original comment by james.n....@gmail.com on 9 Sep 2009 at 6:36

GoogleCodeExporter commented 9 years ago
correction:

- if AI = Sheriff and Deputy'sAlive > 0 -> do not bang/duel anyone (to fix 
accidently killing a deputy as sheriff and losing all your cards)

changed because with less players there's only 1 deputy.

Original comment by jer...@m3t.nl on 10 Sep 2009 at 8:18

GoogleCodeExporter commented 9 years ago
Here's another one:
- if AI = Deputy and Sheriff's health = 1, do not play gatling or Indians in 
addition
to not playing Bang! or Duel on the sheriff.

Original comment by Parsat.o...@gmail.com on 10 Sep 2009 at 7:42

GoogleCodeExporter commented 9 years ago
About the last one:
what if AI = Deputy knows that Sheriff has Bang! in his hand (for example from 
the
General Store). Then he could play Indians without worries. Moreover, if there 
is
only one other player (Outlaw) with last life point and no cards in hands, AI 
then
should play Indians.

I know that this is kind of complicated example, but my point is, that AI code 
should
not be just a bunch of conditions and switches like this. I think AI should use 
some
kind of probability model, that could for example tell, that "player #1 is with 
70%
probability a Renegade", or "player #2 has with 80% probability Bang! in his 
hand".
But I'm not good at maths, not even talking about probability theory.

Original comment by MacJar...@gmail.com on 10 Sep 2009 at 7:59

GoogleCodeExporter commented 9 years ago
using probability would be nice indeed.
maybe you can also fit the AI with situational targets, like:

- all of the game Outlaws target is: Kill Sheriff
- Renegade's target is: Kill anyone except Sheriff. This changes to: "Kill 
Sheriff" 
once all others are dead
etc.

Original comment by jer...@m3t.nl on 11 Sep 2009 at 6:01

GoogleCodeExporter commented 9 years ago

Original comment by MacJar...@gmail.com on 22 Sep 2009 at 11:23

GoogleCodeExporter commented 9 years ago
Another small AI issue:

When Slab the Killer plays Bang on an AI player and the AI player has only 1 
Missed 
card they still play the missed card and then lose a life.
They should detect if they have 2 Missed cards and if not just lose a life.

Original comment by jer...@m3t.nl on 30 Sep 2009 at 8:38

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
and another one:

If NumberOfBangCardsInHand = 0 -> Don't play Duel on players with 1 or more 
cards in 
hand

Original comment by jer...@m3t.nl on 30 Sep 2009 at 8:51

GoogleCodeExporter commented 9 years ago
If AI has a gun in play and Emporio is played don't pick a gun with less range

Original comment by joaquin....@gmail.com on 30 Sep 2009 at 3:41

GoogleCodeExporter commented 9 years ago
AI is weird with guns anyway, they seem to prefer the Shofield over anything...

Original comment by jer...@m3t.nl on 30 Sep 2009 at 5:05