Есть ли простой способ дать карточке в списке набор баллов? - PullRequest
0 голосов
/ 22 января 2019

Моим заданием было создать очень простую версию блэкджека на python, где вы спрашиваете, хотят ли они играть, они говорят «да», и он берет карту, в ней говорится о количестве очков, которые вы получили после того, как выбрали карту, а затем спросите, хотите ли вы играть снова. Мне нужна помощь с внедрением «системы баллов».

Я попытался сделать несколько операторов if, где, если бы число было в списке, оно давало бы ему столько же очков, сколько и оно, но я обнаружил, что оно не работает.

import random

nummer = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "Kung", "Dam", 
"Knekt", "Ess"]
kort = ["♦", "♥", "♣", "♠"]
kortlek = []
for n in range(0, 4):
    for x in range(0, 13):
        kortlek.append(kort[n] + " " + nummer[x])

d_k = []

svar = input("Do you want to play? (y/n) ")

if svar == "y":
    drag = random.choice(kortlek)
    print("You got ", drag)
    d_k.append(drag)
    kortlek.remove(drag)
else:
    print("Bye")

По сути, я хочу, чтобы после того, как вы взяли карту, она подсчитала общее количество набранных вами очков.

1 Ответ

0 голосов
/ 22 января 2019

Как упомянуто в комментарии @ TigerhawkT3, создание kortlek словаря с каждой карточкой, имеющей значение своей карточки.

import random

nummer = ["Ess", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Knekt", "Dam", 
"Kung"] # Kung = king, dam = queen, knekt = jack, ess = ace (assumed)
kort = ["♦", "♥", "♣", "♠"]
kortlek = {} # (Card choice : Value) using dictionary
for n in range(0, 4): # Can remove "0, "
    for x in range(0, 13): # Can remove "0, "
        kortlek[kort[n] + " " + nummer[x]] = x + 1

d_k = []

svar = input("Do you want to play? (y/n) ")

if svar == "y":
    drag = random.choice(list(kortlek.keys()))
    print("You got ", drag, "which has a card value of:", kortlek[drag])
    d_k.append(drag)
    del kortlek[drag]
else:
    print("Bye")

Вы можете украсить вывод и отформатировать его самостоятельно и продолжить отсюда. Удачи! :)

РЕДАКТИРОВАТЬ : Также имейте в виду, что в игре в блэкджек Ace ("Ess") может быть либо 1, либо 11. Я не помог вам кодировать его, но вы должны быть в состоянии реализовать это используя цикл if:)

Проверьте сами

...