欢迎光临散文网 会员登陆 & 注册

(python自制)还没想好名字

2023-05-27 23:49 作者:未闻的梦想  | 我要投稿


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()

(python自制)还没想好名字的评论 (共 条)

分享到微博请遵守国家法律