刚学习JAVA面向对象的编程思想,现在老师叫我们做一个猜拳的小游戏,做着做着就面向过程去了,请问应该怎么设计类和对象?猜拳 面向对象
解决方案 »
- split问题,英文句号不能分开字符串
- 句柄就是引用吗? 为什么有两种说法,在JAVA界,哪能种说法多些?
- 关于I/O重定向的问题,大家帮帮我解答
- 计算String中subString的数量(线程)
- 大家帮帮忙啊,html:image和html:img啥区别啊,,
- 关于java中方法和变量的访问控制
- 请问如何使用Java reflection API取得关于inner(nested) class的信息?
- 有哪个大哥大姐知道java中StringReader()的用法与意义。
- 怎样使程序最小化是时,图标在系统栏(右下角)
- 兄弟们,如何见 String ---> long
- 谁给我一个eclipse英文版的安装程序,谢谢!
- xml中的<IDOCTYPE ....被干掉了。
public interface IGuest{
public int guest(IGuest ig) ;
}public class JDGuest{
...
}
程序开始,计算机玩家和人类玩家分别实例化,其中,计算机玩家自动产生一个“拳”,人类玩家输入一个“拳”。
还有一个类是GameMaster,控制游戏过程,比如给出指令让玩家出拳,然后再判断胜负。建议玩家接口:
interface IPlayer {
IFist propose();
String getName();
}
拳接口:
interface IFist {
boolean beats(IFist opponent);
}GameMaster可以直接在main过程里实现
IPlayer player1 = new HumanPlayer();
IPlayer player2 = new ComputerPlayer();
while (true) {
IFist fist1 = player1.propose();
IFist fist2 = player2.propose();
// if player terminates the game
if (fist1 == null || fist2 == null)
break; if (fist1.equals(fist2))
System.out.println("It's a draw!");
else if (fist1.beats(fist2))
System.out.println(player1.getName() + " wins!");
else if (fist2.beats(fist1))
System.out.println(player2.getName() + " wins!");
}