本帖最后由 First 于 2013-5-30 16:48 编辑
楼主:
首先
char A = 这一行就没通过编译啊, 要改为String A = 。 不过最后是定义单独的类,毕竟是2 个 玩家
之后,玩这个游戏是不是要有2个 Player 呢? 不然 要怎么比呢? 是不是啊, 因此,你还需要定义2个player来比较。
最后呢, 你的比较方法 比较的应该是 2个player的动作,不是2个player ,所以 请不要写成 A == , 之类的。
尽管这么说,还是没有很好的表达我的观点。 所以呢,就写个例子,楼主尽请观看- package test;
- public class Demo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Player p1 = new Player("playerA", Pos.ROCK);
- Player p2 = new Player("playerB", Pos.SCISSOR);
- result(p1,p2);
- }
-
- public static void result(Player p1,Player p2){
- Pos pos1 = p1.getP();
- Pos pos2 = p2.getP();
-
- if(pos1==pos2)
- System.out.println("deuce");
- else if(pos1.next() == pos2)
- System.out.println("winner: " + p1.getName());
- else if(pos2.next() == pos1)
- System.out.println("winner: " + p2.getName());
- }
- }
- class Player{
- String name;
- Pos p = Pos.ROCK;
-
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Pos getP() {
- return p;
- }
- public void setP(Pos p) {
- this.p = p;
- }
- Player(String name, Pos p){
- this.name = name;
- this.p = p;
- }
- }
- enum Pos{
- ROCK {
- @Override
- public Pos next() {
- // TODO Auto-generated method stub
- return SCISSOR;
- }
- },
-
- PAPER {
- @Override
- public Pos next() {
- // TODO Auto-generated method stub
- return ROCK;
- }
- },
-
- SCISSOR {
- @Override
- public Pos next() {
- // TODO Auto-generated method stub
- return PAPER;
- }
- };
-
- public abstract Pos next();
- }
复制代码 |