好的,我主要创建了它,但仍然存在一些问题。
[更新]我已根据信息对其进行了更新,我还遇到了一些问题。
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:首先使用高输入,因为低输入仍在构建
感谢
答案 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]