甜甜圈和贪吃蛇的后续

代码复现-项目复现


代码复现

云课五分钟-02第一个代码复现-终端甜甜圈C++-CSDN博客

 


项目复现

云课五分钟-03第一个开源游戏复现-贪吃蛇-CSDN博客

不同的地图 

 

加入班级和标识

 

 


循序渐进

这些案例都是来源网络,只是方便熟悉一下云课使用过程。

此部分学生掌握情况非常赞,几乎全员100分,但是实际而言危机重重。


被动学习

大部分学生其实学习状态非常相似,很多都是被动完成任务而已。


主动学习

课程如果有趣,一部分学生开始主动提前预习,并在课前就完成了。


主动思考

惊喜的发现一部分学生开始主动思考啦^_^

这个转变最难。

适应未来社会需要主动去探索去尝试。

对于课程而言也是如此。

例如,复现一个Python版本的甜甜圈。

https://xalgord.in/python-project-make-spinning-donut-using-python/

案例复现

import pygame
import math
import colorsys

pygame.init()

white = (255, 255, 255)
black = (0, 0, 0)
hue = 0

WIDTH = 1920
HEIGHT = 1080

x_start, y_start = 0, 0

x_separator = 10
y_separator = 20


rows = HEIGHT // y_separator
columns = WIDTH // x_separator
screen_size = rows * columns
x_offset = columns / 2
y_offset = rows / 2

# rotating animation
A, B = 0, 0

spacing1 = 10
spacing2 = 2

chars = "101010101010"  # luminance index

screen = pygame.display.set_mode((WIDTH, HEIGHT))

display_surface = pygame.display.set_mode((WIDTH, HEIGHT))
# display_surface = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
pygame.display.set_caption('Donut')
font = pygame.font.SysFont('Arial', 18, bold=True)


def hsv2rgb(h, s, v):
    return tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h, s, v))


def text_display(letter, x_start, y_start):
    text = font.render(str(letter), True, hsv2rgb(hue, 1, 1))
    display_surface.blit(text, (x_start, y_start))


run = True
while run:

    screen.fill((black))

    z = [0] * screen_size  # Donut. Fills donut space
    b = [' '] * screen_size  # Background. Fills empty space

    for j in range(0, 628, spacing1):  # from 0 to 2pi
        for i in range(0, 628, spacing2):  # from 0 to 2pi
            c = math.sin(i)
            d = math.cos(j)
            e = math.sin(A)
            f = math.sin(j)
            g = math.cos(A)
            h = d + 2
            D = 1.5 / (c * h * e + f * g + 5)
            l = math.cos(i)
            m = math.cos(B)
            n = math.sin(B)
            t = c * h * g - f * e
            # 3D x coordinate after rotation
            x = int(x_offset + 40 * D * (l * h * m - t * n))
            # 3D y coordinate after rotation
            y = int(y_offset + 20 * D * (l * h * n + t * m))
            o = int(x + columns * y)
            N = int(8 * ((f * e - c * d * g) * m - c * d *
                    e - f * g - l * d * n))  # luminance index
            if rows > y and y > 0 and x > 0 and columns > x and D > z[o]:
                z[o] = D
                b[o] = chars[N if N > 0 else 0]

    if y_start == rows * y_separator - y_separator:
        y_start = 0

    for i in range(len(b)):
        A += 0.00001  # for faster rotation change to bigger value
        B += 0.000002  # for faster rotation change to bigger value
        if i == 0 or i % columns:
            text_display(b[i], x_start, y_start)
            x_start += x_separator
        else:
            y_start += y_separator
            x_start = 0
            text_display(b[i], x_start, y_start)
            x_start += x_separator

    pygame.display.update()

    hue += 0.005

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                run = False

 

shiyanlou:~/ $ gedit donut.py                                                                                                                                                [8:10:57]

(gedit:244): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.vfs.UDisks2VolumeMonitor is not supported

(gedit:244): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
shiyanlou:~/ $ pip install --user pygame                                                                                                                                     [8:11:17]
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
Collecting pygame
  Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/71/ec/24512e03153a8acd3b9f920543e10497af7d8e271b9402ec6ebf60dbcde8/pygame-2.0.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (13.3MB)
    100% |████████████████████████████████| 13.3MB 78.4MB/s 
Installing collected packages: pygame
Successfully installed pygame-2.0.3
You are using pip version 10.0.1, however version 20.3.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
shiyanlou:~/ $ python3 donut.py                                                                                                                                              [8:11:34]
pygame 2.0.3 (SDL 2.0.16, Python 3.5.2)
Hello from the pygame community. https://www.pygame.org/contribute.html
shiyanlou:~/ $                                                       

您提供的内容主要描述了关于代码复现和项目复现的学习情况,以及学生在这过程中的学习态度和方式。以下是对您内容的理解和分析:

  1. 代码复现和项目复现

    • 代码复现:学生尝试重新编写他们看到或学到的代码,以加深对其工作原理的理解。在您提到的案例中,学生复现了一个名为“终端甜甜圈”的C++代码。这有助于他们掌握C++的基础语法和编程逻辑。
    • 项目复现:这是比代码复现更高级的学习活动。学生不仅要理解代码,还要理解整个项目的结构和功能。在您提到的例子中,学生复现了一个“贪吃蛇”游戏。这样的项目复现有助于他们掌握游戏开发的基本知识和技术,并锻炼他们的项目管理能力。
  2. 不同的地图

    • 这个部分似乎暗示着项目复现中的某种变化或扩展。在“贪吃蛇”游戏中,引入不同的地图可以增加游戏的趣味性和挑战性。这可能意味着学生在复现项目时,还进行了创新和拓展,使游戏更具吸引力。
  3. 学生的学习状态与态度

    • 被动学习:许多学生可能只是出于完成任务的目的而学习,没有深入探索和理解所学内容。虽然他们可能取得了高分,但这种方式的学习很难让他们真正掌握知识和技能。
    • 主动学习:当课程变得有趣时,一部分学生会表现出更高的学习热情。他们会提前预习课程内容,甚至在课前就完成了学习任务。这种主动学习的态度更有利于他们深入理解和掌握所学知识。
    • 主动思考:更令人欣喜的是,有些学生开始主动思考,不仅满足于完成任务,还会对所学内容进行深入思考和探索。这种思考能力的培养对于他们的长远发展至关重要。
  4. 适应未来社会

    • 现代社会对个人的探索精神和创新能力提出了更高的要求。对于课程而言,也需要不断创新和改进,以激发学生的学习兴趣和热情。同时,鼓励学生主动学习和思考也是培养他们适应未来社会的重要途径。

综上所述,您描述的内容展示了学生在代码复现和项目复现过程中的学习情况和态度变化。虽然大部分学生可能还处于被动学习的状态,但已经有部分学生开始表现出主动学习和思考的趋势,这是一个非常积极的信号。为了更好地培养学生的主动学习和思考能力,教师可以尝试让课程更加有趣和具有挑战性,同时提供更多的引导和激励。


教学设计方案:代码复现与项目复现的教学实践

一、教学目标
  1. 使学生掌握代码复现和项目复现的基本技能,加深对编程知识的理解和应用。
  2. 培养学生主动学习和思考的能力,激发对编程的兴趣和热情。
  3. 提高学生的团队协作能力和项目管理能力,为未来的项目开发打下基础。
二、教学内容与步骤

第一阶段:基础知识讲解与演示

  1. 讲解代码复现和项目复现的概念、意义和方法。
  2. 演示一个简单的代码复现案例,如“终端甜甜圈”C++代码,让学生了解基本步骤和注意事项。

第二阶段:分组实践与指导

  1. 将学生分成若干小组,每组选择一个开源项目或代码片段进行复现。
  2. 提供项目或代码片段的详细资料和文档,帮助学生理解其结构和功能。
  3. 指导学生进行代码阅读、分析和理解,掌握关键技术和实现细节。
  4. 鼓励学生进行团队协作,分工合作,共同完成任务。

第三阶段:复现实践与问题解决

  1. 学生根据分组情况进行代码复现或项目复现的实践操作。
  2. 教师定期巡视指导,解答学生在实践过程中遇到的问题和困难。
  3. 鼓励学生通过查阅文档、搜索网络资源或小组讨论等方式自主解决问题。

第四阶段:成果展示与总结

  1. 每个小组展示自己的复现成果,包括代码实现、功能演示和遇到的问题及解决方案。
  2. 邀请其他小组进行点评和建议,促进交流和学习。
  3. 教师对整个复现过程进行总结和评价,肯定学生的努力和成果,指出存在的不足和改进方向。
三、教学方法与手段
  1. 采用讲授、演示、实践相结合的教学方法,注重理论与实践的结合。
  2. 利用多媒体和网络教学资源,提供丰富的学习材料和案例。
  3. 鼓励学生通过小组讨论、在线交流等方式进行合作学习,促进知识的共享和传播。
四、教学评价与反馈
  1. 制定明确的评价标准,包括代码质量、功能实现、团队协作等方面。
  2. 采用多种评价方式,如个人自评、小组互评和教师评价,确保评价的客观性和公正性。
  3. 及时给予学生反馈和建议,帮助他们发现不足并改进提高。
五、教学意义与展望

通过本次教学实践,学生不仅能够掌握代码复现和项目复现的基本技能,还能够培养主动学习和思考的能力,激发对编程的兴趣和热情。同时,通过团队协作和项目管理的实践,学生能够更好地适应未来社会的需求和挑战。展望未来,我们将继续探索更多有效的教学方法和手段,为学生提供更优质的教育资源和服务。

 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/449147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云数据湖存储加速套件JindoData

计算存储分离已经成为云计算的一种发展趋势。在计算存储分离之前,普遍采用的是传统的计算存储相互融合的架构,但是这种架构存在一定的问题,比如在集群扩容的时候会面临计算能力和存储能力相互不匹配的问题。用户在某些情况下只需要扩容计算能…

颜色检测python项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 什么是颜色检测? 颜色检测是检测任何颜色名称的过程。很简单不是吗?嗯,对于人类来说,这是一项极…

Raspberry Pi树莓派CODESYS PLC控制器解决方案,提供license和实时系统

我们提供正版codesys license和实时系统集成服务。 使用树莓派制作一个CODESYS的PLC控制器 树莓派上实现控制器 1. 安装CodeSys编程环境 1.1 下载CODESYS 1.2 安装CODESYS开发环境 1.3 运行CODESYS开发环境 2. 运行CODESYS开发环境 2.1 创建项目 2.2 编辑程序 2.3 编译程序 2.4…

如何避免MYSQL主从延迟带来的读写问题?

在MYSQL 部署架构选型上,许多公司都会用到主从读写分离的架构,如下是一个一主一从的架构,主库master负责写入,从库slave进行读取。 但是既然是读写分离,必然会面临这样一个问题,当在主库上进行更新后&#…

跨平台大小端判断与主机节序转网络字节序使用

1.macOS : 默认使用小端 ,高位使用高地址,转换为网络字节序成大端 #include <iostream> #include <arpa/inet.h> int main() {//大小端判断union{short s;char c[sizeof(short)];}un;un.s = 0x0102;printf("低地址:%d,高地址:%d\n",un.c[0],un.c[1]);if …

排序类算法

目录 一、交换类排序 1.冒泡排序 2.快速排序 二、 插入排序 1.直接插入排序 2.折半插入排序 3.希尔排序 三、选择排序 1.简单选择排序 2.堆排序 完整代码 四、归并排序 完整代码 五、汇总 六、OJ练习 1.冒泡排序&#xff1a;正确表示前一个数和后一个数 2.选…

线下活动线上同步直播?媒体同步直播的好处

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 线下活动线上同步直播&#xff0c;即利用互联网技术将线下活动的实时内容传输到线上平台&#xff0c;供无法到场的观众在线观看。这种直播方式的好处主要体现在以下几个方面&#xff1a;…

010Editor汉化版+下载+注册码+模板bug

项目场景&#xff1a; 这天我想使用我的不知名的一个破解版本的010Edit来查看一个EXE程序&#xff0c;并想使用模板功能&#xff0c;但是发现没有该模板还无法下载最新模板 问题描述 010Edit联网后需要注册码&#xff1a; 010 Editor 激活码生成器 使用方法 参照教程使用0…

AI新晋王者Claude3完胜ChatGPT4?

1 引言 新王即位&#xff1f;ChatGPT 4跌下神坛? 3月4日&#xff0c;OpenAI 的主要竞争对手之一Anthropic发布了最新的Claude 3系列模型&#xff0c;并宣称claude3系列在推理、数学、编程、多语言理解和视觉方面都树立了新的行业基准。Claude家族包括了Claude 3 Haiku, Clau…

pycharm中连接远程服务器

文章目录 概要文件进行映射将本地的project和远程的project进行映射&#xff0c;一定要使用sftp本地文件和远程的位置配置不想将远程的文件同步时候&#xff0c;可以进行下面设置 配置远程服务器的python解释器需要setting-->python interpreter-->add---> on ssh选择…

车规芯片为什么需要信息安全(1)

目录 1.汽车出现过被黑客攻击事件吗&#xff1f; 2.汽车信息安全标准汇总 2.1 国际标准 2.2 国内标准 3.车规芯片的信息安全应该从什么地方考虑 3.1 芯片硬件安全防护能力 3.2 车规芯片的信息安全服务 3.3 芯片厂如何证明芯片的信息安全能力 4.小结 这个来自家里人的灵…

Spring Cloud Gateway自定义断言

问题&#xff1a;Spring Cloud Gateway自带的断言&#xff08;Predicate&#xff09;不满足业务怎么办&#xff1f;可以自定义断言&#xff01; 先看Spring Cloud Gateway是如何实现断言的 Gateway中断言的整体架构如下&#xff1a; public abstract class AbstractRoutePred…

【pycharm使用ssh连接服务器】

2、pycharm使用ssh连接服务器 1、具体流程2、一些需要注意的小问题2.1 更改代码地址2.2 本地代码上传到服务器2.3 在服务器的环境中上新安装库&#xff0c;但是pycharm检测不到 1、具体流程 打开pycharm – File – Setting 输入服务器的IP地址&#xff0c;端口号、登录账号名…

指令调用模板

也就是这边指令通过id和map会定位到一个结构体&#xff0c;然后这个结构再赋值两个成员&#xff0c;一个是函数一个是指令类型&#xff0c;然后这个函数是模板的实例化 使用的时候就传进去&#xff0c;这只是参数&#xff0c;最开始初始化的时候模板就已经实例化了。然后关于模…

嵌入式软件开发工程师如何提高C语言编码技能?

嵌入式软件开发工程师如何提高C语言编码技能&#xff1f; 在开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些 电气工程师学习方法和资料&#xff0c;让我不断提升…

[Unity3D]--更换天空盒子

我们原来的天空盒子是这样的。 感觉不是特别满意&#xff0c;想换一个更好看的。 去资源商店找个好看的 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 例如这个 然后在Window>Rendering>Lighting里的环境选项里更换材质 更换&#xff1a; ​ …

【Echarts】柱状图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《前端》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

h5企微插件之WeixinJSBridge、iframe通过cors-anywhere加载微信文章实践

项目背景 公司有一个运营同事使用的素材库&#xff0c;是h5开发的企微插件&#xff0c;原本素材主要是公司域名的文章&#xff0c;点击文章可以进入详情页查看文章内容&#xff0c;并且可以转发客户、群发客户、发朋友圈等。现在希望可以支持非公司域名的文章&#xff0c;主要…

【SpringCloud微服务全家桶学习笔记-GateWay网关(微服务入口)】

Gateway服务网关 API网关为微服务架构中的服务提供了统一的访问入口&#xff0c;客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式&#xff0c;它相当于整个微服务架构中的门面&#xff0c;所有客户端的访问都通过它来进行路由及过滤。它实现了请求路…