Движение против часовой стрелки Python

Пишу мини-игру но застрял на этапе движения числа против часовой стрелки. У меня есть 2 списка

rival = [0,3,3,3]
   my = [3,0,6,0]

И при вызове game(my, rival, 2), я хочу получить такой результат

rival = [1,4,4,4]
   my = [4,0,0,1]

То есть мы берём 6 обнуляем её, и приплюсовываем против часовой стрелки. Буду очень благодарный за помощь, я уже запутался :) Вот мой код:

def game(my, rival, pos):
    for i in range(len(my)):
        if i <= x:
            my[i] += 1
            my[pos] = 0

Ответы (2 шт):

Автор решения: CrazyElf

Ну как-то так:

def game(my, rival, x):
    y = 1
    lst = [rival, my]
    val, lst[y][x] = lst[y][x], 0
    d = 1
    while val > 0:
        x += d
        if x < 0:
            d = -d
            y = 1 - y
            x = 0
        if x >= len(my):
            d = -d
            y = 1 - y
            x = len(my) - 1
        lst[y][x] += 1
        val -= 1

rival = [0,3,3,3]
my = [3,0,6,0]
game(my, rival, 2)
print(rival)
print(my)

Вывод:

[1, 4, 4, 4]
[4, 0, 0, 1]
→ Ссылка
Автор решения: passant

Странная задача, но тем не менее:

Сама функция:

def game(my, rival, pos):
    sp=rival+my[::-1]
    for i in range(len(rival)-2+pos,len(rival)-2+pos-my[pos],-1):
        sp[i]+=1
    rival=sp[0:len(rival)]
    my=sp[len(rival):][::-1]
    my[pos]=0
    return(rival,my)

Вызов:

rival = [0,3,3,3]
my=[3,0,6,0]
pos=2
rival,my=game(my,rival,pos)
print(rival)
print(my)

Результат:

[1, 4, 4, 4]
[4, 0, 0, 1]

Оно?

→ Ссылка