gameloft一道笔试题

请实现下面的问题的算法:

 

 

如图,pàq两点组成的有向线段,按顺序经过了(1,0)(2,0)(2,1)(3,1)(3,2)四个黄色的格。

 

问题: 给出两点坐标pàq ,求经过的格,并且结果是按经过的顺序排列的。

 

算法要求:

1.         尽可能地减少运算量。 (最好能控制在40次基本运算内)

2.         因为计算机精度问题,尽可能地少使用除法运算。

3.         基本运算加,减,乘,取整,操作是被推荐的。

4.         使用定点数,而不是浮点数。

5.         请给出图形化的验证程序。

6 请发送算法源代码和解题思路。

 

 

小提示:该算法容易和画线算法联系,但画线算法和该问题有根本区别是:画线算法每个样本点对应一个值,而覆盖算法每个样本点对应一个或两个值

这到题看上去有点虎人,其实不是很难,经常做游戏,特别是动作或者RPG的开发的人员应该都知道怎么做:基本思路是:1.画线,当点走到某一坐标的时候根据格子的行和列计算当前点所在位置,每经过一个格子就在索引中加1,判断当前坐标的边界,同时查看索引是第几,如果超过一个格子的宽和高,相当与索引再加一,因为起点和终点坐标是告诉的,程序写起来比较简单。这个办法在游戏当中一般用来判定角色当前的地图坐标,以及进行地形检测。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值