为什么代码一用Python就这么难写啊,约瑟夫环(这是需要补充)😂

import pygame,sys
from pygame.locals import *
import math,time
#调用了No3_CLinkedList文件中的LCList类
from No3_CLinkedList import *
DarkOrange = 255,140,0
blue = 0,0,255
red = 255,0,0
n = 8 #人数
k = 3 #起点
m = 6 #结束
manGroup=LCList()
infoGroup=[]
info_x,info_y = 30, 450
class Man(pygame.sprite.Sprite): #游戏中人头像的动画精灵类
def init(self, initial_position,label):
pygame.sprite.Sprite.init(self)
self.image = pygame.image.load('Image\man.png')
self.image = pygame.transform.scale(self.image, (50, 50))
self.rect=self.image.get_rect()
self.rect.topleft=initial_position
self.label = label
self.color = blue

def draw(self):
    screen.blit(self.image,self.rect)
    ID = font.render(self.label, True, self.color)
    screen.blit(ID,self.rect)
    pygame.display.update()

pygame.init()
screen = pygame.display.set_mode((600,600),SRCALPHA,32)
font = pygame.font.Font(None, 22)
angle = [0,45,90,135,180,225,270,315]
for e in angle:
x = 100math.cos(math.radians(e))+275
y = 100
math.sin(math.radians(e))+275
manGroup.append(Man((x,y),str(angle.index(e)+1)))

def show_info():
for e in infoGroup:
screen.blit(e,(info_x + infoGroup.index(e) * 30,info_y))

def initScreen():
screen.fill([255,255,255])
pygame.display.set_caption("Josephus")
textImage = font.render("n = "+str(n)+";k = "+str(k)+";m = "+str(m)+";", True, blue)
screen.blit(textImage,(100,100))
if manGroup.rear:
p = manGroup.rear.next
while True:
p.elem.color = blue
p.elem.draw()
if p is manGroup.rear:
break
p = p.next
show_info()
pygame.display.update()

initScreen() #初始化界面

以上代码请勿删除或修改

def findStart(LCList,k): #查找第一轮的起点k
p = manGroup.rear.next
i = 1
while True:
if i == k:
break
##### Fill in Your Code(2) #####
return p

def findNext(LCList,newStart,m): #从newStart开始查找第m - 1个元素,返回指向该结点的指针
p = newStart
i = 1
while True:
p.elem.color = DarkOrange
p.elem.draw()
pygame.display.update()
pygame.time.delay(500)
if i == m - 1:
break
##### Fill in Your Code(2) #####
return p
def delNode(LCList,newObj): #删除newObj后面的一个结点,返回下一轮游戏的新的起始结点
p = newObj
obj = p.next
if obj == LCList.rear: #删除的是最末端的一个结点
##### Fill in Your Code(1) #####

if LCList.getLength() == 1:   #只剩一个结点的情况(删除剩余的唯一一个结点)
    ##### Fill in Your Code(1) #####

##### Fill in Your Code(2) #####    #删除p之后的一个结点,并将p向后移动至下一个结点
obj.elem.color = red
obj.elem.draw()
pygame.display.update()
pygame.time.delay(500)
info = font.render(obj.elem.label, True, red)
infoGroup.append(info)
pygame.time.delay(500)
initScreen()
return p

def JosephusL(n, k, m): #n:总人数;k:第一轮的起点;m:每一轮游戏的长度
global info_num
newStart = findStart(manGroup,k)
while not manGroup.isEmpty():
obj = findNext(manGroup,newStart,m)
newStart = delNode(manGroup,obj)
return

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if manGroup.rear:
JosephusL(n, k, m)
print('game over')

你把报的错误也贴出来啊