Хэд хоногийн өмнө олж авсан нэг номоо урд шөнө сууж харж байгаад энэ хэл дээр ганц програм гэх юм уу даа юм бичиж үзлээ. Тоо таадаг, хамгийн энгийн тоглоом. Үндсэн зарчим нь binary search гэдгийг мэднэ гэж бодож байна.
Эхлээд "компьютер" нэг тоо санана, тэрийг нь тааж олно. Дараа нь санасан тоог чинь цаадах чинь олно. Тоо санаагүй хулхидах гэж оролдвол баригдана, гэхдээ тэр нь өөрөө бас жоохон алдаатай.
Indentation хийдэг нь их зүгээр юм шиг боловч, бүтэн кодондоо, эсвэл олон мөр кодонд while loop ч юм уу нэг оруулахад мөр мөрөөр нь урагшлуулах ядаргаатай санагдав. Бүтнээр нь бүгдийг нь хөдөлгөдөг арга бий болов уу?
Бас коммэнт бичих нь их төвөгтэй санагдлаа. # гэж байгаад, үүнээс хойшхийг коммэнт болгож байгаа боловч, C,C++ шиг /* comment */ гэж яаж хийхийг олж мэдсэнгүй.
import random
guessesTaken = 0
print('Hello! What is your name?')
myName = raw_input()
number = random.randint(1,20)
print('Well, ' + myName + ', I am thinking of a number between 1 and 20. ')
while guessesTaken < 6:
print('Take a guess.')
guess = raw_input()
guess = int(guess)
guessesTaken = guessesTaken + 1
if guess < number :
print('Your guess is low.')
if guess > number:
print('Your guess is high.')
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print('Good job, ' + myName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess!= number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
print (myName + '! now it is your turn to think a number')
print ('What is your range of guessed number, 1 to ?')
minNumber = 1
maxNumber = raw_input()
maxNumber = int(maxNumber)
n = maxNumber/2
k = (maxNumber+minNumber)/2
answer = 'null'
low = 'low'
high = 'high'
yes = 'yes'
while guessesTaken < n:
mid = (maxNumber+minNumber)/2
print 'I guess %d' % (mid)
answer = raw_input()
guessesTaken +=1
if answer == low:
minNumber = mid
if mid == maxNumber:
print(myName + '! do not try to fool me!')
break
if answer == high:
maxNumber=mid
if mid == minNumber:
print(myName + '! do not try to fool me!')
break
if answer == yes:
break
if answer == yes:
guessesTaken = str(guessesTaken)
print(myName + '! I guessed your number in ' + guessesTaken + ' guesses!')
if answer != yes:
print(myName + '! did you think any number?')
Monday, March 28, 2011
Subscribe to:
Posts (Atom)