棋盘代码_“用中学” >> [001]国际象棋棋盘绘制

主持人语

b63323153df829d59078cfd9ddd6a45f.png

借鉴王爱胜老师的“百香果”的做法,充分发挥团队的公众号的作用,从单纯的新闻展示升级到教学展示的主阵地。

聚焦 · 看点

随着新教材的实施,江苏省巫雪琴网络名师工作室同步开展了三个系列活动,分别是“新教材·云异构”、“研·说”、“一技之长”。当前阶段聚焦教学设计及说课、教学实施视频等展示。

01

国际象棋棋盘绘制   

本项目从学生机房单机必玩游戏“国际象棋”入手,引导学生先从设计者的角度宏观分析游戏设计的思路,再初步实现部分功能。根据学生的现有基础,确定当前阶段先聚焦“国际象棋棋盘的绘制”。项目实施用3节课完成。

学习目标

1.尝试从设计的视角来分析游戏,从宏观的角度了解游戏的设计方法。

2.通过棋盘项目,体验由“繁”至“简”思维过程,再经历由“简”趋“真”的实施方法。

3.在棋盘绘制的过程中初步掌握循环语句的用法。

学习过程

环节一 :热身

活动1:体验海龟画图

提供如下半成品代码

from turtle import *  # 引入turtle模块

forward(100)  #向前100像素

done()   #  保持屏幕

b72da29910e80a669709667d654a2362.png

活动2:画出一个正方形

资料:提供turtle学习资料学案中包括left、right方法的使用

说明:“重复”第一次出现在学生的代码中,这个环节先不深入解决“重复”的问题,正所谓“不愤不启,不悱不发”,等到学生感觉到不想办法解决“重复的问题”不行的时候再抛出循环,效果会更好。

环节二 :项目引入与聚焦

7e24f27a74c9aff387152bd72d3a19f6.png

游戏设计整体策略:

环境搭建

规则制定

规则程序实现

聚焦环境搭建中的棋盘制作

计算机科学中很重要的一种思想:自顶向下、逐步求精。

环节三 :项目分析

9aa683db79aeb0045e849cba6d236c4b.png

思路:

1.划线  2.填色

说明:也可以有其它解决方法,不同的设计思路会不同的实现方法。

环节四 :划线

活动3:手工画出棋盘

思考:从海龟爬行的角度,如何更为便捷。

抬笔与落笔:penup()  、pendown()  方法

活动4:编程实现棋盘的绘制

这个环节学生会用各自方法完成,但是一定会有很多环节重复。

活动5:找重复的代码,思考如何能让这些代码重复执行。

解释:

925879ee192b929324470c224d037eb9.png

for 循环变量  in  遍历结构:

  循环体 

活动6:修改程序,实现循环

f2d00274e5186455529474a8c62f8d62.png

提示:

1.缩进方法 Tab 整体向右,shift+Tab 整体向左

2.调试方法:tracer( ),tracer(False) 关闭绘制过程, tracer(True)打开绘制过程

环节五 :填色

活动7:完成一个小正方形填色

1.填色前的海龟位置的准备动作

2.填色

4084c1fc857773d3a57b4f6845b23b92.png

活动8:实现一排填色

1.完成一个正方形后的准备动作

penup()

forward(60)

a0cd2f05c9e18a1237db0474ad936af1.png fbfd36710e6d2cb8871d75863f4780f2.png

2.完成一排填色

572874992deb3152393b3cb056e7f664.png c9b7c93782a03804c40b38d13c6b89f5.png

完成一排后的准备动作

penup()

forward(-240)

left(90)

forward(30)

right(90)

pendown()

活动9:完成8排填色

1.完成8排填色

d11fd7d7145a16b5288e155d3545e5b3.png a11ae54977425ee2928a56336cdee836.png

2.实现错位

分析错位与行的关系,思考实现办法

用列举行数的方法 。

if i==0 or  i==2  or i==4 or  i==6 :

用奇偶行的方法。

if j % 2==0:

        forward(30)

else:

        forward(-30)

c619ab9493aeb957bb754e46bfac4e28.png

完整代码提供

from  turtle import*

#tracer(False)

#用for循环画横线

for i  in  range(9):

    forward(240)

    forward(-240)

    penup()

    left(90)

    forward(30)

    right(90)

    pendown()

#画横线与纵线中间过渡

right(90)

penup()

forward(30)

#用for循环画纵线

for j in range(9):

    pendown()

    forward(240)

    forward(-240)

    penup()

    left(90)

    forward(30)

    right(90)

#填色前准备

right(90)

penup()

forward(30)

#tracer(True)

#填色

tracer(True)

for j in range(8):

    if j % 2==0:

        forward(30)

    else:

        forward(-30)

    for i in range(4):

        begin_fill()

        fillcolor()

        for k in range(4):

            forward(30)

            left(90)

        end_fill()

        #一个方格后的准备动作

        penup()

        forward(60)

    #一排方块后的准备动作

    penup()

    forward(-240)

    left(90)

    forward(30)

    right(90)

    pendown()

done()

相关资料提供

a5b8c4ebd20ba1079eb7d980aae84aab.png 445416bce83fbec0b42a435e92a9a341.png

说明:部分代码借鉴网络。

本项目刚完成教学实施,效果还不错,后面还会简单介绍游戏规则与实现的算法思路,具体编程实现在当前阶段不再深入。

第一期推出自己的设计,算是抛砖引玉,后面将陆续推出更多老师的优秀设计。

662f9101501859c3827b8b50281efff6.png

钉钉群江苏信息教师联盟2

1

9d9395390a73a6d2def4064c60889907.png

交流与展示平台

2

fc78be7659e7c77d92b409f88ca97080.png

排版|工作室新闻组

文案|工作室新闻组

一朵云推动一朵云

一个灵魂唤醒另一个灵魂

信息技术 | 项目教学 | STEM教育 | 创客教育

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值