请帮我想个办法来解决吧!

yoyohon 2004-08-06 04:40:26
问题是这样的,我再做一个镜子游戏,有些人应该玩过类似dweep那个游戏。

现有一个Maze(姑且这么称), Maze里面我分成不少格子 Grid.
Grid里头可以放东西(Thing).

当然用户可以自由的拖放东西,或者转动Grid里头的东西,或者删除之类其他一些操作。

1)

现在我在想,如何实现某一个具体的动作,比如拖放。
该把具体的实现放到哪里去比较好呢?
Grid1.Remove(thing);
Grid2.PutIn(thing);
还是
thing.RemoveFrom();
thing.PutTo(gridx);
比较好?


2)
另外,用户指令需要用Command来封装起来吗?如果封装,该怎么实现呢?
DragCommand implements Command;
然后给他添加属性
private Grid out;
private Grid in;

具体用户产生命令的时候先给属性赴值,然后执行 dragCommand.execute();
这样实现对嘛?


3)
是不是需要用COR模式来处理一个命令呢?
先让Maze处理,处理不了就交给Grid处理,处理不了再丢给Thing.
这样好吗?有没有必要?
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoyohon 2004-08-13
  • 打赏
  • 举报
回复
我已经用awt基本实现了这个游戏的功能了,就是有些地方觉得自己写的不优雅,有待改进。

yoyohon 2004-08-13
  • 打赏
  • 举报
回复
就是这个游戏啦:)

http://flash.xingtai.net/yx/jingzi.swf

fantasyCoder 2004-08-10
  • 打赏
  • 举报
回复
你需要一个命令接收者
一个抽象命令接口,以及实现这个接口的具体命令
一个命令的请求者,它将保留你的抽象命令

这样,当你需要添加新的玩家命令时就无需修改原来的结构。
duckula007 2004-08-10
  • 打赏
  • 举报
回复
楼主说的是什么游戏啊!
说说先!
imagex 2004-08-10
  • 打赏
  • 举报
回复
C#
imagex 2004-08-10
  • 打赏
  • 举报
回复
//MazeGame
using System;
//MazeGame Class
class MazeGame
{
//Fields
CommandReceiver cmdrcvr=new CommandReceiver();
GameCommand gmcmd=new GameCommand();
MazeRoom mzrom=new MazeRoom();

//Methods
public void Start()
{
while(true)
{
//stop listen when get game command
gmcmd=cmdrcvr.Listen();
gmcmd.Execute(mzrom);
}
}
};
//CommandReceiver Class
class CommandReceiver
{
public GameCommand Listen()
{
//return a game command
}
};
//GameCommand Class
class GameCommand
{
public void Execute(MazeRoom r){};
};

//MazeRoom Class
class MazeRoom
{
};

//Grid Class
class Grid
{
};


//TestApp
class TestApp
{
public static void Main(string[] args)
{
MazeGame mazegame=new MazeGame();
mazegame.Start();
}
};
松耦合紧内聚 2004-08-09
  • 打赏
  • 举报
回复
up
shuneng 2004-08-09
  • 打赏
  • 举报
回复
up
yoyohon 2004-08-06
  • 打赏
  • 举报
回复
还有另外要考虑一些扩展性问题,
比如有的时候,用户在设计迷宫,就需要有一个原型Maze,从里面拖出来的东西是机上是thing的一个刻隆,并不真正把prototype的对象拖出。

总之,这些问题和用户命令关联起来我就有点晕了,不知道怎样实现好。

总觉得自己的实现狠不优雅。

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧