Pygame's Chinese chess has always been fond of playing chess. When we write python, we will try it. The level of computer walking is limited and the level of computer walking is low. We need to update the computer walking in the next version. We hope that the source code can help you learn Python better. There are four files in total: chinachess.py as the main file, constants.py as the data constant, pieces.py as the chess sub class, walking method, and computer.py as the computer walking method.
PS: in the process of learning python, many people often give up because they can't solve problems or don't have good tutorials. Therefore, I sorted out the basic Python script, web development, crawler, django, data mining and other [PDF] needs, which can be used in the full stack of Python development and communication. Skirt: after a long time of martial arts, you can find it under the conversion of thinking (Digital homophony) Here we are. There are the latest Python tutorial projects to take. The problems that we don't understand can be solved by the old driver. We can supervise each other and make progress together
chinachess.py is the main file
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("Azure-Chinese chess")
MainGame.button_go = Button(MainGame.window, "Restart", constants.SCREEN_WIDTH - 100, 300) # Create start button
self.piecesInit()
while True:
time.sleep(0.1)
# Get events
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]