猫史档案馆


技术喵

技术喵

Lv.1

多谷

获赞:0收藏:0浏览:0作品收藏:0
回复帖子评论
上一页1 页 / 共 1下一页

【呀啊啊要考蓝桥杯了】 中回复

我也是

2020-05-30T13:14:01 点赞:0

点运行怎么运行不了,哪位大神知道,快快回复 中回复

from game import *
from tkinter import Tk
from tkinter.simpledialog import askinteger, askfloat, askstring
from tkinter.filedialog import askopenfilename, askopenfilenames, asksaveasfilename, askdirectory
from tkinter.messagebox import showinfo, showwarning, showerror
import socket
import threading
import sys

def recv(s):
    while 1:
        msg = s.recv(1024).decode()
        c = msg.split()
        print(msg)
        if c[0] == 'P':
            if cli.now == BLACK and cli.board[int(c[2])][int(c[1])]==BLANK:
                cli.board[int(c[2])][int(c[1])]=BLACK
                cli.now = WHITE
                cli.pre = [int(c[2]),int(c[1])]
                cli.s.send("R {} {}".format(c[1],c[2]).encode())
                cli.status=cli.result()
        if msg == "restart":
            cli.restart()


class Client(Game):
    def __init__(self):
        app = Tk()  # 初始化GUI程序
        app.withdraw()
        super().__init__()
        self.s = socket.socket()  # 创建T喵/IP套接字
        ip = askstring(title="请输入ip",prompt="IP")
        while ip is None or not ip:
            ip = "192.168.3.8"
        port = askstring(title="请输入端口", prompt="端口")
        if port is None or not port:
            port = 12345
        else:
            try:
                port = int(port)
            except:
                port = 12345

        print(ip,port)
        self.s.connect((ip, port))  # 主动初始化T喵服务器连接
        self.t = threading.Thread(target=recv,args=(self.s,))
        self.t.start()
        app.destroy()
    def play(self):
        while True:
            for e in pygame.event.get():
                if e.type == QUIT:
                    self.s.close()
                    exit()
                if e.type == KEYDOWN:
                    if e.key == K_ESCAPE:
                        self.s.close()
                        exit()
            self.show()
            p1, p2 = pygame.mouse.get_pos()
            p1 = (p1-16)//32
            p2 = (p2-16)//32
            if 0<=p1<=14 and 0<=p2<=14 and self.status == PLAYING:
                self.end = time.time()
                # pygame.draw.circle(self.screen, (255, 0,0), (p1 * 32 + 32, p2 * 32 + 32), 9)
                # pygame.draw.rect(self.screen, (255,0,0), (p1 * 32+16, p2 * 32+16, 32, 32), 2)
                if self.now == WHITE:
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16, p2 * 32+16),(p1 * 32+16+10, p2 * 32+16),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16+22, p2 * 32+16),(p1 * 32+16+22+10, p2 * 32+16),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16, p2 * 32+16+32),(p1 * 32+16+10, p2 * 32+16+32),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16+22, p2 * 32+16+32),(p1 * 32+16+22+10, p2 * 32+16+32),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16, p2 * 32+16),(p1 * 32+16, p2 * 32+16+10),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16, p2 * 32+16+22),(p1 * 32+16, p2 * 32+16+22+10),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16+32, p2 * 32+16),(p1 * 32+16+32, p2 * 32+16+10),2)
                    pygame.draw.line(self.screen,(255,0,0),(p1 * 32+16+32, p2 * 32+16+22),(p1 * 32+16+32, p2 * 32+16+22+10),2)

                if pygame.mouse.get_pressed()[0] and self.board[p2][p1] == BLANK and self.now == WHITE:
                    self.board[p2][p1] = WHITE
                    self.pre = [p2,p1]
                    self.now = BLACK
                    self.s.send("P {} {}".format(p1,p2).encode())
                    r=self.result()
                    self.status = r
            t0 = self.chn.render("你是 白 棋", True, (0, 0, 0))
            t1 = self.chn.render("当前是 "+("黑"if self.now == BLACK else "白")+" 的回合", True, (0, 0, 0))
            t2 = self.chn.render("当前状态:"+trans(self.status), True, (0, 0, 0))
            t3 = self.chn.render("本局时间:{}".format(getstr(self.end-self.start)), True, (0, 0, 0))
            t4 = self.chn.render("" if self.status==PLAYING else "", True, (0, 0, 0))
            if 0<=p1<=14 and 0<=p2<=14 and self.status == PLAYING:
                t4 = self.chn.render("目前选中:({},{})".format(p1+1,ROWS-p2), True, (0, 0, 0))

            self.screen.blit(t0, (32 * 15+15, 160))
            self.screen.blit(t1,(32*15+15,200))
            self.screen.blit(t2, (32 * 15+15, 240))
            self.screen.blit(t3, (32 * 15+15, 280))
            self.screen.blit(t4, (32 * 15+15, 320))
            pygame.display.update()


if __name__ == "__main__":
    cli = Client()
    cli.play()

2020-07-02T20:40:53 点赞:1

【有福利】【源码星球发布会】这次,有全新的源码星球社区 中回复

dd

2020-07-04T14:39:59 点赞:0

【有福利】【源码星球发布会】这次,有全新的源码星球社区 中回复

dd

2020-07-04T14:41:06 点赞:0

【有福利】【源码星球发布会】这次,有全新的源码星球社区 中回复

dd

2020-07-04T14:41:12 点赞:0