Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
All,
I am writing a Lingo-ish game for my mother. One of the problems I am having is designing a computer opponent. The trouble is that I want the difficulty to be configurable. For those unfamiliar, here is a brief description of the game:

The game starts with a secret word of a fixed number of letters with only the first letter known. A player guesses a word. Provided the guessed word is within the rules, each letter falls into 1 of 3 categories:

  • Letter is not in the target word
  • Letter is in target word but in a different position
  • Letter is in target word and correct position
This information is presented visually (usually with colors) and previous guesses are displayed so all known information about the target word is available for subsequent guesses.

While I am still working out the exact rules I intend to use, there are 4 types of guesses:

  • Perfect - target word is guessed
  • Good - new information about target word is acquired
  • Bad - no new information is acquired
  • Worst - turn is lost

Some good guesses are better than other good guesses depending on how much new information they reveal. What I need help with is making a guessing algorithm that can be better or worse depending on configuration. Here are the factors that can go into making a guess:

  • Time taken to guess (faster = more points)
  • Guesses resulting in loss of turn
    • Mispelled word
    • Previously guessed word
    • Incorrect number of letters
    • Does not begin with provided first letter
    • Not within given time limit
  • Known vocabulary
  • Use (or non-use) of available information
    • Letters known NOT to be in target word
    • Letters in target word but misplaced
    • Letters in target word and correct position

Your challenge, if you choose to accept it, is to design an algorithm that can take the above factors into consideration to make a configurable computer opponent. While I would hope for something better than just "Easy, Medium, Hard", I will be very appreciative of anything I can get.

I have explained more about the game play here.

Cheers - L~R


In reply to Challenge: Designing A Computer Opponent by Limbic~Region

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2024-04-18 19:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found