Tôi rất mới với python và đã cố gắng tạo trò chơi blackjack nhiều người chơi trên python trong một thời gian. Tôi đã gặp rất nhiều vấn đề và tự hỏi liệu các bạn có thể giúp tôi với họ không.Tạo trò chơi blackjack nhiều người chơi
import random
def total(hand):
aces = hand.count(11)
t = sum(hand)
if t > 21 and aces > 0:
while aces > 0 and t > 21:
t -= 10
aces -= 1
return t
Cards = ["2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "AH", "JH", "QH", "KH", "AC", "JC", "QC", "KC", "AS", "JS", "QS", "KS", "AD", "JD", "QD", "KD"]
Cards[35] = 11
Cards[36] = 10
Cards[37] = 10
Cards[38] = 10
Cards[39] = 11
Cards[40] = 10
Cards[41] = 10
Cards[42] = 10
Cards[43] = 11
Cards[44] = 10
Cards[45] = 10
Cards[46] = 10
Cards[47] = 11
Cards[48] = 10
Cards[49] = 10
Cards[50] = 10
Players = raw_input("How many players are there?")
for i in range Players:
Player i = []
Player i.append(choice(Cards))
Player i.append(choice(Cards))
tp = total(player)
print "Player" + i + "Cards: " + Player i + "," + "total: " + tp
hitorstand = raw_input("hit (h) or stand (s)?")
if hitorstand == "h":
Player i.append(choice(cards))
print ("hit (h) or stand (s)?")
elif hitorstand == "s":
break
else print "Please enter h or s"
dealer = []
While True:
dealer.append(choice(cards))
dealer.append(choice(cards))
td = total(dealer)
while td > 17:
dealer.append(choice(cards))
else:
break
if td < tp < 21:
"Player i wins"
else print "dealer wins"
Đây là những gì tôi có cho đến nay. Tôi hiểu có rất nhiều ngữ pháp và mã không hoạt động. Tôi đã tự hỏi nếu các bạn có thể cho tôi biết những gì là sai với mã và có thể đề nghị một số tùy chọn về cách sửa chữa nó.
mối quan tâm chính của tôi ngay bây giờ:
Tôi đang thực hiện một "multiplayer" blackjack trò chơi. Tôi không biết làm cách nào để tạo vòng lặp cho trò chơi blackjack nhiều người chơi. Trong mã của tôi, tôi hỏi có bao nhiêu người đang chơi. Làm cách nào để tạo vòng lặp cho trò chơi mà không biết số số sẽ là bao nhiêu?
Ngoài ra, làm cách nào để tạo một hàm để tìm ra người chiến thắng mà không biết có bao nhiêu người chơi đang chơi?
Sau khi tôi gõ vào
Players = raw_input("How many players are there?") for i in range Players:
Các
Players
trong vòng lặp for mang lại cho tôi một lỗi cú pháp. Chuyện gì thế?
Như một bản cập nhật, tôi đã suy nghĩ về những gì bạn nói về thực hiện một danh sách và tôi vẫn không thực sự hiểu thế nào tôi nên đi về thực hiện một mã để tìm ra người chiến thắng.
ví dụ
ngay cả khi tôi thực hiện một danh sách, nếu tôi không biết có bao nhiêu người chơi đang thực sự chơi, tôi sẽ không thể để so sánh các yếu tố trong danh sách. Nếu tôi biết có bao nhiêu người đang chơi,
playerlist = [1,2,3]
tôi có thể nói
if playerlist[0] > playerlist[1], playerlist[2] and playerlist[0] < 21:
then print "player 1 wins!"
Nhưng kể từ khi tôi sẽ không biết có bao nhiêu người đang chơi cho đến khi người dùng thực sự loại trong đầu vào, tôi bị mất như thế nào tôi phải viết mã cho người chiến thắng.
Tôi không biết nếu có cách nói "nếu điều này lớn hơn phần còn lại". Tôi chỉ biết nói "nếu điều này lớn hơn thế".
Có cách nào để nói "nếu điều này lớn hơn phần còn lại" trong python không? Nếu không, bạn có thể cho tôi một số gợi ý để tạo mã để tìm ra người chiến thắng không?
Nó phải là 'cho tôi trong phạm vi (Người chơi)', không phải 'cho tôi trong phạm vi Người chơi'. – Ryan
Câu hỏi về blackjack là gì? http://stackoverflow.com/questions/11724954/how-do-i-separate-each-list-for-a-player-in-the-blackjack-game#comment15557653_11724954 – Benjamin