首页 > 其他分享 >CPSC217计算机导论研究

CPSC217计算机导论研究

时间:2024-03-28 09:13:13浏览次数:24  
标签:课业 计算机 CPSC217 节拍 代码 导论 SimpleGame 屏幕 游戏

CPSC217:计算机导论多学科研究科学I
课业3:BeatHero
重量:7%
协作
与他人讨论课业要求是一件合理的事情,也是一种很好的学习方式。
然而,你交的工作必须是你的,而且是你自己的。这对您从中受益至关重要
学习经验,并为您提供公平的评分。交上不是你的原创作品,而是
就其本身而言,就是剽窃。大学校历中列出了惩罚措施。常见的首罚是F
抄袭课业。以下是一些避免编程课业抄袭的技巧。
1.使用程序中的注释引用所有不是您原创作品的代码源,
包括完整的URL。例如,如果您在网站上找到并使用代码,请包括注释
上面写着:
2.引用消息来源避免了对抄袭的指控和对学术不端行为的惩罚。但是,您可以
如果您提交的代码不是主要代 写CPSC217由自己开发的,仍然会得到低分。引用的材料应
永远不要用于完成核心分配规范。在提交之前,您可以也应该验证
您与讲师/TA关心的代码。
3.尽可能多地与其他程序员讨论和分享想法,但要确保在编写
代码它是你自己的。一个好的经验法则是在与某人交谈后等待二十分钟
编写代码。
4.严禁协同编码。讨论任何超出任务要求和想法的事情都是
严禁任何形式的合作。这包括共享代码、讨论代码本身或建模代码
在另一个学生的算法之后。你不能使用(即使有引文)其他学生的代码。
5.使用生成人工智能工具,如Copilot或ChatGPT,帮助您完成课业是可以接受的
有限的情况下,归因。例如,如果你的任务是编写一个Tic-Tac-Toe程序,你
可能会询问ChatGPT关于该任务的一小部分,例如“如何将中的字符串转换为整数
蟒蛇你不能要求这样的工具来完成整个任务。例如,询问ChatGPT“我该怎么做
用Python写Tic-Tac-Toe?”是不可接受的。如果您使用这样的工具,请用注释指出
你向生成人工智能工具询问的部分代码。请记住,当你写考试时
将无法访问这些工具,因此明智的做法是不要过于依赖它们。
6.让你的代码可以供他人复制,甚至是被动地复制,这也是剽窃。
7.我们将在所有提交的代码中寻找抄袭行为,可能使用为
任务
8.记住,如果你的课业有问题,最好去找你的助教和/或老师
获得帮助比剽窃更重要。
逾期罚款
你每学期(所有课业)总共有五个宽限日。之后,迟交的课业将不会
在没有大学批准的书面理由的情况下被录取。
球门
在创建游戏时练习使用列表、元组和字典。
技术
Python 3,SimpleGame包
提交说明
此课业要求您使用Python编写计算机程序。使用Assignment 3下拉菜单
框提交您的Python文件。您可以在以前的基础上多次提交
屈服您的赋值必须可使用Python 3.9.0+版本执行。您必须使用
SimpleGame库,其中包含beatHeroStarter.py代码,让您开始游戏。您可以
导入课堂上教授的库,如随机库和数学库。不导入任何其他库以完成
这项任务。
上传CPSC217W24A3-Name.py(例如CPSC217W14A3-MichelleCheatham.py)
如果使用自己的图像、声音或音乐,请将.py文件与包含所有媒体的文件夹一起压缩
与您的项目关联。
描述
游戏概述
这款名为BeatHero的游戏的灵感来源于Beat Saber虚拟现实游戏。我们的游戏要简单得多,
你可以用键盘在电脑上播放。在课业Dropbox中观看视频
为了更好地了解游戏应该如何进行(说真的,停止阅读这里并观看
继续之前的视频!)
在我们的版本中,当游戏开始时,配乐开始,节拍开始从屏幕上落下,在
首先是缓慢的,一次几次,但随着节拍在区域内移动,它们会加速并测试
你的灵活性。你的目标是在时间不多之前尽可能多地得分。每个节拍都有代表
通过箭头。要得分,你需要按键盘上的箭头键
在它击中屏幕底部之前由节拍箭头标记。屏幕上有多个节拍,你
必须始终以最低的目标为目标。
游戏结构
比赛前
当游戏运行时,会出现开始屏幕。由于BeatHero是一款实时游戏,此步骤确保
玩家已准备好在游戏开始前进行游戏。只有当玩家按下时,游戏才会开始
空格键。
比赛期间
一旦游戏开始,同时播放音乐曲目,倒计时计时器开始,并且
节拍开始以三种不同的方式从屏幕上落下。屏幕分为三个水平
区域。当节拍进入一个区域(包括第一个区域)时:它随机旋转、改变颜色、速度
向上,并因正确操作而获得的分数增加。从上到下的区域是橙色的,
粉红色和蓝色。当玩家按下箭头键时,该键的表示会显示在
屏幕每次玩家正确按下与最低拍子方向同步的箭头键时
在屏幕上,拍子变绿,旁边有一个分数,很快就消失了,玩家就是
获得适当数量的分数(橙色区域1分,粉色区域2分,蓝色区域3分);我们指的是
这是一个热门。如果玩家没有按正确的箭头键,或者节拍到达底部
在按下任何键之前,屏幕上的节拍都会亮起红色并消失;我们称之为失误。
赛后
一旦计时器达到0,游戏结束。在这个阶段,所有的节拍都会从屏幕上删除
将获得更多积分。最终分数显示在屏幕上。
SimpleGame
要对BeatHero进行编程,您将使用一个名为SimpleGame的游戏引擎,该引擎基于PyGame
和PyGameZero!你可以在这里下载。您将可以访问有关如何
SimpleGame的工作原理以及如何安装它。我们还为您提供了一个示例代码作为的起点
你的游戏。按下键盘上的空格键后,音乐开始播放,单拍子指向
屏幕向右倾斜。您可以在该文件中提供的任何函数中编写代码,但是
您仍然需要添加其他功能。
SimpleGame包附带一个名为SimpleGame的模块。通过提供的所有功能
模块在此处列出。在开始编写代码之前,请仔细阅读每个代码的文档
SimpleGame函数(文档字符串)来了解您可以使用的内容。您只能使用
此模块用于此任务的功能。此外,在IDE中,如果将鼠标悬停在函数上
名称,您将看到它的描述、参数(如果有)和返回值(如果有的话)。
在起始代码中,您会注意到三个函数(update、draw和on_key_down)被调用
内部。这意味着你不需要在代码中的任何地方调用这些函数,因为它们会
在适当的时间自动被游戏引擎调用。
使现代化
像许多其他游戏引擎一样,SimpleGame使用一个游戏循环,称为每秒60次。这个
60帧/秒(每秒帧数)允许游戏不断更新,以保持游戏的流畅性
这对于实时游戏来说是非常基本的。在您的启动代码中,在update()函数内,我们
提供了一个frameCounter,您可以使用它来计算在
不同的动作。
这是你应该编写游戏逻辑的地方,比如动画/移动游戏元素,更新
分数、检查游戏条件等。

每当屏幕上的某些内容发生变化时,就会调用此函数,例如节拍向下移动了几个
像素。与simplegraphics类似,(0,0)坐标位于屏幕的左上角,顺序为
你画的游戏元素很重要。如果你在这个函数中放入任何游戏逻辑,它会
大大影响你的游戏速度,甚至使其滞后。
除了循环和条件外,您的代码应该只使用此函数在屏幕上绘图。这个
SimpleGame提供的绘图功能有draw_background_image()、draw_element()和
draw_text_on_screen()。请注意,在首次创建图元之前,不能绘制该图元。
on_key_down()
此函数是一个事件处理程序,每当按下键盘上的键时都会调用它。整数
表示密钥的值从simplegame模块传递给get_key_pressed()函数
并存储在该函数内部的key_ pressed变量中。你只需要比较这个值,看看
这是一个所需的键,如果不是,你可以忽略它。试着打印key_pressed变量,看看它是什么
当您按下键盘上的不同键时显示。
simplegame模块内的函数
在这里,我们快速回顾一下您可以通过simplegame获得的一些功能
单元
创建、绘制和旋转可移动图元
要在屏幕上放置任何图像,首先需要调用create_element()函数。你会通过
图像文件的名称(不带.png扩展名)以及起始位置,它将返回
字典,其中包含该特定元素的id。

•每个节拍的随机流。
•进入新区域时:
a.随机旋转
b.根据区域打色
c.移动速度增加
d.价值点增加
•用于节拍的5种不同箭头图像(橙色、粉色、蓝色、命中、未命中)。
您的代码中不允许使用超过5个箭头图像。
•文本/图像,在命中节拍旁边添加分数。错过的旁边没有文本
击败
•屏幕上可以看到倒计时计时器,当计时器达到零时,它将结束游戏。
•玩家在比赛中的实时得分,以及比赛结束时的最终得分。
•玩家在游戏中按下的按键的视觉表示。
可选择的
您不需要使用我们的图像,但严禁使用4种不同的图像
向上、向下、向左和向右,因为您需要通过旋转相同的图像来处理代码中的这一点。如果您使用
不同的图像、音乐和声音片段,确保它们符合SimpleGame中提到的标准
文档如果您要添加自己的箭头,请确保所有箭头图像的角度相同,
而不是对于每个旋转具有单独的图像。您只能使用png图像和wav
音乐或声音。请确保仅使用小写的文件名,并将其添加到
相应的文件夹。
分级
课业将被给予一个加号/减号的分数,分数基于课程的
功能水平和符合规范。完全符合规定
要求将获得A。特别令人印象深刻的提交材料可能会获得A+。
作为提醒,卡尔加里大学将字母等级赋予以下含义:
A: 优秀–表现出色,表现出对主题的全面理解
课题
B: 良好——明显高于平均水平,对
主题
C: 满意——对主题的基本理解
D: 最小通过率——边际性能;后续准备一般不足
同一科目的课程
F: 失败–性能不令人满意
如何获得A+
对于想要做额外工作以获得A+的学生,你可以选择以下选项之一。笔记
因为这是可选的,助教和讲师将无法帮助你找出如何实现
本节中的内容(在实现或调试中)。
-有第二种游戏模式,在这种模式下,如果玩家错过了三次击球,他们就会输,如果他们赢了
最后一个计时器。玩家必须能够在开始游戏之前选择游戏模式。
-添加3个随机选择的超级节拍(为其找到一个新图像),如果玩家击中右侧
按键,屏幕上当前的所有节拍都会消失(并且你会得到相应的分数)。
-至少添加以下两项:(1)在屏幕上添加额外的控制元素,例如控制
节拍的起始速度,(2)现有元素的额外功能,例如计时器
随着玩家接近游戏结束,颜色逐渐从绿色变为红色。

标签:课业,计算机,CPSC217,节拍,代码,导论,SimpleGame,屏幕,游戏
From: https://www.cnblogs.com/simplesky/p/18100726

相关文章

  • 【新闻】室温超导体来了?可以在超级计算机上写代码,用超级计算机打游戏?
    2023年7月,韩国科学家团队表示,他们发现了全球首个室温超导材料,一种名为“改性铅磷灰石晶体结构”的材料。7月31日,该团队第二篇论文《超导体Pb10xCux(PO4)60o在室温常压下表现出悬浮现象及其机理》在arXiv上发布,其团队制造的LK-99室温超导材料或许可以在一个月之内被复制。如果......
  • Java写一个计算机,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互来实现
    importjava.util.Scanner;//写一个计算机,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互来实现publicclassDemo08{publicstaticvoidmain(String[]args){inta=0;intb=0;chars......
  • 基于JAVA SSM 弹幕视频网站项目 (内附计算机毕业设计LW + PPT+ 源码)
    弹幕视频网站项目技术栈该项目采用了以下核心技术栈:后端框架/库:ssm数据库:MySQL5.7前端技术:JSP,JavaScript,HTML5,CSS3服务器:Tomcat7开发工具:Eclipse/MyEclipse/IDEA,Navicat11JDK版本:JDK1.8Maven包:Maven3.3.9核心功能描述前台功能模块:包括视频信息展示、商......
  • 谈谈计算机科学与技术这门专业
    原文地址:谈谈计算机科学与技术这门专业-Pleasure的博客下面是正文内容:前言这是一篇个人性质的笔记。专业代码080901或许也可以理解为计算机科学与技术专业大致都要经历的学习路线(主要还是根据本校)。正文主要专业课程计算机科学与技术主要分为硬件和软件......
  • 我的计算机科学之旅:过去、现在与未来
    初心与选择当我三年前选择计算机科学专业时,我对编程和技术充满了好奇。我被计算机背后的逻辑和创造力所吸引,渴望理解和掌握这门能够创造无限可能的语言。现在回顾,我不后悔我的选择。计算机科学不仅教会了我编程,还教会了我如何思考和解决问题。我最喜欢的领域是人工智能,它是计算机......
  • 文心一言 VS 讯飞星火 VS chatgpt (223)-- 算法导论16.3 5题
    五、证明:如果我们将字母表中字符按频率单调递减排序,那么存在一个最优编码,其码字长度是单调递增的。文心一言:为了证明这个结论,我们可以使用霍夫曼编码(HuffmanCoding)作为示例,它是一种广泛使用的最优前缀编码方法。霍夫曼编码满足题目中的要求:如果我们将字母表中字符按频率......
  • 我的计算机学习之旅:从热爱到规划!
    第一部分:结缘计算机在选择计算机专业之前,我曾认真考虑过自己的兴趣和能力。我对计算机的兴趣起源于小时候的一次偶然机会,当时我第一次接触到计算机,被它神奇的功能所吸引。随着时间的推移,我越来越深入地了解计算机,并发现自己对它的兴趣越来越浓厚。因此,我决定选择计算机专业作为我......
  • 学算法要读《算法导论》吗?
    这篇文章是我学习算法的心得,希望它能够给一些将要学习算法且准备要读大部头算法书籍的朋友一些参考,节省一些时间,也为了给经典的“黑皮书”祛魅,我觉得这些书籍在大部分互联网从业者心中已经不再是进步的阶梯,而是恐惧的阴影了,因为当一些学习路线中列出这些书目时,评论区多是调侃少是......
  • [附源码]计算机毕业设计基于大数据的身体健康管理平台(JSP+java+springmvc+mysql+MyBa
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着健康意识的提升和大数据技术的发展,基于大数据的身体健康管理平台成为现代社会追求高质量生活的一个新趋势。这种平台通过收集和分析用户的健康数据,提供个性......
  • [附源码]计算机毕业设计文档管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着信息化时代的到来,企业和机构在日常运营中产生大量文档资料。有效的文档管理系统(DMS)对于保障信息的组织、存储、检索和安全至关重要。一个先进的DMS能够帮助......