为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

积木游戏

2013-03-09 2页 pdf 289KB 55阅读

用户头像

is_463037

暂无简介

举报
积木游戏 搭积木游戏 编写一个搭积木游戏的程序。有一个 1130 的积木拼盘以及四类积木,每类积木的数量都 不受限制。这四类积木分别是:等腰直角三角形、正方形、长方形、等腰梯形,等腰直角三 角形的腰长为 1,正方形的边长为 1,长方形的边长分别是 1、3,等腰梯形的上、下底边和 高分别是 1、3、1。游戏规则如下: 1、 积木拼盘直立,底边长度为 11,高为 30。每次开始新游戏时,积木拼盘中为空 2、 游戏开始后,玩家每次随机取一个积木放置在拼盘顶端的正中,积木的方向是随机的、 且符合下列规则: a) 等腰...
积木游戏
搭积木游戏 编写一个搭积木游戏的程序。有一个 1130 的积木拼盘以及四类积木,每类积木的数量都 不受限制。这四类积木分别是:等腰直角三角形、正方形、长方形、等腰梯形,等腰直角三 角形的腰长为 1,正方形的边长为 1,长方形的边长分别是 1、3,等腰梯形的上、下底边和 高分别是 1、3、1。游戏规则如下: 1、 积木拼盘直立,底边长度为 11,高为 30。每次开始新游戏时,积木拼盘中为空 2、 游戏开始后,玩家每次随机取一个积木放置在拼盘顶端的正中,积木的方向是随机的、 且符合下列规则: a) 等腰三角形的一条腰必须水平 b) 正方形、长方形的边必须水平或者垂直 c) 等腰梯形的上、下底边必须水平或者垂直 3、 在每个时间步上玩家可以执行下列一个操作,若操作执行后积木与其他积木互相覆盖、 或者积木的外接矩形越过拼盘边界,则操作为不可执行操作 a) 将积木左移 1个位置,该操作不可执行时尝试执行缺省操作 b) 将积木右移 1个位置,该操作不可执行时尝试执行缺省操作 c) 以积木外接矩形的中心为圆心,顺时针旋转 90度,该操作不可执行时尝试执行缺 省操作 d) 以积木外接矩形的中心为圆心,逆时针旋转 90度,该操作不可执行时尝试执行缺 省操作 e) 缺省操作:将积木下移 1个位置。玩家未指定操作时尝试执行该操作。 4、 若在一个时间步上的任何操作都不可执行操作时,玩家则继续随机取下一个积木 5、 当拼盘中连续 N(N>0)行全部被积木覆盖、且这 N行的边界没有穿越任何积木的外接矩形 时,则从拼盘中取出这 N行积木,并将位于这 N行之上的其他积木分别下移 N个位置。 考虑其中子问题——三角形的状态表示和变换 1、 三角形的状态表示法一:三个定点的位置坐标 2、 三角形的状态表示法二 a) 外接矩形所在位置(X Y) b) 直角定点所在的位置 3、 三角形的状态表示法三 a) 外接矩形所在位置(X Y) b) 长度为 4的 bool型数组:1100、0110、0011、1001 4、 三角形的状态表示法四 a) 外接矩形所在垂直位置 Y b) 长度为 44的 bool型数组,每个四个元素为一组表示拼盘的一个水平位置。三角形 所在位置对应的四个元素构成为 1100、0110、0011、或者 1001,其他元素全 0。 5、 变换 a) 左移、右移 b) 顺时针旋转、逆时针旋转 c) 下落 选用不同的状态表示数据结构,则需要不同的状态变换算法。这几个状态表示方法之间又是 可以互相转换的。 因此:程序 = 数据结构 + 算法 1、 表示三角形状态的数据结构变化了,必定引起其状态变化算法的变化 2、 三角形状态的表示法变化了,只对其他积木类型的下落操作有影响,涉及到三角形与其 他类型积木是否存在互相覆盖的可能 从软件开发的角度,最后将能够一目了然的看出来:用来表示三角形状态的数据结构、改变 三角形状态的算法、存储三角形状态的变量。可以采取的手段 1、 命名上,使用相同的前缀 2、 代码编排上,写在程序中的邻近区域 面向对象的编程语言与过程式编程语言的差别:面向对象的编程语言从语法上支持程序员描 述子问题、子问题状态的数据结构、子问题状态的变换算法、子问题的状态变量 小问题:令 a是个长度为 44的 bool型数组,每个四个元素为一组表示拼盘的一个水平位置, 最左边的水平位置对应 a[0]~a[3],依此类推各水平位置对应的四个元素。三角形所在位置对 应的四个元素构成为 1100、0110、0011、或者 1001,其他元素全 0。请写一个 bool 函数 move2right(),实现三角形的右移操作,函数耗时最少。假设 bool函数 down()实现了尝 试执行缺省操作。 1 2 4 3 1 2 4 3 1 2 4 3
/
本文档为【积木游戏】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索