甜甜圈和贪吃蛇的后续

代码复现-项目复现


代码复现

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

 


项目复现

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

不同的地图 

 

加入班级和标识

 

 


循序渐进

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

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


被动学习

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


主动学习

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


主动思考

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

这个转变最难。

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

对于课程而言也是如此。

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

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

案例复现

import pygame
import math
import colorsyspygame.init()white = (255, 255, 255)
black = (0, 0, 0)
hue = 0WIDTH = 1920
HEIGHT = 1080x_start, y_start = 0, 0x_separator = 10
y_separator = 20rows = HEIGHT // y_separator
columns = WIDTH // x_separator
screen_size = rows * columns
x_offset = columns / 2
y_offset = rows / 2# rotating animation
A, B = 0, 0spacing1 = 10
spacing2 = 2chars = "101010101010"  # luminance indexscreen = 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 spaceb = [' '] * screen_size  # Background. Fills empty spacefor j in range(0, 628, spacing1):  # from 0 to 2pifor i in range(0, 628, spacing2):  # from 0 to 2pic = math.sin(i)d = math.cos(j)e = math.sin(A)f = math.sin(j)g = math.cos(A)h = d + 2D = 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 rotationx = int(x_offset + 40 * D * (l * h * m - t * n))# 3D y coordinate after rotationy = 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 indexif rows > y and y > 0 and x > 0 and columns > x and D > z[o]:z[o] = Db[o] = chars[N if N > 0 else 0]if y_start == rows * y_separator - y_separator:y_start = 0for i in range(len(b)):A += 0.00001  # for faster rotation change to bigger valueB += 0.000002  # for faster rotation change to bigger valueif i == 0 or i % columns:text_display(b[i], x_start, y_start)x_start += x_separatorelse:y_start += y_separatorx_start = 0text_display(b[i], x_start, y_start)x_start += x_separatorpygame.display.update()hue += 0.005for event in pygame.event.get():if event.type == pygame.QUIT:run = Falseif 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 pygameDownloading 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. 及时给予学生反馈和建议,帮助他们发现不足并改进提高。
五、教学意义与展望

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

 


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV 图像的几何变换

一、图像缩放 1.API cv2.resize(src, dsize, fx0,fy0,interpolation cv2.INTER_LINEAR) 参数: ①src :输入图像 ②dsize:绝对尺寸 ③fx,fy:相对尺寸 ④interpolation:插值方法 2.代码演示 import cv2 …

携手亚信安慧AntDB,在数智化浪潮中乘风破浪

随着大数据时代的到来,对数据库的需求愈发强烈。在这一背景下,国产数据库逐渐崭露头角,亚信安慧AntDB作为重要的代表产品之一正积极参与到激烈的市场竞争中。亚信安慧AntDB不仅追求技术的革新和突破,同时也致力于满足用户日益增长…

AVCE - AV Evasion Craft Online 更新 8 种加载方式 - 过 WD 等

免责声明:本工具仅供安全研究和教学目的使用,用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任,且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规,并理解并同意本声明…

2023年中国高校大数据挑战赛D题参考论文发布(全网首发)

腾讯文档】2023年大数据挑战赛资料说明 https://docs.qq.com/doc/DSEpWUVFySm1ObFB0 基于数据分析的行业职业技术培训能力评价 摘要 中国是制造业大国,产业门类齐全,每年需要培养大量的技能娴熟的技术工人进入工厂。本文将基于题目给出的数据&#x…

Java——正则表达式详解

目录 Java正则表达式1、正则表达式语法1.1、基本的元字符1.2、数量元字符1.3、位置元字符1.4、特殊字符元字符1.5、回溯引用和前后查找1.6、大小写转换1.7、匹配模式 2、Java中的正则表达式2.1、概述2.2、获取匹配位置2.3、捕获组 3、匹配单个字符3.1、匹配纯文本3.2、匹配任意…

讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so

1.需求 最近linux下的Qt项目中要连接oracle数据库,用户需要我们访问他们的oracle数据库,查询数据 2.遇到的问题 qt连接oracle数据库需要oracle的驱动库libqsqloci.so插件,需要编译下,之前没有编译过,看了网上的…

蓝桥杯真题讲解:异或和之和 (拆位、贡献法)

蓝桥杯真题讲解&#xff1a;异或和之和 &#xff08;拆位、贡献法&#xff09; 一、视频讲解二、正解代码 一、视频讲解 蓝桥杯真题讲解&#xff1a;异或和之和 &#xff08;拆位、贡献法&#xff09; 二、正解代码 //拆位考虑 #include<bits/stdc.h> #define endl &…

【c++】string类的使用及模拟实现

1.我们为什么要学习string类&#xff1f; 1.1 c语言中的字符串 我们先了解一下什么是OOP思想 OOP思想&#xff0c;即面向对象编程&#xff08;Object-Oriented Programming&#xff09;的核心思想&#xff0c;主要包括“抽象”、“封装”、“继承”和“多态”四个方面。 抽象…

JDBC和连接池

JDBC和连接池 大纲 JDBC连接数据库的方式JDBCUtils事务 具体案例 JDBC 需求&#xff1a;满足Java程序能对多个不同的数据库进行操作&#xff0c;而创建了一种接口&#xff0c;实现对数据库的规范 连接数据库的方式 1.方法1 先创建一个Driver对象&#xff0c;然后设置…

【RabbitMQ】RabbitMQ的交换机

交换机类型 在上文中&#xff0c;都没有交换机&#xff0c;生产者直接发送消息到队列。而一旦引入交换机&#xff0c;消息发送的模式会有很大变化&#xff1a;可以看到&#xff0c;在订阅模型中&#xff0c;多了一个exchange角色&#xff0c;而且过程略有变化&#xff1a; Pub…

Android bp构建引入其他模块头文件

最近做项目过程中经常遇到Android.bp文件引入其他模块的头文件库&#xff0c;总是记不住bp的写法&#xff0c;这里做个记录 1.产生头文件库 2.其他的模块应用引入头文件库 不由想起来老师的名句&#xff1a;好记忆不如烂笔头。

基于遗传算法改进的RBF神经网络流量控制,基于GA-RBF的流量预测

目录 完整代码和数据下载链接:基于遗传算法改进的RBF神经网络流量控制,基于GA-RBF的流量预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88937452 RBF的详细原理 RBF的定义 RBF理论 易错及常见问题 RBF应用实例,基于遗传算法改…

【Python使用】python高级进阶知识md总结第3篇:静态Web服务器-返回指定页面数据,静态Web服务器-多任务版【附代码文档】

python高级进阶全知识知识笔记总结完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;操作系统&#xff0c;虚拟机软件&#xff0c;Ubuntu操作系统&#xff0c;Linux内核及发行版&#xff0c;查看目录命令&#xff0c;切换目录命令&#xff0c;绝对路径和相对…

笔记79:ROS入门之前的准备

一、ROS是什么 ROS其实是一个伪操作系统&#xff0c;是基于Liunx操作系统的一个用于机器人各个节点之间通信的系统&#xff1b;ROS制定了一系列规则使得每个节点之间遵循相同的通信规则&#xff0c;使得每个人都可以有一个守则区遵守开发自己的节点&#xff0c;也能和别人开发…

Linux -- 线程概念和控制

一 什么是线程 1.1 线程的引出 我们开始理解一下Linux中的线程。我们以前说过&#xff0c;一个进程被创建出来&#xff0c;要有自己对应的进程PCB的&#xff0c;也就是 task_struct&#xff0c;也要有自己的地址空间、页表&#xff0c;经过页表映射到物理内存中。所以在进程角…

基于java ssm springboot女士电商平台系统

基于java ssm springboot女士电商平台系统源码文档设计 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末…

WebPack自动吐出脚本

window.c c; window.res ""; window.flag false;c function (r) {if (flag) {window.res window.res "${r.toString()}" ":" (e[r] "") ",";}return window.c(r); }代码改进了一下&#xff0c;可以过滤掉重复的方…

web基础05-jQuery

目录 一、jQuery 1.概述 2.原生js与jQuery对比 3.特点 4.使用 &#xff08;1&#xff09;入口函数 &#xff08;2&#xff09;语法 &#xff08;3&#xff09;jQuery选择器 5.方法 &#xff08;1&#xff09;获取属性值&#xff1a; &#xff08;2&#xff09;删除属…

WinForm 修改TableControl背景和标签

在界面设计中&#xff0c;TableControl控件经常使用。默认设置中&#xff0c;TabControl的背景和标签样式。接下来我们将学习如何修改TableControl的标签选项、修改TabControld的背景色或背景图片。页面效果如下&#xff1a; 简述原理 TableControl项目属性DrawMode&#xff0c…

【开源工程】数字孪生工厂~工业上楼解决方案

飞渡科技数字孪生轻工厂管理平台&#xff0c;基于数字孪生技术驱动的智能&#xff0c;结合物联网IOT实现的联接&#xff0c;以及大数据分析生成的融合共享数据&#xff0c;实现生产过程的智能化监控和管理&#xff0c;实现设备之间的互联互通和协同工作。 通过智能算法&#xf…