(python自制)还没想好名字

import pygame
import sys
import random
import csv
pygame.init()
clock = pygame.time.Clock ()
screen = pygame.display.set_mode((850,600))
pygame.display.set_caption("mark")
xc,yc,sr=0,0,0
un=[0]
bjt=pygame.image.load("bjt.jpg")
bjt1=pygame.image.load("bjt1.png")
bjt2=pygame.image.load("bjt2.jpg")
xuan=[]
pygame.mixer.init()
def qingli():
global bushu,houtai,daibushu
bushu=[[un],[un,un,un,un,un,un,un],[un,un,un,un,un,un,un],[un,un,un,un,un,un,un],[un,un,un,un,un,un,un],[un]]
houtai=[[],[]]
daibushu=[[["a1.jpg","奇妙魔方方",0,1,6,3,0,0,1,3,1,1],["a2.jpg","奇妙方魔魔",0,2,7,3,0,0,1,3,2,2]],[["a1.jpg","奇妙魔方方",1,1,6,3,0,0,1,3,1,1],["a2.jpg","奇妙方魔魔",1,2,7,3,0,0,1,3,2,2]]]
def dd():
global houtai
with open('f.csv','r',newline="") as f:
reader = csv.reader(f)
for row in reader:
houtai[0].insert(0,[])
houtai[1].insert(0,[])
for i in range(len(row)):
if i>=2:
row[i]=int(row[i])
houtai[0][0].insert(100,row[i])
houtai[1][0].insert(100,row[i])
houtai[1][0][2]=1
f.close
def hh():
global sr,xc,yc,houtai,daibushu,bushu,xuan
if xc>755 and xc<785 and yc>1065-505*sr and yc<1095-505*sr:
if huihe[sr-1]<12:
huihe[sr-1]=huihe[sr-1]+1
feiyong[sr-1]=huihe[sr-1]
sr=3-sr
for i in range(len(bushu)):
for j in range(len(bushu[i])):
if i>0 and i<5:
if len(bushu[i][j])>9:
if bushu[i][j][2]==sr-1:
bushu[i][j][10]=bushu[i][j][11]
for i in range(2+int(huihe[sr-1]/6)):
if len(daibushu[sr-1])<9:
if len(houtai[sr-1])>=1:
sui=random.randint(0,len(houtai[sr-1])-1)
daibushu[sr-1].append(houtai[sr-1][sui])
houtai[sr-1].pop(sui)
if xc>444 and xc<444+40*len(daibushu[sr-1]) and yc>1015-505*sr and yc<1055-505*sr:
shu=int((xc-444)/40)
xuan=[shu*40+444,1055-505*sr,40,5,0,0,0,0,daibushu[sr-1][shu]]
elif xc>100 and xc<800 and yc>100 and yc<500:
xa=int((xc-100)/100)
ya=int((yc-100)/100)
if xuan[2]==40 and len(bushu[ya+1][xa])==1 and ya==6-3*sr:
if daibushu[sr-1][int((xuan[0]-444)/40)][3]<=feiyong[sr-1]:
feiyong[sr-1]=feiyong[sr-1]-daibushu[sr-1][int((xuan[0]-444)/40)][3]
bushu[ya+1][xa]=daibushu[sr-1][int((xuan[0]-444)/40)]
daibushu[sr-1].pop(int((xuan[0]-444)/40))
elif xuan[2]==96:
hen=xuan[6]-xa
if hen<0:
hen=-hen
zong=xuan[7]-ya-1
if zong<0:
zong=-zong
jian=0
for ib in range(3):
for jb in range(3):
if ya+2-ib>0 and ya+2-ib<5 and xa+1-jb>=0 and xa+1-jb<=5:
if len(bushu[ya+2-ib][xa+1-jb])>6:
if bushu[ya+2-ib][xa+1-jb][2]==2-sr:
jian=jian+1+bushu[ya+2-ib][xa+1-jb][6]
if bushu[ya+2-ib][xa+1-jb][2]==sr-1:
jian=jian-1
if jian<0:
jian=0
if len(bushu[ya+1][xa])>6 and bushu[ya+1][xa][2]==2-sr and hen+zong<=xuan[4]:
bushu[ya+1][xa][4]=bushu[ya+1][xa][4]-bushu[xuan[7]][xuan[6]][5]
bushu[xuan[7]][xuan[6]][4]=bushu[xuan[7]][xuan[6]][4]-jian
if bushu[ya+1][xa][4]<=0:
bushu[ya+1][xa]=[0]
bushu[xuan[7]][xuan[6]][10]=bushu[xuan[7]][xuan[6]][10]-1
if bushu[xuan[7]][xuan[6]][4]<=0:
bushu[xuan[7]][xuan[6]]=[0]
xuan=[-10,-10,0,0]
elif len(bushu[ya+1][xa])==1 and hen+zong<=xuan[5]:
bushu[xuan[7]][xuan[6]][4]=bushu[xuan[7]][xuan[6]][4]-2**jian+1
bushu[ya+1][xa]=bushu[xuan[7]][xuan[6]]
bushu[xuan[7]][xuan[6]]=[0]
bushu[ya+1][xa][10]=bushu[ya+1][xa][10]-1
if bushu[ya+1][xa][4]<=0:
bushu[ya+1][xa]=[0]
xuan=[-10,-10,0,0]
if len(bushu[ya+1][xa])>1 and bushu[ya+1][xa][2]==sr-1:
if bushu[ya+1][xa][10]>0:
xuan=[xa*100+102,ya*100+102,96,96,bushu[ya+1][xa][8],bushu[ya+1][xa][9],xa,ya+1,bushu[ya+1][xa]]
else:
xuan=[-10,-10,0,0]
else:
xuan=[-10,-10,0,0]
def jiagou():
global sr,houtai,daibushu,bushu,feiyong,xuan
pygame.draw.rect(screen,"yellow",(xuan[0],xuan[1],xuan[2],xuan[3]))
if len(xuan)>8:
s = pygame.Surface((220,80), pygame.SRCALPHA)
if xuan[8][2]==sr-1:
s.fill((40,160,250,150))
else:
s.fill((200,120,10,150))
screen.blit(s, (100,510-505*(sr-1)))
fontn=pygame.font.match_font("Microsoft YaHei")
font=pygame.font.Font(fontn,15)
text1=font.render(str(xuan[8][1]),True,"white",None)
ta=text1.get_rect()
screen.blit(text1,(215-ta[2]/2,511-505*(sr-1),50,20))
im=["卡牌生命:","卡牌攻击:","最远射程:","最远移动:","当前电量:","电池容量:"]
jm=[4,5,8,9,10,11]
for t in range(6):
text2=font.render(im[t]+str(xuan[8][jm[t]]),True,"white",None)
screen.blit(text2,(105+110*(t-int(t/2)*2),529-505*(sr-1)+18*int(t/2)))
for i in range(feiyong[0]):
pygame.draw.rect(screen,"palegreen",(444+20*i,560,16,30))
for i in range(feiyong[1]):
pygame.draw.rect(screen,"palegreen",(444+20*i,55,16,30))
for i in range(len(daibushu)):
for j in range(len(daibushu[i])):
dbsjg=pygame.image.load(daibushu[i][j][0])
dbsjga=pygame.transform.scale(dbsjg,(40,40))
screen.blit(dbsjga,(444+40*j,510-505*i))
font=pygame.font.Font(None,30)
text1=font.render(" "+str(daibushu[i][j][3])+" ",True,"white","skyblue")
screen.blit(text1,(444+40*j,510-505*i,50,20))
for i in range(len(bushu)):
if i>0 and i<5:
for j in range(len(bushu[i])):
if len(bushu[i][j])>6:
if bushu[i][j][2]==sr-1:
if bushu[i][j][10]>0:
pygame.draw.rect(screen,"purple",(102+100*j,102+100*(i-1),96,96))
else:
pygame.draw.rect(screen,"blue",(102+100*j,102+100*(i-1),96,96))
else:
if bushu[i][j][10]>0:
pygame.draw.rect(screen,"red",(102+100*j,102+100*(i-1),96,96))
else:
pygame.draw.rect(screen,"deeppink",(102+100*j,102+100*(i-1),96,96))
dbsjg=pygame.image.load(bushu[i][j][0])
dbsjga=pygame.transform.scale(dbsjg,(90,90))
screen.blit(dbsjga,(105+100*j,105+100*(i-1)))
font=pygame.font.Font(None,24)
pygame.draw.rect(screen,"green3",(105+100*j,105+100*(i-1),40,15))
text1=font.render(str(bushu[i][j][4]),True,"white",None)
ta=text1.get_rect()
screen.blit(text1,(125+-ta[2]/2+100*j,105+100*(i-1),50,20))
pygame.draw.rect(screen,"pink",(105+100*j,120+100*(i-1),40,15))
text1=font.render(str(bushu[i][j][5]),True,"white",None)
ta=text1.get_rect()
screen.blit(text1,(125-ta[2]/2+100*j,120+100*(i-1),50,20))
pygame.draw.rect(screen,"deepskyblue",(105+100*j,135+100*(i-1),40,15))
text1=font.render(str(bushu[i][j][10])+" / "+str(bushu[i][j][11]),True,"white",None)
ta=text1.get_rect()
screen.blit(text1,(125-ta[2]/2+100*j,135+100*(i-1),50,20))
if xuan[2]==96:
xa,ya=xuan[6],xuan[7]
for i in range(len(bushu)):
if i>0 and i<5:
for j in range(len(bushu[i])):
hen=j-xa
if hen<0:
hen=-hen
zong=i-ya
if zong<0:
zong=-zong
if len(bushu[i][j])>6 and bushu[i][j][2]==2-sr and hen+zong<=xuan[4]:
jian=0
for ib in range(3):
for jb in range(3):
if i+1-ib>0 and i+1-ib<5 and j+1-jb>=0 and j+1-jb<=5:
if len(bushu[i+1-ib][j+1-jb])>6:
if bushu[i+1-ib][j+1-jb][2]==2-sr:
jian=jian+1+bushu[i+1-ib][j+1-jb][6]
if bushu[i+1-ib][j+1-jb][2]==sr-1:
jian=jian-1
if jian<0:
jian=0
fontn=pygame.font.match_font("Microsoft YaHei")
font=pygame.font.Font(fontn,30)
text=font.render(str(jian),True,(20,20,20),None)
screen.blit(text,(105+100*j,105+100*(i-1),100,20))
s = pygame.Surface((90,90), pygame.SRCALPHA)
s.fill((20,20,200,150))
screen.blit(s, (105+100*j,105+100*(i-1)))
elif len(bushu[i][j])==1 and hen+zong<=xuan[5]:
jian=0
for ib in range(3):
for jb in range(3):
if i+1-ib>0 and i+1-ib<5 and j+1-jb>=0 and j+1-jb<=5:
if len(bushu[i+1-ib][j+1-jb])>6:
if bushu[i+1-ib][j+1-jb][2]==2-sr:
jian=jian+1+bushu[i+1-ib][j+1-jb][6]
if bushu[i+1-ib][j+1-jb][2]==sr-1:
jian=jian-1
if jian<0:
jian=0
fontn=pygame.font.match_font("Microsoft YaHei")
font=pygame.font.Font(fontn,30)
text=font.render(str(2**jian-1),True,(20,20,20),None)
screen.blit(text,(105+100*j,105+100*(i-1),100,20))
s = pygame.Surface((90,90), pygame.SRCALPHA)
s.fill((20,200,200,150))
screen.blit(s, (105+100*j,105+100*(i-1)))
def run():
global xc,yc,kaishi,sr,houtai,daibushu,bushu,huihe,feiyong,bjt,bjt1,bjt2,xuan,chengbao
kaishi=0
fontn=pygame.font.match_font("Microsoft YaHei")
font=pygame.font.Font(fontn,30)
while 1:
clock.tick (100)
screen.fill((245,245,245))
js=pygame.transform.scale(bjt1,(850,600))
screen.blit(js,(0,0))
if kaishi<1:
text=font.render("开始一场对局",True,(70,70,70),(210,240,240))
screen.blit(text,(310,260,100,20))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN:
xc,yc= event.pos
if xc>310 and xc<490 and yc>260 and yc<305:
dd()
xuan=[-10,-10,0,0]
kaishi=1
sr=1
huihe=[1,1]
feiyong=[1,2]
chengbao=[["cb.jpg","必须守护的东西#",1,0,100,2,0,0,1,0,1,1],["cb.jpg","必须守护的东西#",0,0,100,2,0,0,1,0,1,1]]
bushu[1][3]=chengbao[0]
bushu[4][3]=chengbao[1]
elif kaishi>=1:
pygame.draw.rect(screen,"purple",(350,510-505*(sr-1),80,80))
pygame.draw.rect(screen,"red",(350,510-505*(2-sr),80,80))
bp=pygame.transform.scale(bjt2,(700,400))
screen.blit(bp,(100,100))
jieshou2=pygame.image.load("a2.jpg")
js2=pygame.transform.scale(jieshou2,(30,30))
screen.blit(js2,(755,60))
screen.blit(js2,(755,560))
jieshou3=pygame.image.load("fanhui.jpg")
js3=pygame.transform.scale(jieshou3,(20,20))
screen.blit(js3,(5,200))
for i in range(5):
pygame.draw.rect(screen,"skyblue",(98,98+100*i,700,5))
for i in range(8):
pygame.draw.rect(screen,"skyblue",(98+100*i,98,5,405))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN and kaishi==1:
xc,yc= event.pos
hh()
if xc>5 and xc<25 and yc>200 and yc<220:
kaishi=0
qingli()
jiagou()
if chengbao[0][4]<=0 or chengbao[1][4]<=0:
jieshou4=pygame.image.load("pg.jpg")
js4=pygame.transform.scale(jieshou4,(80,80))
if chengbao[0][4]<=0:
screen.blit(js4,(350,5))
else:
screen.blit(js4,(350,510))
if kaishi==1:
music1 = pygame.mixer.Sound(r'pgyy1.wav')
music1.play ()
kaishi=kaishi+1
if kaishi>500:
kaishi=0
qingli()
pygame.display.update()
qingli()
run()