Page 1 of 3

H3x IOTA announced!

Posted: Sat Jul 19, 2008 4:59 am
by Rook Zimbabwe
My new game called H3x is almost ready.

I have redesigned the AI so that players cannot cheat anymore. This makes it much more difficult to win thought the computer will pick a stupid move at least 18% of the time (just like me!) :wink:

Image

The rules are simple:

Fill the board with your color (you color is GREEN!) to win!

You can only place a GREEN tile on the board when a RED tile is next to you on one of 6 sides (this is the NEW RULE that makes it harder to win!) :twisted:

There is a small bug in the reset engine which will be Hopperized ASAP!

You can get it here: {{ NEW VERSION LAMBDA 25 JULY 2008 13:52pm CST }}

http://www.bluemesapc.com/Downloads/H3xLAMBDA.zip

NOTE this is a completely new compilation for Windows!

This version may work in VISTA as well

ADDED in KAPPA VERSION:
* Ability to change LEVELS 10 - 98 (not much seems to be done with it though...
* SOUND TURNED OFF IF YOU GOT NO SOUNDCARD and game doesn't quit!
ADDED in DELTA V
* Removed the delays numbers from FlipBuffers(8) and Delay(22) to see if it fixes Dereks video issue... which is weird...
CHANGED IN EPSILON vista
* Requested USER MODE
Changed in ZETA
* removed Sprite3D commands added after BETA as they were unneccessary... (This may solve Derek's issue and speed up the game?)
* The multi-click issue seems to not be an issue any more
* Still working out the click noise point! :D
IOTA doings:
* PASS Button issues now change user properly
* CPU can pass
* MultiPass click issue seems to be resolved correctly
* Added new cell to AI feature... This is the most difficult part.
LAMBDA Version
* Added frills to graphics... Sprite3D is back!
* leery of issues with VISTA users because of Sprite3D
* Touched up AI (again!)
* getting handle on AI issue... MU version will tell!

Posted: Sat Jul 19, 2008 7:26 am
by idle
cool something else to distract me from doing work, would be nice if it ran in a windowed screen.

I noticed that it sometimes took a tile I just selected, though I kind of liked that!

:D

Posted: Sat Jul 19, 2008 12:41 pm
by IceSoft
I cannot play it....no sound controller.

Can you change your check for soundcontroler:
Not end the game...only disable the sound parts.

Posted: Sat Jul 19, 2008 1:47 pm
by Sparkie
Maybe you need to help the CPU make better decisions Rook, as I am winning 90% of the time. :P

Me...CPU
53.....41
52.....42
52.....42

44.....50
57.....37
52.....42
58.....36
49.....45
60.....34
57.....37


Other than that the game is coming along very nice. 8)

Re: H3x BETA announced!

Posted: Sat Jul 19, 2008 3:49 pm
by Demivec
Rook Zimbabwe wrote:You can only place a GREEN tile on the board when a RED tile is next to you on one of 6 sides (this is the NEW RULE that makes it harder to win!) :twisted:
I would assume that RED is playing under similar rules by only being able to place a RED tile next a GREEN one. If that is true how did it make the move in the upper left?

Image

This game result is produced by selecting PASS three times.

Whenever RED can't make a legitimate move it places a RED tile in the top-left, sometimes replacing a GREEN tile that is there. This happens when PASS is selected and there are no legitimate moves left.

Here are before and after pictures illustrating this:

Image
Image

Posted: Sat Jul 19, 2008 4:57 pm
by Character
Is it an idea to have a small delay between the move of the player and the AI?
Then you have a bit more natural appearance... as if the computer is thinking.

Posted: Sat Jul 19, 2008 7:14 pm
by Kaeru Gaman
Character wrote:Is it an idea to have a small delay between the move of the player and the AI?
Then you have a bit more natural appearance... as if the computer is thinking.
not only that.... at first try I thought my color was RED.
you should be at least able to SEE where you put your stone.
what about if it needs time until a stone can change it's color?

anyhow, a ask for a better explanation of the rules.

everytime I click somewhere, the computer turns exactly THIS stone red by setting next to it.

I just want to know WHY and HOW, to do it the same way, ya know?

PS:
tried it once more after writing the above sentence.
I add: it's most annoying.

provide clear and detailed rules if you want people to play this.

Posted: Sat Jul 19, 2008 7:52 pm
by y3an
Hi,

Fill the board with your color (you color is GREEN!) to win!

You can only place a GREEN tile on the board when a RED tile is next to you on one of 6 sides (this is the NEW RULE that makes it harder to win!) Twisted Evil
I don't understand how i'm supposed to win :?
The Cpu always "eat" my pieces, it's make me sad :cry:

Posted: Sat Jul 19, 2008 7:57 pm
by Rook Zimbabwe
Is it an idea to have a small delay between the move of the player and the AI?
I have that... it just doesn't work very well right now! Any9one know of a way to simulate a delay without stopping the program... I am using ElapsedMilliseconds() and setting my target to after 1400 have gone by... still it seems that 1400 milliseconds is a variable not a constant!
TAKING OVER 0,0
The NEW program should not do that, are you sure you are running the BETA?

I will recheck the LEGAL moves function...

Adjustable LEVELS coming up in next version so Sparkie can play at level 11!

Sound Controller blanking will be implemented in next version as well.
I noticed that it sometimes took a tile I just selected, though I kind of liked that!
It looks for the largest number of tiles to take and 80% of the time it will take that area which is usually where your tile was just played.

It is also annoying and you get mad at the computer since it seems it is aping you.


I want a more random function for tile placement, probably need to implement a LIST and randomly select a item out of it!

:D
I don't understand how i'm supposed to win Confused
The Cpu always "eat" my pieces, it's make me sad Crying or Very sad
Yep... you gotta watch the CPU... it doesn't like you! It wants to crush you!!!
This game result is produced by selecting PASS three times.
Yes, I have to figure out how to stop that... Maybe NO PASS if you have a move... Hmmm

Posted: Sat Jul 19, 2008 8:44 pm
by Kaeru Gaman
Any9one know of a way to simulate a delay without stopping the program...
presume you work with a constant main-loop-rate, say 60Hz,
set a counter to 30 when the user takes an action and only allow the next AI move when the counter reached 0.

Posted: Sat Jul 19, 2008 9:40 pm
by Rook Zimbabwe
Kaeru Gaman wrote:
Any9one know of a way to simulate a delay without stopping the program...
presume you work with a constant main-loop-rate, say 60Hz,
set a counter to 30 when the user takes an action and only allow the next AI move when the counter reached 0.
I have tried ElapsedMillisecs() to no avail!!!

Using your routines on trapping mouse button (which work for trapping the mousebutton! :D But don't seem to stave the computer off very well...

Posted: Sat Jul 19, 2008 9:44 pm
by Character
Rook Zimbabwe wrote:I am using ElapsedMilliseconds() and setting my target to after 1400 have gone by... still it seems that 1400 milliseconds is a variable not a constant!
Hmmm, I don't understand. 1400 milliseconds is 1400 milliseconds. What other code is causing the variable behavior?

Code: Select all

    If ElapsedMilliseconds() - ElapsedTime > 500
      Repeat
        ExamineKeyboard()
        If KeyboardPushed(#PB_Key_Escape)
          End
        EndIf  
        ;etc etc
Or Kaeru Gaman's solution with a counter in a tuned loop?
(I'm not a game specialist, you should now that. I'm just very interested in your nice game project and the obstacles you encounter.)

Posted: Sat Jul 19, 2008 10:35 pm
by Kaeru Gaman
problem is, you have to sync your game at all first.

atm it does not matter much, because the only moving action is the mousepointer,
and this is directly controlled by the User, so you can't see if the game is running at 30 or 240 beats.

as soon you want to add anything that has to deal with real timing, you can chose wich way to go:

a) time each event type seperately over Milliseconds ->
letting the "logical" rate and the framerate run at hardware conditions.

b) time a gamebeat over milliseconds or a TimerCallback ->
making the logical rate constant but let framerate run

c) forcing the framerate to a certain FpS ->
controlling the framerate and binding the logical rate to it.

a) is quite complex in a procedural language
b) is a quite professional in-between-way
c) is the easiest way, but leads to 100% CPU usage if you
don't add something to give some ressources back to the OS.

sure this is a quite short overview, there are more possibilities in between,
you can mess around with a neverending count of threads is you like
or simply use JAVA and leave the timer-handling to the JVM... ;)

---------------------------------------------------
> still it seems that 1400 milliseconds is a variable not a constant!

don't exactly get what you mean, the way how and when you set or compare your timer and what you do in between can cause quite different results....

Posted: Sun Jul 20, 2008 4:10 am
by Demivec
Rook Zimbabwe wrote:
TAKING OVER 0,0
The NEW program should not do that, are you sure you are running the BETA?

I will recheck the LEGAL moves function...
If you will note the picture layout and it's information are only present in the BETA version and not any previous version...

Regarding legal moves, it would seem you are possibly returning coordinates for the move chosen without the possibility for a "no move possible" posibility (master the possibilities :wink:). The no move found (0,0) is equivalent to no legal move (0,0) which you then seem to happily place on the board.

Posted: Sun Jul 20, 2008 5:10 am
by Rook Zimbabwe
I think I fixed it Jared... A new KAPPA version is posted. I have to improve that AI somehow... problem is that there are only so many places to move... The LEVEL thing works somewhat, when there are a lot of choices... Midgame!

Maybe you SHOLD have the ability to arbitrarily choose a space... Since corners don't matter that much it might be a strategic decision...

That way if the idiotflag is activated... it would just randomly choose a space instead of picking the first avilable LEGAL space...

Hmmm...

8)