Python開發中國象棋實戰(附原始碼)

2022-05-16 14:20:52 字數 2539 閱讀 4994

pygame 做的中國象棋,一直以來喜歡下象棋,寫了 python 就拿來做乙個試試,水平有限,電腦走法水平低,需要在下次版本中更新電腦走法,希望原始碼能幫助大家更好的學習 python。總共分為四個檔案,chinachess.py 為主檔案,constants.py 資料常量,pieces.py 棋子類,走法,computer.py 電腦走法計算。

ps:另外很多人在學習python的過程中,往往因為遇問題解決不了或者沒好的教程從而導致自己放棄,為此我整理啦從基礎的python指令碼到web開發、爬蟲、django、資料探勘等【pdf等】需要的可以進python全棧開發交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,裡面有最新python教程專案可拿,不懂的問題有老司機解決哦,一起相互監督共同進步

chinachess.py 為主檔案

import pygame

import time

import constants

import pieces

import computer

class maingame():

window = none

start_x = constants.start_x

start_y = constants.start_y

line_span = constants.line_span

max_x = start_x + 8 * line_span

max_y = start_y + 9 * line_span

player1color = constants.player1color

player2color = constants.player2color

putdownflag = player1color

piecesselected = none

button_go = none

pieceslist =

def start_game(self):

maingame.window = pygame.display.set_mode([constants.screen_width, constants.screen_height])

pygame.display.set_caption("天青-中國象棋")

maingame.button_go = button(maingame.window, "重新開始", constants.screen_width - 100, 300) # 建立開始按鈕

self.piecesinit()

while true:

time.sleep(0.1)

# 獲取事件

maingame.window.fill(constants.bg_color)

self.drawchessboard()

#maingame.button_go.draw_button()

self.piecesdisplay()

self.victoryordefeat()

self.computerplay()

self.getevent()

pygame.display.update()

pygame.display.flip()

def drawchessboard(self):

mid_end_y = maingame.start_y + 4 * maingame.line_span

min_start_y = maingame.start_y + 5 * maingame.line_span

for i in range(0, 9):

x = maingame.start_x + i * maingame.line_span

if i==0 or i ==8:

y = maingame.start_y + i * maingame.line_span

pygame.draw.line(maingame.window, constants.black, [x, maingame.start_y], [x, maingame.max_y], 1)

else:

pygame.draw.line(maingame.window, constants.black, [x, maingame.start_y], [x, mid_end_y], 1)

pygame.draw.line(maingame.window, constants.black, [x, min_start_y], [x, maingame.max_y], 1)

for i in range(0, 10):

x = maingame.start_x + i * maingame.line_span

y = maingame.start_y + i * maingame.line_span

pygame.draw.line(maingame.window, constants.black, [maingame.start_x, y]

使用Qt開發中國象棋(四) 步時控制

一般的象棋遊戲中都會限時,超過時間沒走棋,就算輸了。這個遊戲採用的是步時限制。走棋的時候會有提示,像下面那樣 介面用的是乙個qlable來顯示 紅方走棋 後面顯示時間的用的是乙個qlcdnumber的控制項。顯示時間可以用定時器的方式或者執行緒的方式,我這裡用的是執行緒的方式。採用的是執行緒和條件變...

中國象棋遊戲開發計畫

新 中國象棋開發計畫 一 系統特點 1 實體象棋,絕非普通的象棋遊戲 2 玩家手感好,棋子採用 實木 象牙 製作。3 具備自動擺棋,無須人工干預 4 可以進行 人 機 人 人 隊長 5 系統自動計時 評分 6 二 系統設計思路 三 擺棋 實現自動擺棋是本系統成功的關鍵,只有系統可以正確的擺放棋子,才...

Qt版本中國象棋開發(三)

實現功能 棋子初始化及走棋規則 棋子類 1 ifndef stone h 2 define stone h 34 include 5 6class stone7 1314 int row 棋子所在行 15int col 棋子所在列 16 type type 棋子型別 jiang,che.1718 1...