Hardquor

slacker sound sistims'

the hardquor project

A free Java implementation of Quoridor, playable online or against evil artificially-intelligent machines.


Running Hardquor:

Hardquor uses a client/server architecture to enable server-validated network play. Currently we have no dedicated game server, so you must run a game server process on your machine while you play. This is to be changed in a future version.

1. Get Java Runtime:
Go to the Java home page to get the Java plug in, which includes the latest runtime.
2. Download hardquor.zip:
Download and unzip the hardquor.zip file using WinZip or equivalent.
3. Start game server:
Start the game server by launching hardquorSimpleGameServer.bat You must start the game server first!
4. Start AI client:
This client connects through the network (back to your local machine) to the game server. Start this by launching hqAiDaemon.bat
5. Start GUI Client:
This is the point-and-click client for playing against the AI or a network user. Start this by double clicking "hardquor.jar" or via this Java Web Start link. Eventually when we have a full time server, you will only need to perform this step.
6. Sign in and play:
You need to sign in to a game server. Select "127.0.0.1" as your game server (this is the local address of your machine). Enter "player" as your name. Then you will see the signed on player, "AI" if you started the AI client. Click on this name, then click on the "request game" button. This should spawn a new game window. Your player is the wooden circle at the bottom, and you want to go to the top of the screen! Enjoy!

links:


version 2.0 targets:

The initial targets for the game have for the most part been reached. Looking at the weaknesses of this system, we have revised targets for a 'version 2.0' release:

Better AI players:
Currently the AI players make a lot of dumb moves. A second generation AI should be constructed building upon the tools (and mistakes) of the first AI's.
Standalone client:
With AI to play against the computer when no network is available. The client should have integrated chat, fully-skinned interface (not just the board) and be damn sexy!
Dedicated game server:
We need to find a server to run the game with near-100% uptime to host network games. Once such a host is found, it may be possible to write a hybrid AI/server that learns from games that are played online.

progress:

September 13, 2002 - Jesse Wilson
I have fixed a really annoying bug in the AI starting script. The AI start script was not properly finding the new Trove libraries, preventing Hardquor from working at all. All is well now, and I hope to get a round-the-clock game server up real soon.
August 14, 2002 - Jesse Wilson
Work on Hardquor 2.0 has begun with some optimization of the AI boards. The AI is at least 50% faster because I've cut down on object creation by saving coordinate objects. I'm also now using some Gnu Trove collections, which promise much better performance than the standard J2SE collections.
July 7, 2002 - Jesse Wilson
I've made a few slight changes to ready the game for Java Web Start. Java Web Start is somewhat of a cross between applets and installed applications. Hopefully my web host will enable it on their end, and then you can kick start hardquor from this page! I have also reworked this page, adding a launching section and a developers section, and setting my targets for version 2.0. I guess that means that the current Hardquor is the version 1.0 release!
July 4, 2002 - Jesse Wilson
It's not abandonware yet! Sparked by a few emails from a fellow Quoridor enthusiast, I have started to work on getting Hardquor easy to run. Especially when I just found out that there's a Yahoo! Group dedicated to the game. The update includes: a new JAR base, new batch and shell scripts, new bigger skins, and zipped skin support. The next target is to get Hardquor running in the Java Web-Start environment.
May 6, 2002 - Jesse Wilson
Skins are in! To select a skin, write your skin file as an argument when launching the Hard UI. This argument is currently somewhat hardcoded into HardUI.sh, but it's very easy to change the sh file. I plan on drawing a larger skin soon so that the game is easier to play. Also in consideration: a modification on the UI so that both player one and player two walk 'up' on the board; in effect they both see the board with their own end 'closest'. I have also fixed yesterday's threading bug.
May 5, 2002 - Jesse Wilson
The hard UI is much prettier now, with shadowed walls and highlighted walk moves. I also discovered new bug: the hard UI runs a network thread and a UI thread, but the board is not thread-safe. My next steps are: fixing the bug, creating skin definition files, and porting the UI to an applet. Anyone with a static IP interested in running a hardquor server 24/7? Please email me!
April 26, 2002 - Jesse Wilson
The AI is smart! I've fixed the more major logic problems with my AI daemon. It currently has a few fatal flaws, but for the most part, the AI is smart! To run the AI, type sh hqAiDaemon.sh 127.0.0.1 name at a prompt where 127.0.0.1 is the hardquor server and name is the name that teh AI player will take in the game.
April 13, 2002 - Jesse Wilson
Another update for today: we have a new UI! I was working on it all afternoon, and it is pretty slick, albeit a bit small. I think a bit too small, but it will rock as an applet. It uses one-click wall dropping, which will be awkward until I can figure out shadowing where the walls will fall. Either way, check it out: run HardUI.sh and enjoy.
April 13, 2002 - Jesse Wilson
Big update on the hardquor project. I've implemented a rather clever AI in the new package ca.swank.hq.ai. There are still a few kinks in it (ie. it should always play as player 2), but for the most part it's pretty darn clever. I'm using variable lookaheads, which means that the time to search for a move is near constant for different stages of the game. There are some optimizations for the lookaheads, so it takes a reasonable amount of time to find a move. Hopefully I will someday find time to fine tune this AI: get the kinks out and optimize more of the code. If you are interested in developing an AI for hardquor, this is definitely a good place to start.
February 4, 2002 - Jesse Wilson
I've created this project page. Maybe I'll get working on the game again, it's been collecting dust since October 2001.

developers:

Hardquor has been designed to make writing an AI or client as straightforward as possible. To write an AI, simply implement the hardquorUserGame class, and create another AIUser class that points to your implementation.

Ant
Used to build Hardquor. Ant is a flexible tool that can increase any programmer's productivity. Visit the Ant homepage to download a copy for your platform.
Javadoc
The game's .java can be generated by the ant javadoc task.
License:
Hardquor is distributed to owners of the board game Quoridor under the Gnu General Public License. It is free software and I encourage you to send me your fixes and modifications.