zhuloupu4 发表于 2010-8-23 15:05:27

大型程序推箱子 请教一下

推箱子中,假设有3个箱子,坐标是A,B   E,F    M,N,如何检验箱子是否重合?发上代码,我会把代码插在合适的地方的

zhuloupu4 发表于 2010-8-23 15:06:01

不知道怎么加悬赏,反正没钱,就不加了

noivan 发表于 2010-8-23 15:10:45

If A=M and B=N then 重合

zhuloupu4 发表于 2010-8-23 15:57:38

不是这个意思啦,是如何处理使他们不重合

imath 发表于 2010-8-23 16:07:35

randint(m,n)->a
Lbl 0
randint(m,n)->c
if a=c
then
goto 0
ifend

[Boeing 617] 发表于 2010-8-23 16:08:36

If A=M and B=N then
Stop
text(如果有的话)“错误:……”(不支持中文的话就是“Error:……”)
Ifend

zhuloupu4 发表于 2010-8-23 16:18:20

5#,你确定你的可以OK吗?使重合的箱子不重合?如果是4个呢?5个呢?,而且那个什么randin什么意思

[Boeing 617] 发表于 2010-8-23 16:20:44

我说的只是nspire上的。。不知道你用什么计算器
如果是4个5个那就把M和N改成那个箱子的坐标就可以了

[Boeing 617] 发表于 2010-8-23 16:21:03

不过其他计算器应该可以
只要有stop函数

imath 发表于 2010-8-23 17:26:49

至于stop
我一般在最后建一个标签,然后goto

zhuloupu4 发表于 2010-8-24 16:04:24

IMATH,你那个貌似不管用。
我在次重申意思:先检验两个或多个箱子是否重合,如果重合,就使它们不重合,不重合就继续的代码

[Boeing 617] 发表于 2010-8-24 23:02:41

至于stop
我一般在最后建一个标签,然后goto
imath 发表于 2010-8-23 17:26 http://www.cncalc.org/images/common/back.gif也可以。和stop是同样的效果

[Boeing 617] 发表于 2010-8-24 23:09:21

IMATH,你那个貌似不管用。
我在次重申意思:先检验两个或多个箱子是否重合,如果重合,就使它们不重合,不重合就继续的代码
zhuloupu4 发表于 2010-8-24 16:04 http://www.cncalc.org/images/common/back.gif原来你要说的是箱子是否重合啊。。
那就是:
If A=M and B=Nor A=(某个箱子的横坐标) or B=(某个箱子的纵坐标)………… then(你要检验几个箱子不重合就写几个这东西)
randint(下限,上限)→(某个箱子的横坐标)
randint(下限,上限)→(某个箱子的纵坐标)
else
goto a
Ifend
Lbl a

zhuloupu4 发表于 2010-8-25 14:00:45

下限和上限是多少

zhuloupu4 发表于 2010-8-25 14:04:11

难道箱子要重新显示吗?我的意思是说如果箱子重合就返回一格。
比如说有两个箱子分别是3,4   4,4   结果3 ,4向右一推与4,4重合了,这时检验出来了将其中一个箱子显示到3,4,而且两个箱子重合的场景不会出现,只会出现如下:
当3,4冲向4,4时,被4,4顶住了。无法过去。
向楼上那种我也会啊。就是我说的这种要考虑多方向,所以复杂

hcz 发表于 2010-8-28 15:13:07

情况枚举一下
人在x,y,若箱子在x+1,y,则如果x+2,y是箱子或墙则拒绝操作
………………同理写4个方向

zhuloupu4 发表于 2010-8-31 17:08:12

算了,只好编那种碰到箱子就结束游戏的那种了

imath 发表于 2010-8-31 20:05:41

那个微分方程的程序编好了没?

zhuloupu4 发表于 2010-9-2 12:50:30

没有,我现在理念不清楚了。
我在想编的类型是ay+by'=c的时候,如果a.b.c又分别是fx/gx/vx三个函数
那就更麻烦了。。。
所以我决定不编了
IMATH,这个艰巨的任务还是交给你了
页: [1]
查看完整版本: 大型程序推箱子 请教一下