資源簡介
中國象棋對戰
使用python語言實現
能夠實現雙人對戰(單機)
代碼片段和文件信息
import?pygame
import?pygame.font
import?sys
import?traceback
import?copy
from?math?import?sqrt
from?pygame.locals?import?*
pygame.font.init()
pygame.init()
?
i?=?50??#一格的距離
r?=?25??#棋子半徑
#繪制棋盤
def?Draw_qipan(screen):
????#棋盤背景色
????screen.fill((200200200))??
????#畫外框
????color1?=?(100100100)
????pygame.draw.rect(screencolor1[4040420470]5)
????#畫行和列
????color2?=?(000)
????for?i?in?range(111):
????????pygame.draw.line(screencolor2(5050*i)(45050*i))??
????for?i?in(19):
????????pygame.draw.line(screencolor2(50*i50)(50*i500))
????for?i?in?range(29):
????????pygame.draw.line(screencolor2(50*i50)(50*i250))
????????pygame.draw.line(screencolor2(50*i300)(50*i500))
????#畫‘士’路線
????color3?=?(000)
????pygame.draw.line(screen?color3?(20050)(300150))
????pygame.draw.line(screen?color3?(200150)(30050))?
????pygame.draw.line(screen?color3?(200500)(300400))
????pygame.draw.line(screen?color3?(200400)(300500))
????#畫‘悔棋’,‘重新開始’,‘退出’,‘楚河漢界’
????color4?=?(100100100)
????pygame.draw.rect(screencolor4[50020012040]3)
????pygame.draw.rect(screencolor4[50030012040]3)
????pygame.draw.rect(screencolor4[50040012040]3)
????font1?=?pygame.font.Font(‘C:\Windows\Fonts\STXINGKA.TTF‘20)
????font2?=?pygame.font.Font(‘C:\Windows\Fonts\STXINGKA.TTF‘30)
????text1?=?font1.render(“悔????棋“Truecolor4)
????text2?=?font1.render(“重新開始“Truecolor4)
????text3?=?font1.render(“退出游戲“Truecolor4)
????text4?=?font2.render(“楚?河?????????漢?界“Truecolor4)
????screen.blit(text1(520210))
????screen.blit(text2(520310))
????screen.blit(text3(520410))
????screen.blit(text4(150260))
?????
#繪制棋子
def?Draw_qizi(screencolorqizixy):
????red_color?=?(25500)
????black_color?=?(000)
????pygame.draw.circle(screen(128640)(xy)25)
????pygame.draw.circle(screen(255255128)(xy)20)?
????font1?=?pygame.font.Font(‘C:\Windows\Fonts\STHUPO.TTF‘32)?
????if?color?==?‘red‘:
????????q_color?=?red_color
????elif?color?==?‘black‘:
????????q_color?=?black_color
????screen.blit(font1.render(qizi[0]Trueq_color)(x-16y-16))
#繪制帶有棋盤的棋子
def?Draw_qipan_with_qizi(screen):??
????Draw_qipan(screen)
????for?qizi?in?hongqi.keys():
????????Draw_qizi(screenhongqi[qizi][‘color‘]qizihongqi[qizi][‘weizhi‘][0]hongqi[qizi][‘weizhi‘][1])
????for?qizi?in?heiqi.keys():
????????Draw_qizi(screenheiqi[qizi][‘color‘]qiziheiqi[qizi][‘weizhi‘][0]heiqi[qizi][‘weizhi‘][1])
????????
#通過位置尋找棋子
def?find(xy):
????for?qizi?in?hongqi.keys():
??????????if?sqrt((hongqi[qizi][‘weizhi‘][0]?-?x)**2+(hongqi[qizi][‘weizhi‘][1]-y)**2)???????????????return?[Trueqizi‘red‘]
????for?qizi?in?heiqi.keys():
??????????if?sqrt((heiqi[qizi][‘weizhi‘][0]?-?x)**2+(heiqi[qizi][‘weizhi‘][1]-y)**2)???????????????return?[Trueqizi‘black‘]
????return[False]
????????????
#判斷該位置有無棋子
def?weizhi_panduan(xy):
????for?qizi?in?hongqi.keys():
????????if?[xy]?==?hongqi[qizi][‘
- 上一篇:openmv 識別3個顏色 工程訓練大賽
- 下一篇:python文件詞頻統計
評論
共有 條評論