python3 turtle 画国际象棋棋盘

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan import turtle n = 60 # 每行间隔
x = -300 # x初始值
y = -300 # x初始值 turtle.speed(11)
turtle.pensize(2)
# 先画8*8的正方形,并按要求涂黑
for i in range(8):
for j in range(1, 9):
turtle.penup()
turtle.goto(x + i * n, y + j * n )
turtle.pendown()
if (i + j) % 2 == 1: #不涂黑
for index in range(4):
turtle.forward(n)
turtle.left(90)
elif (i + j) % 2 == 0: #涂黑
turtle.begin_fill()
turtle.fillcolor('black')
for index in range(4):
turtle.forward(n)
turtle.left(90)
turtle.end_fill()
turtle.penup() # 再画外面两个正方形
x1 = x - n * 0.12
y1 = y - n * 0.12 + n
turtle.goto(x1, y1)
turtle.pendown()
turtle.pensize(4)
for index in range(4):
turtle.forward(n * 8 + 2 * n * 0.12)
turtle.left(90)
turtle.penup()
# ----------------------------------------------- x2 = x - n * 0.3
y2 = y - n * 0.3 + n
turtle.goto(x2, y2)
turtle.pendown()
turtle.pensize(10)
for index in range(4):
turtle.forward(n * 8 + 2 * n * 0.3)
turtle.left(90) turtle.hideturtle()
turtle.done()

  

稍作修改后,代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan import turtle n = 60 # 每行间隔,小格子边长
x = -300 # x初始值
y = -300 # x初始值 def main():
turtle.speed(11)
turtle.pensize(2)
turtle.penup()
# 先画8*8的正方形,并按要求涂黑
for i in range(8):
for j in range(8):
turtle.goto(x + i * n, y + j * n)
if (i + j) % 2 == 0: # 白格子
draw_square(n, "white")
elif (i + j) % 2 == 1: # 黑格子
draw_square(n, "black") # 再画外面两个正方形
x1 = x - n * 0.12
y1 = y - n * 0.12
n1 = n * 8 + 2 * n * 0.12
turtle.goto(x1, y1)
turtle.pensize(4)
draw_square_2(n1) # ----------------------------------------------- x2 = x - n * 0.3
y2 = y - n * 0.3
n2 = n * 8 + 2 * n * 0.3
turtle.goto(x2, y2)
turtle.pensize(10)
draw_square_2(n2) turtle.hideturtle()
turtle.done() def draw_square(length:float, fill_color:str):
"""
画正方形并填充
:param length: 边长
:param fill_color: 填充颜色
:return: 无
"""
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor(fill_color)
for index in range(4):
turtle.forward(length)
turtle.left(90)
turtle.end_fill()
turtle.penup() def draw_square_2(length:float):
"""
画正方形,不填充
:param length: 边长
:return: 无
"""
turtle.pendown()
for index in range(4):
turtle.forward(length)
turtle.left(90)
turtle.penup() if __name__ == '__main__':
main()

  

效果图如下:

python3 turtle 画国际象棋棋盘的更多相关文章

  1. python3 turtle 画围棋棋盘

    python3 环境 利用turtle模块画出 围棋棋盘 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan impor ...

  2. 使用turtle库画国际象棋棋盘

    import turtle n = 60 # 每行间隔,小格子边长 x = -300 # x初始值 y = -300 # x初始值 def main(): turtle.speed(11) turtl ...

  3. python3 turtle画正方形、矩形、正方体、五角星、奥运五环

    python3 环境 turtle模块 分别画出 正方形.矩形.正方体.五角星.奥运五环 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:H ...

  4. Python语言程序设计之二--用turtle库画围棋棋盘和正、余弦函数图形

    这篇笔记依然是在做<Python语言程序设计>第5章循环的习题.其中有两类问题需要记录下来. 第一是如何画围棋棋盘.围棋棋盘共有19纵19横.其中,位于(0,0)的星位叫天元,其余8个星位 ...

  5. Python3 turtle安装和使用教程

    Python3 turtle安装和使用教程   Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数 ...

  6. GUI(国际象棋棋盘)

    package com.niit.javagui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridB ...

  7. python运用turtle 画出汉诺塔搬运过程

    python运用turtle 画出汉诺塔搬运过程 1.打开 IDLE 点击File-New File 新建立一个py文件 2.向py文件中输入如下代码 import turtle class Stac ...

  8. 函数纹理(国际象棋棋盘纹理&粗布纹理)MFC

    函数纹理(国际象棋棋盘纹理&粗布纹理)MFC实现  源码百度云下载 国际象棋棋盘纹理(效果图见最后) //国际象棋纹理函数 //g(u, v) = a , 向下取整(8u)+向下取整(8v) ...

  9. day 03 turtle 画鹅

    turtle 画鹅 import turtle t=turtle turtle.speed(10) t. setup(800,600) #画头 turtle.penup() turtle.goto(0 ...

随机推荐

  1. ecshop微信通中微信自动登录的设置方法

    ecshop微信通中微信自动登录的设置方法 来 源:共享世纪 作 者:网络 时间:2015-12-03 点击: 4017 注意:微信自动登录,必须同时满足两个条件: 第一.微信公众号必须是服务号经过认 ...

  2. HTML5:标记文字

    文本层面的元素(简称文本元素).把这些元素加入文本其中,也就引入了结构和含义. HTML5规范明白指出:使用元素应该全然从元素的语义出发.但这类元素中有些元素的含义很明白,有些则比較含糊. 在元素的使 ...

  3. 对string的一些扩展函数

    对string作了一些扩展,包含string转化为int.string转化为double.string转化为bool.打印系统当前时间.但没有解决数据溢出的问题,请大神帮忙解决! //头文件 /*pa ...

  4. js的类和继承

    因为我使用java语言入门的编程,所以对javascript的类和继承有种想当然一样,或者是差不多的感觉,但实际上两者还是有很多不同的 首先我们说类,javascript中类的实现是基于原型继承机制的 ...

  5. html元素的分类有哪些?

    今天零度给大家讲一下基本的html元素分类: HTML元素的分类其实主要有两种元素构成——块级元素和内联元素. html元素的分类有块级元素和行内元素 一.块级元素(block)的特点: 1.总是在新 ...

  6. ElasticSearch、Kibana Web管理

    ElasticSearch的Web管理 http://localhost:9200/ http://localhost:9200/cluster/health?pretty http://localh ...

  7. mysql字符设置乱码问题

    在操作系统中对于任意一个字符而言是没有编码格式概念的:同样的字母在不同的编码集里面可能代表不同的东西:关键在于你用什么样的软件打开它,软件本身是以什么样的编码格式来显示你的字符,那么你的字符当前就是什 ...

  8. IFC数据模式架构的四个概念层

    IFC模型体系结构由四个层次构成, 从下到上依次是 资源层(Resource Layer).核心层(Core Layer).交互层(Interoperability Layer).领域层(Domain ...

  9. PythonOOP面向对象编程1

    什么是对象? 对象是指现实中的物体或实体(拥有一系列变量.函数(方法)的) 什么事面向对象? 把一切看成对象(实例),让对象和对象之间建立关联关系 对象都有什么特征? 属性(名词)实例变量 姓名.年龄 ...

  10. [Javascript] Identify the most important words in a document using tf-idf in Natural

    Tf-idf, or term frequency-inverse document frequency, is a statistic that indicates how important a ...