当前位置:编程学习 > JAVA >>

新手问题

刚学习JAVA面向对象的编程思想,现在老师叫我们做一个猜拳的小游戏,做着做着就面向过程去了,请问应该怎么设计类和对象? 猜拳 面向对象 --------------------编程问答-------------------- 抽象一个接口 ,接口中有方法定义  ,剪刀、石头、布 实现它 ,
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!");
}
--------------------编程问答-------------------- 结合一二楼那就更完美了,先弄一个接口里面包含猜拳游戏的各种行为。在做一个基类拳,然后写三个子类去继承拳(石头,剪刀,布)同时实现前面的那个接口。呵呵就是这样,我觉得这样更好好点。说的不好见谅 --------------------编程问答-------------------- L2好像是一本书中的例子哦,不错
--------------------编程问答-------------------- 首先抽象出类(对象),然后想想该类(对象)中应该有哪些属性,该对象可以做什么 --------------------编程问答-------------------- java是一个面向对象的编程,我们要从现实中的具体事物来抽取它们的属性、行为,我们先做的是找出对象以及对象的属性和实现方式(方法)。猜拳基本上都是人和人之间进行的(当然你要说和电脑也可以),那猜拳本身的属性呢,不就是“石头”“剪刀”“布”咯,找到后就是考虑它们是如何实现的,那就是看比较这两个人出的手势,看谁打谁小或者相同,大小就是你在方法中去定义一个规则,再最后就是写代码了
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,