Solved

Python: Find Character Exist, but not in correct position

Posted on 2008-10-24
6
654 Views
Last Modified: 2012-06-22
Hello all, I am trying to achieve something like this:

Say the magic word is "aabb"
The user suppose to guess it, however if the user for example typed "abab", it should tell them that one of the "a" is in the right position, while the other is not. How should I go about doing that?

Thanks!

*This is quite urgent, so if someone can reply really fast, that would be great! Thanks!
0
Comment
Question by:Kira-Kun
  • 3
6 Comments
 
LVL 28

Expert Comment

by:pepr
ID: 22794328
How can you proof that it is not a homework? It is not allowed here to give the solutions. However, you can have series of related questions and get the answers that will help you to get "your own" solution (i.e. the one that you really understand well and that you can solve again alone).

Is it a kind of the implementation of the Master Mind game?
0
 
LVL 5

Expert Comment

by:zmo
ID: 22794932
well, first learn python : http://docs.python.org/tutorial/
then for your project, choose the right tools on strings : http://docs.python.org/library/strings.html
and input output (which you'll have learned in the tutorial)
and  on random's usage : http://docs.python.org/library/random.html
so you can generate the aabb or abab or whatever...

now you have all the RTFM you need to start, and we're here to help you if you have *real* questions about python. We're not here to do your homework, but to help you get more knowledge, so I'm following pepr's comment.
0
 

Expert Comment

by:GDR-LDE
ID: 22943341
Would this be enough?
word = "aabb"
guess = "abab"
 
if not len(word) == len(guess):
    print "error"
 
for i in range(len(word)):
    if word[i] == guess[i]:
        print "The letter %s on position %d is correct" % (guess[i], i)
    else:
        print "The letter %s on position %d is not correct" % (guess[i], i)

Open in new window

0
 
LVL 28

Accepted Solution

by:
pepr earned 500 total points
ID: 22943725
OK. Let's start wit thinking and suggestions. Your solution is too talkative. The messages do not make it more comfortable for the user. Also, we are developing the core using the test case (fixed word and guess). Let's remove the unneccessary things to make it apparent.

Try the snippet below. It does the same using different form of displaying the result.

Now you can see that you are able only to indicate or the correct char on the correct position. However, you can say nothing about the other characters. Only that they are not correct chars on the correct positions. You need third state to indicate that it is the correct character on the bad position. (Not solved here.)

Think how would you do it by hand with paper and the pencil.
word = 'aabb'
guess = 'abab'
result = []
 
for i in range(len(word)):
    if word[i] == guess[i]:
        result.append('x')    # correct letter on the position
    else:
        result.append('-')    # wrong letter on the position
 
# Now print the word and the result formed into one string.
print word
print ''.join(result)

Open in new window

0
 
LVL 28

Assisted Solution

by:pepr
pepr earned 500 total points
ID: 22943782
Now, more "pythonic" way is to think differently about the for loop than in other languages. Think about for as about iteration through all elements in the container (often the sequence, here the word string). If you need also the counter for the iteration, use the enumerate() function. It returns the tuple (counter, element). The tuple can be assigned into the related number of variables. This way you can write (the same functionality as above)...
word = 'aabb'
guess = 'abab'
result = []
 
for i, c in enumerate(word):
    if c == guess[i]:
        result.append('x')    # correct letter on the position
    else:
        result.append('-')    # wrong letter on the position
 
# Now print the word and the result formed into one string.
print word
print ''.join(result)

Open in new window

0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Installing Python 2.7.3 version on Windows operating system For installing Python first we need to download Python's latest version from URL" www.python.org " You can also get information on Python scripting language from the above mentioned we…
The purpose of this article is to demonstrate how we can use conditional statements using Python.
Learn the basics of if, else, and elif statements in Python 2.7. Use "if" statements to test a specified condition.: The structure of an if statement is as follows: (CODE) Use "else" statements to allow the execution of an alternative, if the …
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question