python turtle画中国象棋
时间: 2023-04-30 17:00:31 浏览: 87
好的,下面是Python Turtle画中国象棋的代码示例:
```python
import turtle
# 设置棋盘大小
board_size = 400
# 初始化画布和画笔
screen = turtle.Screen()
screen.setup(board_size + 50, board_size + 50)
screen.bgcolor("white")
pen = turtle.Turtle()
pen.speed(0)
pen.hideturtle()
# 画棋盘
def draw_board():
pen.penup()
pen.goto(-board_size/2, -board_size/2)
pen.pendown()
pen.pensize(2)
for i in range(4):
pen.forward(board_size)
pen.left(90)
pen.pensize(1)
for i in range(2):
pen.penup()
pen.goto(-board_size/2, -board_size/2 + board_size/3*(i+1))
pen.pendown()
pen.forward(board_size)
pen.penup()
pen.goto(-board_size/2 + board_size/3, -board_size/2)
pen.pendown()
pen.right(90)
pen.forward(board_size/3*2)
pen.penup()
pen.goto(board_size/2 - board_size/3, -board_size/2)
pen.pendown()
pen.forward(board_size/3*2)
# 画棋子
def draw_piece(x, y, color):
pen.penup()
pen.goto(x, y)
pen.pendown()
pen.fillcolor(color)
pen.begin_fill()
pen.circle(board_size/30)
pen.end_fill()
# 初始化棋子位置
pieces = [
{"x": -board_size/2 + board_size/6, "y": -board_size/2 + board_size/6, "color": "red"},
{"x": -board_size/2 + board_size/6*5, "y": -board_size/2 + board_size/6, "color": "red"},
{"x": -board_size/2 + board_size/6, "y": -board_size/2 + board_size/6*5, "color": "red"},
{"x": -board_size/2 + board_size/6*5, "y": -board_size/2 + board_size/6*5, "color": "red"},
{"x": -board_size/2 + board_size/6*2, "y": -board_size/2 + board_size/6, "color": "red"},
{"x": -board_size/2 + board_size/6*4, "y": -board_size/2 + board_size/6, "color": "red"},
{"x": -board_size/2 + board_size/6*2, "y": -board_size/2 + board_size/6*5, "color": "red"},
{"x": -board_size/2 + board_size/6*4, "y": -board_size/2 + board_size/6*5, "color": "red"},
{"x": -board_size/2 + board_size/6, "y": -board_size/2 + board_size/3, "color": "red"},
{"x": -board_size/2 + board_size/6*5, "y": -board_size/2 + board_size/3, "color": "red"},
{"x": -board_size/2 + board_size/6, "y": -board_size/2 + board_size/3*4, "color": "black"},
{"x": -board_size/2 + board_size/6*5, "y": -board_size/2 + board_size/3*4, "color": "black"},
{"x": -board_size/2 + board_size/6*2, "y": -board_size/2, "color": "black"},
{"x": -board_size/2 + board_size/6*4, "y": -board_size/2, "color": "black"},
{"x": -board_size/2 + board_size/6*2, "y": -board_size/2 + board_size/3*5, "color": "black"},
{"x": -board_size/2 + board_size/6*4, "y": -board_size/2 + board_size/3*5, "color": "black"},
{"x": -board_size/2 + board_size/2, "y": -board_size/2 + board_size/3, "color": "black"},
{"x": -board_size/2 + board_size/2, "y": -board_size/2 + board_size/3*4, "color": "red"}
]
# 画棋盘和棋子
draw_board()
for piece in pieces:
draw_piece(piece["x"], piece["y"], piece["color"])
# 点击棋子移动
def move_piece(x, y):
global pieces
for piece in pieces:
if abs(x - piece["x"]) < board_size/30 and abs(y - piece["y"]) < board_size/30:
piece["x"] = x
piece["y"] = y
pen.clear()
draw_board()
for p in pieces:
draw_piece(p["x"], p["y"], p["color"])
break
turtle.onscreenclick(move_piece)
turtle.done()
```
这个代码示例实现了一个简单的中国象棋游戏,可以点击棋子进行移动。你可以在本地Python环境中运行这个代码,或者将它复制到在线Python编辑器中运行。