wd951357 发表于 2018-9-19 13:31:43

python 004的課,三次就結束遊戲用and邏輯操作符,有人會做嗎?

請問python 004的課裡,改進遊戲的第二條有三次機會,三次就結束遊戲用and邏輯操作符,有人會做嗎?

claws0n 发表于 2018-9-19 13:41:12

while (guess == secret and times > 0):

pyhero 发表于 2018-9-19 17:13:32

本帖最后由 pyhero 于 2018-9-19 17:14 编辑

import random

# define guess zone by GM
number_min = 1
number_max = 9

# generate secret
secret_pool =
secret = random.choice(secret_pool)

# get guess chances by player
chances = int(input('Guess number game, how many chances do you want: '))
chance_max = number_max - number_min + 1
while (chances < 1) or (chances > chance_max):
    chances = int(input('chose from 1-{}: '.format(chance_max)))

# get guess number by player
guess = int(input('Guess the number({}-{}, {} chances): '.format(number_min, number_max, chances)))
chances -= 1
while (guess < number_min) or (guess > number_max):
    guess = int(input('chose from {}-{}: '.format(number_min, number_max)))
    chances -= 1

# do guess
while (chances > 0) and (guess != secret):
    if guess < secret:
      guess = int(input('too small, guess again: '))
    elif guess > secret:
      guess = int(input('too big, guess again: '))
    chances -= 1
else:
    if guess == secret:
      print('NB')
    elif chances <= 0:
      print('Have no chance, Game Over!')
    else:
      print('Bug')

wd951357 发表于 2018-9-20 10:45:43

是這樣嗎?謝謝

# homework004
import random
answer = random.randint(1,10)
count = 1

print('-----------------welcome to you game---------------')
temp = input("不妨猜一下小甲魚現在心裡想的是哪個數字:")
guess = int(temp)

while guess != answer and count < 3:
    if guess > answer:
      print("哥,大了大了~~")
    else:
      print("嘿,小了!小了!!")
    temp = input("還有機會加油!!")
    guess = int(temp)
    count += 1
print("遊戲結束")

if guess == answer:
    print("哇草,你是小甲鱼心里的蛔蟲嗎?")
    print("哼,猜中了也沒有獎勵")
    print("遊戲結束")

print("結束?現在才是真正的開始,快點開始!!")

echo99 发表于 2018-9-22 12:23:26

wd951357 发表于 2018-9-20 10:45
是這樣嗎?謝謝

代码简洁,小菜鸟学习了{:5_91:}
不过我发现有个小问题:如果3次机会中某次猜对了,那么会打印2个"游戏结束",如下:
-----------------welcome to you game---------------
不妨猜一下小甲魚現在心裡想的是哪個數字:7
嘿,小了!小了!!
還有機會加油!!9
嘿,小了!小了!!
還有機會加油!!10
遊戲結束
哇草,你是小甲鱼心里的蛔蟲嗎?
哼,猜中了也沒有獎勵
遊戲結束
結束?現在才是真正的開始,快點開始!!

所以,删掉上面的2个print("游戏结束"),只写一个放到print("結束?現在才是真正的開始,快點開始!!")之前,是不是更好点?

wd951357 发表于 2018-9-23 19:42:45

echo99 发表于 2018-9-22 12:23
代码简洁,小菜鸟学习了
不过我发现有个小问题:如果3次机会中某次猜对了,那么会打印2个"游戏结束 ...

謝謝你的見意,已經試了,顯示結果真的比較好,謝謝.

但我還沒改進完,我是想每次輸入完都會提示次數

以後有時間可以一起交流,我現在還卡住在工課{:10_266:}

wd951357 发表于 2018-9-23 19:43:35

claws0n 发表于 2018-9-19 13:41
while (guess == secret and times > 0):

謝謝回覆

wd951357 发表于 2018-9-23 19:47:11

pyhero 发表于 2018-9-19 17:13


謝謝你的回覆,但真的不好意思,本人太菜了,還是不太明白你的代碼,但真的很感謝你過來回答我的問題,謝謝
{:10_275:}

wd951357 发表于 2018-10-6 15:21:39

更新版本

# 改進後homework004
import random
answer = random.randint(1,10)
count = 2

print('-----------------welcome to you game---------------')
temp = input("不妨猜一下小甲魚現在心裡想的是哪個數字:")
guess = int(temp)

while guess != answer and count < 3:
    if guess > answer:
      print('哥,大了大了~~剩下 %s 次机会' %count)
    else:
      print('嘿,小了!小了!!剩下 %s 次机会' %count)

    temp = input("還有機會加油!!")
    guess = int(temp)
    count -= 1

    if count ==0:
      break


if guess == answer:
    print("哇草,你是小甲鱼心里的蛔蟲嗎?")
    print("哼,猜中了也沒有獎勵")

print("真可惜結束了.結束????現在才是真正的開始,快點開始!!")
页: [1]
查看完整版本: python 004的課,三次就結束遊戲用and邏輯操作符,有人會做嗎?