首页 > 其他分享 >CS61B学习笔记_Project0

CS61B学习笔记_Project0

时间:2023-03-22 22:24:42浏览次数:54  
标签:贴图 分数 CS61B 合并 笔记 变为 方向 移动 Project0

1 Game Rules

1. 4x4网格,每个位置为空或者填有带有一个2的正整数次幂数字的贴图;

2. 第一次移动前,随机选择一个空位填入带有数字2或4的贴图,其中填充2的概率为75%,填充4的概率为25%;

3.用户可以通过方向键选择一个方向(上下左右)来倾斜(tilt)该网格,所有的贴图都在这个方向上滑动,直到在运动方向上没有任何空间(可能一开始就没有)。一个贴图可以与另一个贴图合并(merge),从而获得玩家点数。合并的具体规则如下:

    △ 两个相同的贴图合并成一个,数值变为原值的2倍;

    △ 本次tilt时合并得到的结果不会再发生合并,例如[x,2,2,4]向左时变为[4,4,x,x],而不是继续继续变为[8,x,x,x];

    △ 当运动方向上三个相邻的贴图有相同的值时,在运动方向上前面的两个贴图合并。eg: [x,2,2,2]向左变为[4,2,x,x]而非[2,4,x,x]; 当有四个相邻相同贴图时同理,前两个合并,后两个合并。

    △ 使用Score记录分数,每次移动后更新分数,每次合并记一分。

    △ 当当前玩家没有可用的移动(没有倾斜可以改变棋盘),或者移动形成包含2048的贴图时,游戏结束。代码将负责检测游戏何时结束。

    △ “最大分数”是用户在该游戏回合中所获得的最大分数。直到游戏结束它才会更新,所以这就是为什么在整个动画GIF示例中它保持为0的原因。

 

2. 实验操作

1.实验中遇到了game2048中文件均为橙色J图标,无法识别的问题

解决方案参考了 https://blog.csdn.net/qq_40492436/article/details/104871704

2. TestMaxTileExists刚开始测试5/8没有通过,后来发现是因为tile为null时无法取value(),修改后测试全部通过

标签:贴图,分数,CS61B,合并,笔记,变为,方向,移动,Project0
From: https://www.cnblogs.com/QZMshining/p/17185735.html

相关文章

  • Django笔记五之字段类型
    这篇笔记介绍字段的类型FieldType。Django的model下的field对应的是MySQL中的表字段,而我们定义的field的类型则对应MySQL中的字段类型。本次主要介绍以下几......
  • 构建之法阅读笔记1
    构建之法是建民老师推荐我们必读的一本著作,我读完前几章后,浅写个读后感,这本书前几章讲解了软件工程的含义以及设计文档,单元测试的重要性还有如何成长为软件工程师。我学习......
  • React 的学习笔记一 (未完结)
    一、React是什么 React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库。使用React可以将一些简短、独立的代码片段组合成复杂的UI界面,这些代码片段被......
  • Vue3学习笔记 —— 状态管理、Vuex、Pinia (未完结)
    优秀文章分享:vue中使用vuex(超详细)-掘金(juejin.cn)一、状态管理1.1、什么是状态管理?理论上来说,每一个Vue组件实例都已经在“管理”它自己的响应式状态了。我们以......
  • 构建之法阅读笔记01
    编程是艺术,开发是工程比起一门编程语言,软件工程的入门过程,要难得多。盖因一门语言,其语法、关键字、系统库和常用工具,总是确定而有限的。而软件工程,作为工程学的一个门类,它......
  • 英语四级写作笔记
    作文开头引用谚语Aproverbsays,""引用句子Itgoeswithoutsayingthat.无需多言Aseveryoneknows……2.引用数据Accordingtoarecentsurveycondu......
  • Excel数据分析学习笔记
                        ......
  • Cadence入门笔记(八):覆铜、过孔阵列和丝印
    覆铜设计好线路后,为了提高信号和电源完整性,一般对PCB进行覆铜操作选择添加shape,添加一个长方形和板框差不多的覆铜即可记得要选dynamiccopper动态覆铜,这样覆铜生成......
  • ICMP协议说明-笔记
    ICMP协议说明-笔记ICMP的作用:​ ICMP是Internet控制报文协议,主要是传递控制信息的,而且是无连接的协议。当遇到IP路由器无法按当前的传输速率转发数据包等情况时,会自动发......
  • 算法笔记的笔记——第6章 C++标准模板库(STL)
    vector变长数组长度根据需要而自动改变的数组可以用来以邻接表的方式储存图使用头文件:#include<vector>命名空间:usingnamespacestd;定义vector<typename>n......