лучший способ нарезать четные / нечетные индексы из массива Python? - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь создать программу для карточных игр.

До сих пор я создал массив под названием «колода», состоящий из 30 карт с номерами от 1 до 30, каждой из которых был присвоен цвет «КРАСНЫЙ». , «ЧЕРНЫЙ» или «ЖЕЛТЫЙ»

Моя задача состоит в том, чтобы первый игрок взял первую карту колоды, а второй игрок - вторую карту колоды последовательно, пока не останется больше карт. в массиве 'deck'

Так что я подумал, что лучший способ сделать это для player1 - получить все четное число индексов из колоды (0,2,4,6 ... 28) идля player2, чтобы получить каждое нечетное количество индексов из колоды (1,3,5,7 ... 29)

Какой лучший способ сделать это?

Я пыталсяиспользовать встроенный метод фильтра для получения четных или нечетных индексов, но я чувствую, что это неправильно

import random 
colours = ['RED','BLACK','YELLOW']
deck = [(random.randint(1,31),random.choice(colours)) for _ in range(30)]
deck = random.shuffle(deck)
print(deck)

def Player1_Cards(deck):
    Player1_Cards = list(filter(deck[::2]))
    return Player1_Cards

def Player2_Cards(deck):
    Player2_Cards = list(filter(deck[::1]))

    return Player2_Cards

print(Player1_Cards(deck))
print(Player2_Cards(deck))

#The output is "'NoneType' object is not subscriptable"

1 Ответ

0 голосов
/ 09 ноября 2019

На мой взгляд, лучший способ присвоить 15 случайных нерепрессивных чисел обоим игрокам от 1 до 30 :-

import random 

def Player1_Cards(deck):
    return deck[:16]

def Player2_Cards(deck):
    return deck[16:]


colours = ['RED','BLACK','YELLOW']
deck = list(range(1,31))
random.shuffle(deck)
print('Randomized Deck:\n',deck)

print('Player 1:',Player1_Cards(deck))
print('Player 2:',Player2_Cards(deck))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...