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...