Wednesday, July 09 2008  

  Web Resources  :  Advanced Search  :  Site Statistics  :  Account Information  :  About  :  My Games  :  Photography  :  Quotes  
Welcome to Ingenious
Ingenious is one of many games designed by Reiner Knizia. If you've never played Ingenious, or cannot find someone to play with you right now, please try out my implementation. However, I encourage you to purchase your own copy to play with family and friends. Playing against 'bots' are okay in a pinch but the real fun comes in playing the game face to face.

To start playing, click the start button above and follow the directions. I also encourage you to leave comments on the stories below to let me know what you think of the game, problems you're having, constructive criticism, or just chit chat.

A rough cut of the rules are available here but they will soon be incorporated into the game.

This is currently a beta version of the code. I have tested in IE, Firefox, and Safari. The bot logic is currently very basic but more advanced bots are on the horizon.

Current Issues:

  • IE 6 users may see very slow response times. IE may be configured to keep requesting the images from the server. If you see lots of flashing and/or slow image painting check your Tools->Internet Options. Under the General tab's Temporary Internet Files section, click the Settings button. The 'Automatic' setting seems to work the best.

 Email Article To a Friend View Printable Version 
Some Minor Ingenious Bug Fixes
  

IngeniousI've neglected the code base for many months but I've had a few bug reports so I want to thank a few hard core users that nailed down the issues. Honestly, I was dreading going back and figuring out how to fix the problems, not because the code is bad but just because I've mentally moved on and I'm currently focusing all of my energy into Uberbadger.com. However, that's rather unfair to those of you who come to Marquand.net mainly to play Ingenious, Coloretto, and Clans. So, with that, I dug into the code and wouldn't you know it, it's only taken about 30 minutes to isolate the issues, test them, and update the code on the site.

You should clear your cache or start a game and then refresh the page (F5) to load new javascript.

The first bug was a wording issue with dropping a tile in an invalid position. The text now applies to all moves rather than just your first move.

The second bug related to starting to move a tile while the computer players were playing. The moved tile would not snap back into its original position as it does if you wait for the computer players to finish, move a tile and then decide to start moving another tile. It was as if the game forgot how to snap the tile back to the rack. With the bug fix, if you drop a tile while it's not your turn, the tile will go back to your rack.

I've also updated the text on the game back to indicate that you can hit the x-key or escape to close dialog boxes. That's always been available but wasn't stated in the page.

Enjoy.

Most Recent Post: 06/17 08:34PM by Anonymous 5 comments
 
 
 Email Article To a Friend View Printable Version 
Ingenious Milestone
  

IngeniousI periodically check the statistics for the games on Marquand.net and over the weekend, the Ingenious implementation surpassed 300,000 plays. I hope you all continue to enjoy the game and thank you again for the donations.

Most Recent Post: 03/25 01:37PM by evdweide 5 comments
 
 
 Email Article To a Friend View Printable Version 
To Free or Not To Free? That is the question.
  

IngeniousI was contacted recently by a PHD student of Mathematical Statistics and a lecturer of Computer Science topics in South Africa. He is on a quest for a project for his advanced students and he suggested that my Ingenious implementation provides a unique opportunity for creating bot logic without having to design and/or implement a user interface.

My design does lend itself to various bot implementations. Using Javascript Object Orientation and prototype class extensions, I've implemented the human player user interface as an extension of the bot. In essence, the human player class overrides the relatively small number of methods in the bot necessary to decide three high-level questions: 1) which tile do you want to play, 2) where do you want to play it, and 3) do you want to swap tiles at the end of your turn.

The bot implementations answer these questions by navigating their own copy of the board and by using those objects (and their corresponding data structures) make their decision based on a weighted analysis of options. The final answers are derived and returned to the core game logic and play continues with subsequent players. The human player implementation overrides these methods by simply passing control to the user interface for the human to answer. Once answered, the selections are returned to the core logic in the same fashion as the bot and play continues. The core game logic is neither aware nor interested in distinguishing human players from bots.

I'm flattered by the request and relish the idea of being part of the project. However, after some thought I respectfully declined the offer. My reason for implementing Ingenious was not to provide the best bots and/or online experience for the game. The best experience you can have is with the physical game and I openly encourage those who like the game to purchase a copy. By submitting my code to the project I feel that I would lose control of the implementation and would be unable to remove it from the web if requested by the designer and/or the publisher. I also feel that I would indirectly contribute to potentially multiple implementations were the code morphed and published on other sites.

I learned a lot from the implementation and found the bot logic rewarding work albeit challenging and time consuming. Restricting myself to Javascript/DHTML increased the level of complexity but challenge is good. If having your brain heat up to solve a problem you're faced with doesn't kill you, it will make you stronger. I hope those who regularly play, some 256,000 games last I checked, still find it fun and interesting. Enjoy.

Post a comment 0 comments
 
 
 Email Article To a Friend View Printable Version 
Lost in Translation
  

From the same site as the Coloretto translation...behold Ingenious...BOF! Seek those blows folks!

Post a comment 0 comments
 
 
 Email Article To a Friend View Printable Version 
New Initial Move Dialog
  

IngeniousAfter getting feedback from a few players, it seems there is some confusion about a rule. The implementation requires that your first tile be placed adjacent to one of the preprinted symbols on the board and you must place it adjacent to a symbol different than any of the other players. Several of you have thought this was a bug when the tile wouldn't snap into the grid.

To help make the situation clearer, I've added the following dialog:


, ,

Most Recent Post: 06/02 12:01AM by hotc 3 comments
 
 
 Email Article To a Friend View Printable Version 
Bot Pwning
  

How embarrassing. I thought I had a bug when the game ended early...until I realized I'd been destroyed.


,

Most Recent Post: 05/22 05:19PM by hotc 2 comments
 
 
 Email Article To a Friend View Printable Version 
Ingenious and Safari
  

After booting up my Mac Mini and getting my VNC link back working again I played around with Ingenious on Safari and I figured out what the problem was. After the fix the implementation seems to work fine now. w00t!

If you're interested, the problem stems from the way I keep track of the tile you drag around. The tile is actually two independent images and as you rotate the tile, one of the images is repositioned in one of the 6 locations making it look like the entire tile is being rotated. The tile that remains under your mouse pointer is referred to in the Javascript 'Tile' Class as the 'pivot' and the other end that is repositioned is referred to as the 'float'. The float is moved around the pivot point generating the illusion of rotation.

However, it appears that the Javascript parsing engine in IE and Firefox don't mind the moving end of the tile to be referred to as 'float'. However, Safari complains with a parsing error. I changed the name of the Object's Javascript property to 'floater' and all is well with the world.

We now return you to our regularly scheduled blog. Happy Ingeniousing...

Oh...please refresh your browser to pick up the changes

Most Recent Post: 11/11 03:53PM by matthew.marquand 4 comments
 
 
 Email Article To a Friend View Printable Version 
Ingenious - Safari Debugging
  

IngeniousIngenious will be a little bit touch and go while I try to figure out what's up with Safari. Sorry for the delay...

Post a comment 0 comments
 
 
 Email Article To a Friend View Printable Version 
Announcing Ingenious!
  

IngeniousI'm proud to announce my implementation of Ingenious. I was going to wait until I developed a more advanced bot but I just couldn't hold it in any longer. I'm still going to work on more advanced opponents but I've enjoyed playing against even the 'dumb bots'. I'm excited about the drag & drop implementation and the dialog interaction all implemented in DHTML and Javascript. Every time I implement a game I learn many new things and this implementation proved no different.

I strongly encourage you to find a local game store or an online vendor and purchase a copy of this great game so you can play it with friends.

This version has been tested in IE and Firefox. There are confirmed issues in Safari so, unfortunately, support for you folks will lag behind until I can break out my Mac-Mini and see what's up.

To begin playing, click on the Ingenious Topic in the upper left hand side of the site.


, ,

Most Recent Post: 12/18 08:53PM by Anonymous 12 comments
 
 
 Copyright © 2008 Marquand.net
 All trademarks and copyrights on this page are owned by their respective owners.