当前位置:   article > 正文

棋盘代码_【案例】 绘制国际象棋棋盘?(turtle 登场)

编程嵌套循环turtle结构国际象棋8*8

5d3911625ac0137312294468293aa155.png

案例介绍

今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8。

11bf6157e410f8bebb63042c9295b984.png
​国际象棋棋盘
turtle 绘图(海归绘图)很适合用来引导孩子学习编程,请想象绘图区有一只机器海龟,起始位置在 x-y 平面的(0, 0)点,先执行 import turtle,再执行 turtle.forward(15),它将朝所面对的 x 轴 正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度... 通过对这些命令的组合使用,我们可以轻松绘制出精美的形状和图案。——《turtle——海归绘图》

准备工作

我们需要使用 案例介绍 中提到的 turtle 基本使用方法,来一点一点绘制出这个棋盘,先绘制线条,然后再将对应的黑色块填充即可。

不需要安装额外的库,turtle 库是 Python 3 自带的库,只需要引用即可。

细节设计

  1. 先绘制棋盘线段。用两个 for 循环即可实现。
  2. 然后填充棋盘中的黑色块。使用双重循环实现,内层循环(2个 for 循环)以两行为一组,填充里面的黑色方块,外层循环控制哪一组(一共4组)。

代码汇总

  1. import turtle
  2. import tkinter as tk
  3. def draw_table():
  4. turtle.speed(20) # 绘图速度
  5. turtle.pensize(1) # 绘图笔画粗细
  6. turtle.pencolor("black") # 画笔颜色
  7. # 间隔大小
  8. interval = 30 # 棋盘格子大小
  9. # 棋盘长度
  10. length = interval * (8 / 2)
  11. # 绘制棋盘 先绘制横线再绘制纵线
  12. turtle.penup()
  13. turtle.goto(-length, length)
  14. for i in range(0, 9):
  15. turtle.pendown()
  16. turtle.goto(length, length - interval * i)
  17. turtle.penup()
  18. turtle.goto(-length, length - interval * (i + 1))
  19. turtle.penup()
  20. turtle.goto(-length, -length)
  21. for i in range(0, 9):
  22. turtle.pendown()
  23. turtle.goto(-length + interval * i, length)
  24. turtle.penup()
  25. turtle.goto(-length + interval * (i + 1), -length)
  26. # 填充 内层循环实现一次性绘制两行,而外层循环控制四次循环
  27. turtle.penup()
  28. turtle.goto(-length, length)
  29. turtle.fillcolor("black")
  30. for j in range(0, -8, -2):
  31. for i in range(1, 8, 2):
  32. turtle.goto(-length + interval * i, length + interval * j)
  33. turtle.pendown()
  34. turtle.begin_fill()
  35. turtle.goto(-length + interval * (i + 1), length + interval * j)
  36. turtle.goto(-length + interval * (i + 1),
  37. length + interval * j - interval)
  38. turtle.goto(-length + interval * i,
  39. length + interval * j - interval)
  40. turtle.goto(-length + interval * i, length + interval * j)
  41. turtle.end_fill()
  42. turtle.penup()
  43. for i in range(0, 8, 2):
  44. turtle.goto(-length + interval * i,
  45. length + interval * j - interval)
  46. turtle.pendown()
  47. turtle.begin_fill()
  48. turtle.goto(-length + interval * (i + 1),
  49. length + interval * j - interval)
  50. turtle.goto(-length + interval * (i + 1),
  51. length + interval * j - interval * 2)
  52. turtle.goto(-length + interval * i,
  53. length + interval * j - interval * 2)
  54. turtle.goto(-length + interval * i,
  55. length + interval * j - interval)
  56. turtle.end_fill()
  57. turtle.penup()
  58. turtle.mainloop()
  59. draw_table()

做一个 GIF 动画来详细展示绘制过程。

385aebee6c4917c5fd8b0d5ffa2853d8.gif

运行结果

71be29a5ec2eba6be51a50b7af26b14f.png
​绘制棋盘边界


97fe5e7885e46f5b497f8064feca9251.png
​填充颜色块


20da005570c34003a8de5d8d1e0f3955.png
​最终结果


后记

以上就是我们使用 turtle 练手的小项目了,关于 turtle 的其它操作可以参考 参考资料

参考资料

  • turtle 库官方文档:https://docs.python.org/zh-cn/3.8/library/turtle.html#introduction
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/167453
推荐阅读
相关标签
  

闽ICP备14008679号