我打算在装配中做一个游戏(一些简单的,而不是复杂的蛇),我需要两个堆栈。如果你能告诉我如何创建和使用两个堆栈,我会很高兴。 只是为了知识,我需要堆栈来检查蛇是否自己切割,并绘制蛇的身体。在装配中的两个堆栈
回答
。创建蛇阵列。并转移他们。并添加头snake[0] (x;y ofhead)
然后清除snake[snake_size]
这是尾巴。 如果是地图,你可以对地图[X,Y]区和标志蛇体绘制整个地图循环使用地图扔值 伪代码:
map[x,y]=1 //snake body
map[x,y]=0 //nothing
map[x,y]=2 //fruit
map[x,y]=-1 //fench
这里移动蛇是简单的代码:(移蛇阵到右):
。(注意:我们的蛇阵元字(2字节),所以写snake[x]
实际上应该指向snake[x*2]
地址;在该移动之后
mov cx, snake_size
; di=snake_size*2
mov di, snake_size
add di,di ;// di=di*2
move_array:
; snake[x]=snake[x-1];
mov ax, snake[di-2] ;
mov snake[di], ax
; --x (x=x-1)
sub di, 2
loop move_array
//c style loop code will be
for(int i=snake_size;i>0;i--){
snake[i]=snake[i-1];
}
添加新位置头snake[0]
和明确tail=snake[snake_size]
标记那些在地图上,太:
因为如果他吃水果,你应该检查头部位置地图[head.x,head.y] == 2或fench见到你用-1检查
看看他是否切断。你应该循环扔整个身体,看看是否头部碰撞体
和未来的堆栈:
- 是阵列费罗的行为。
- 您需要商店索引。
- 增值到MEM [指数],增加指数推
;mem[index]=value;++index;
- 啪下降指数,并返回MEM [指数]的时候,当
;--index;return mem[index]
如果你的意思是对蛇做一个数组 - 你将如何改变它的大小。如果没有,你怎么知道尾巴(删除尾巴后,你需要在地图上找到它的新位置)。顺便说一下,地图是一个数组? – TJR 2013-07-29 13:38:54
@TJR对于蛇,我们得到了蛇的最大长度的容量,这个长度决不会超过(mapx * mapy)/ 2。我们得到了保持当前蛇尺寸的s_size。如果我们增加s_size,那么蛇的大小将会改变,因此我们清除尾部的蛇[s_size]。 .map是二维数组,我们使用地图进行cheking和显示目的。也检查我的答案。我改进了格式并使事情更加清晰 – qwr 2013-07-30 08:18:57
- 1. 堆栈两个UITableViews
- 2. 堆栈两列
- 3. C中的堆栈分配
- 4. 装配通过堆栈传递变量
- 5. ELK堆栈安装和配置
- 6. 与DJango无堆栈安装和配置
- 7. 堆栈或堆栈分配不正确
- 8. ghci中/堆栈和包装
- 9. 堆栈溢出:在堆栈空间中复制临时分配?
- 10. C++堆栈与堆分配
- 11. C堆栈分配
- 12. 使用两个堆栈的队列
- 13. 在Ubuntu 10中安装RoR堆栈
- 14. 错误推送到我自己的堆栈中装配Masm x86
- 15. 堆栈或堆上的对象分配
- 16. 堆/堆栈上的类成员分配?
- 17. 在CentOS 7安装的Git LEMP堆栈
- 18. 在两个堆栈队列中创建一个toString
- 19. 有没有办法在AWS cloudformation中配置嵌套堆栈的“堆栈名称”?
- 20. 堆栈中的多个MapActivitys
- 21. 如何同时弹出两个堆栈
- 22. 使用堆栈两个队列
- 23. 问题安装MEAN堆栈
- 24. 将两个单通道TIFF堆栈结合到单个多通道堆栈
- 25. Java - 堆栈 - 检查堆栈的两个数字是否相等100
- 26. C++中的动态堆栈分配
- 27. 内存中的堆栈实际上是一个堆栈吗?
- 28. C++是堆栈还是堆分配?
- 29. 堆VS数据段VS堆栈分配
- 30. 从堆分配时堆栈溢出
只能有一个调用堆栈,除非你是多踩踏。其余的必须是用户堆栈(即手动管理)。算法不是太困难。 – 2013-05-12 14:30:47
你能否解释为什么你需要一个堆栈来检查蛇是否相交?如果您将运动场表示为二维数组,您可以通过检查蛇的一部分是否会在另一个线段已经位于的同一单元格中检测到。 – Michael 2013-05-12 14:35:45
@TJR检查我的答案。看看它是否有帮助 – qwr 2013-05-12 15:12:25