H3x IOTA announced!

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
Rook Zimbabwe
Addict
Addict
Posts: 4322
Joined: Tue Jan 02, 2007 8:16 pm
Location: Cypress TX
Contact:

H3x IOTA announced!

Post 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!
Last edited by Rook Zimbabwe on Fri Jul 25, 2008 7:08 pm, edited 15 times in total.
Binarily speaking... it takes 10 to Tango!!!

Image
http://www.bluemesapc.com/
User avatar
idle
Always Here
Always Here
Posts: 5836
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Post 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
User avatar
IceSoft
Addict
Addict
Posts: 1682
Joined: Thu Jun 24, 2004 8:51 am
Location: Germany

Post 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.
Belive! C++ version of Puzzle of Mystralia
<Wrapper>4PB, PB<game>, =QONK=, PetriDish, Movie2Image, PictureManager,...
Sparkie
PureBatMan Forever
PureBatMan Forever
Posts: 2307
Joined: Tue Feb 10, 2004 3:07 am
Location: Ohio, USA

Post 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)
What goes around comes around.

PB 5.21 LTS (x86) - Windows 8.1
User avatar
Demivec
Addict
Addict
Posts: 4260
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Re: H3x BETA announced!

Post 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
Character
Enthusiast
Enthusiast
Posts: 337
Joined: Mon Aug 07, 2006 3:51 pm
Location: Netherlands

Post 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.
Cessante causa cessat effectus
User avatar
Kaeru Gaman
Addict
Addict
Posts: 4826
Joined: Sun Mar 19, 2006 1:57 pm
Location: Germany

Post 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.
oh... and have a nice day.
y3an
User
User
Posts: 56
Joined: Sun Mar 09, 2008 6:06 am

Post 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:
User avatar
Rook Zimbabwe
Addict
Addict
Posts: 4322
Joined: Tue Jan 02, 2007 8:16 pm
Location: Cypress TX
Contact:

Post 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
Binarily speaking... it takes 10 to Tango!!!

Image
http://www.bluemesapc.com/
User avatar
Kaeru Gaman
Addict
Addict
Posts: 4826
Joined: Sun Mar 19, 2006 1:57 pm
Location: Germany

Post 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.
oh... and have a nice day.
User avatar
Rook Zimbabwe
Addict
Addict
Posts: 4322
Joined: Tue Jan 02, 2007 8:16 pm
Location: Cypress TX
Contact:

Post 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...
Binarily speaking... it takes 10 to Tango!!!

Image
http://www.bluemesapc.com/
Character
Enthusiast
Enthusiast
Posts: 337
Joined: Mon Aug 07, 2006 3:51 pm
Location: Netherlands

Post 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.)
Cessante causa cessat effectus
User avatar
Kaeru Gaman
Addict
Addict
Posts: 4826
Joined: Sun Mar 19, 2006 1:57 pm
Location: Germany

Post 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....
oh... and have a nice day.
User avatar
Demivec
Addict
Addict
Posts: 4260
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Post 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.
User avatar
Rook Zimbabwe
Addict
Addict
Posts: 4322
Joined: Tue Jan 02, 2007 8:16 pm
Location: Cypress TX
Contact:

Post 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)
Binarily speaking... it takes 10 to Tango!!!

Image
http://www.bluemesapc.com/
Post Reply