硬件趣学Python编程 7、2048游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四部分 游戏基本设计思路
19
游戏基本设计思路
• 画背景棋盘
2048的棋盘是一个4*4的网格,网格内放置 数字,下面应该有一个记分统计。
20
2
0
2
0
0
16
0
0
0
0
32
0
0
0
0
128
游戏得分: 180
游戏基本设计思路
• 数字矩阵 - 右移
2
0
2
0
0
16
8
16
0
32
32
0
0
0
0
128
0
0
0
4
0
16
8
5
认识函数
• 函数调用和执行的一般形式是: <函数名>(<参数列表>)
• 此时,参数列表中给出要传进入函数内部的参数,这类参数称为实际参数,简 称为“实参”。
6
认识函数
• 程序调用一个函数需要执行以下四个步骤: (1)调用程序在调用处暂停执行; (2)在调用时将实参复制给函数的形参; (3)执行函数体语句; (4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行。
14
目 录 Success Words Contents
第三部分 模块的导入
15
模块的导入
• 模块是Python中的最高级别组织单元,它将程序代码和数据封装起来以便重用
• Python源代码文件:*.py
– 一个py文件是一个模块(module)
– 多个模块可以组成一个包(package)

模块1 函数
• 函数可以在一个程序中多个位置使用,也可以用于多个程序,当需要修改代码 时,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码重用 降低了代码行数和代码维护难度。 Python定义一个函数使用def保留字 语法形式如下: def <函数名>(<参数列表>): <函数体> return <返回值列表>
7
认识函数
• 在定义函数时,如果有些参数存在默认值,即部分参数不一定需要调用程序输 入,可以在定义函数时直接为这些参数指定默认值。当函数被调用时,如果没 有传入对应的参数值,则使用函数定义时的默认值替代,例如:
8
认识函数
• 在函数定义时,也可以设计可变数量参数,通过参数前增加星号(*)实现。带 有星号的可变参数只能出现在参数列表的最后。调用时,这些参数被当作元组 类型传递到函数中,实例如下:
• 由于调用函数时指定了参数名称,所以参数之间的顺序可以任意调整。 • return语句用来退出函数并将程序返回到函数被调用的位置继续执行。return
语句同时可以将0个、1个或多个函数运算完的结果返回给函数被调用处的变量, 例如。
10
目 录 Success Words Contents
第二部分 全局变量和局部变量
• 如果希望让func()函数将n当作全局变量,需要在变量n使用前显式声明该变量为 全局变量,代码如下
13
全局变量和局部变量
• 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数 退出后变量被释放,如有全局同名变量,其值不变;
• 简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该 变量保留且值被函数改变;
+
硬件趣学Python编程 数字游戏通通过,2048的游戏制作
目 录 Success Words Contents
第一部分 第二部分
认识函数 全局变量和局部变量
第三部分
模块的导入
第四部分 第五部分
游戏基本设计思路 2048的代码分析
2
目 录 Success Words Contents
第一部分 认识函数
• 函数能够完成特定功能,与黑盒类似,对函数的使用不需要了解函数内部实现 原理,只要了解函数的输入输出方式即可。严格说,函数是一种功能抽象。
4
认识函数
• 使用函数主要有两个目的:降低编程难度和代码重用。函数是一种功能抽象, 利用它可以将一个复杂的大问题分解成一系列简单的小问题,然后将小问题继 续划分成更小的问题,当问题细化为足够简单时,就可以分而治之
11
全局变量和局部变量
• 一个程序中的变量包括两类:全局变量和局部变量。全局变量指在函数之外定 义的变量,一般没有缩进,在程序执行全过程有效。局部变量指在函数内部使 用的变量,仅在函数内部有效,当函数退出时变量将不存在。例子如下。
12
全局变量和局部变量
• 这个例子说明,当函数执行完退出后,其内部变量将被释放。如果函数内部使 用了全局变量呢?例子如下
3
认识函数
• 函数是一段具有特定功能的、可重用的语句组,用函数名来表示并通过函数名 完成功能调用。函数也可以看作一段具有名字的子程序,可以在需要的地方调 用执行,不需要在每个执行地方重复编写这些语句。每次使用函数可以提供不 同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以反馈相应 的结果。
16
0
0
0
64
0
0
0
128
21
游戏基本设计思路
• 数字矩阵 - 左移
2
0
2
0
0
16
8
16
0
32
32
0
0
0
0
128
4
0
0
0
16
8
16
0
64
0
0
0
128
0
0
0
22
游wk.baidu.com基本设计思路
• 数字矩阵 - 上移
2
16
2
0
0
16
32
0
0
0
32
0
0
0
0
128
2
模块2 函数


16
模块的导入
• 导入从本质上讲,就是在一个文件中载入另一个文件,并且能够读取那个文件 的内容。一个模块内的内容通过这样的方法其属性(object,attribute)能够被 外界使用
• 模块的方式非常简单,在"import"后加上"模块名称"就可以了。 • 通过这一句,计算机就在指定的位置找到了"numpy.py"文件,并准备好该文件拥
• vfunc()函数定义了可变参数b,调用vfunc()函数时输入的(2, 3, 4, 5)被当作 元组传递给b,与a累加后输出。第6.1节将详细介绍元组类型,这里请读者将元 组理解为一组元素。
9
认识函数
• Python提供了按照形参名称输入实参的方式,函数调用如下: result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3)
有的之后会用到的函数和属性。在导入"numpy"后,我们就可以通过点符号"."连 接模块名称和函数名,使用该模块中的函数和属性。
17
模块的导入
• 指定的方式是采用"import 模块名称 as 别名"。我们可以将"numpy"简记为"np", 并且在调用时,直接使用"np"就可以:
18
目 录 Success Words Contents
相关文档
最新文档