Python:High Low游戏v2

时间:2013-08-20 14:42:57

标签: python

好的,我主要创建了它,但仍然存在一些问题。

[更新]我已根据信息对其进行了更新,我还遇到了一些问题。

import random

print '|'*20
print '='*20
print 'Instruction'
print 'Enter high, low or quit!'
print 'Press enter without any input too see instruction'
print '='*20
print "="*5+'GAME START'+"="*5
print '='*20
print ''
card = [2,3,4,5,6,7,8,9,10]

choice = ' '
i=0
first = 1
while choice != 'quit':


    card1, card2 = random.sample(card, 2)


    showCard = [card1, card2]
    startCard = card1

    if choice == 'high':
        if card1 > card2:
            print ''
            print str(card1) + ' first card1'
            print str(card2) + ' first card2'
            print ''
            print 'wrong'
            print ''
            print 'Dealer Second card: '+str(card2)
            print '-'*20
            i=i+1
        elif card1 <= card2:
            print ''
            print str(card1) + ' second card1'
            print str(card2) + ' second card2'
            print ''
            print 'correct'
            print ''
            print 'Dealer Second card: '+str(card2)
            print '-'*20
            i=i+1
        else:
            print 'Dealer First card: '+str(card1)
    elif choice == 'low':
        if card1 > card2:
            print 'wrong - testing 3'
            print 'Next card: '+str(card2)
            print '-'*20
        else:
            print 'correct - testing 4'
            print 'Next card: '+str(card2)
            print '-'*20
    elif choice != 'high' or 'low' or 'info':
        print 'Enter high or low only'


    print 'First card 2: '+str(startCard)

    choice = raw_input("Enter: ")

print i
print 'END'

输出:

====================
=====GAME START=====
====================

Enter high or low only
First card 2: 7
Enter: high

7 second card1
10 second card2

correct

Dealer Second card: 10
---------------------
First card2: 3
Enter: high

6 first card1
5 first card2

wrong

Dealer Second card: 5

问题:在第二个循环中,如何在“Enter:high”用户输入之前设置“6 first card1”? (将“First card2:3”替换为“6 first card1”)

PS:首先使用高输入,因为低输入仍在构建

感谢

1 个答案:

答案 0 :(得分:1)

你可以(如果可能的话)将声明移到外面,因为taronish4说或者可能会改变你的代码,使它看起来像这样:

choice = raw_input("Press enter to start ")
i=-1
first=1
while choice != 'quit':

    card = [2,3,4,5,6,7,8,9,10]
    card1, card2 = random.sample(card, 2)

    if first == 1:
        print 'Dealer First card: '+str(card1)
        first = 0

    showCard = [card1, card2]

    if choice == 'high':

以前的其余代码。

编辑:解决其他问题

你必须复制这个:

card1, card2 = random.sample(card, 2)

并将它放在循环之前,如下所示:

card = [2,3,4,5,6,7,8,9,10]
card1, card2 = random.sample(card, 2)
choice = ' '
i=0
while choice != 'quit':

然后在循环中移动random.sample的调用,以便在输出之前执行,就像输出一样:

print 'First card 2: '+str(startCard)
card1, card2 = random.sample(card, 2)
choice = raw_input("Enter: ")

我建议删除第一个= 1声明,因为你没有使用变量。

编辑:JQKA问题

为此,我将实现一个字典,返回数字10,11,12,13的字符串。 把它放在你的代码之前(但是在import语句之后!)

cardDict = {
    2: '2',
    3: '3',
    4: '4',
    5: '5',
    6: '6',
    7: '7',
    8: '8',
    9: '9',
    10: '10',
    11: 'J',
    12: 'Q',
    13: 'K',
    14: 'A'
}

然后是你的其余代码。 不要忘记更改您的卡片列表,如下所示:

card=[2,3,4,5,6,7,8,9,10,11,12,13,14]

在任何地方你都有类似

的东西
print card

将其替换为

print cardDict[card]