make Player class abstract. Create 2 sub-classes AIPlayer and HumanPlayer. They are just bare-bones at this point.

Now, we should be able to move things one by one to the Human/AI subclasses from GameAction.java.
This commit is contained in:
jendave
2011-08-06 09:28:18 +00:00
parent e64fcb5374
commit be6e9c0e70
5 changed files with 89 additions and 24 deletions

2
.gitattributes vendored
View File

@@ -5290,6 +5290,7 @@ src/arcane/util/Util.java svneol=native#text/plain
src/com/cloudgarden/layout/AnchorConstraint.java -text svneol=native#text/plain
src/com/cloudgarden/layout/AnchorLayout.java -text svneol=native#text/plain
src/com/esotericsoftware/minlog/Log.java svneol=native#text/plain
src/forge/AIPlayer.java -text svneol=native#text/plain
src/forge/Ability.java svneol=native#text/plain
src/forge/AbilityFactory.java -text svneol=native#text/plain
src/forge/AbilityFactory_AlterLife.java -text svneol=native#text/plain
@@ -5418,6 +5419,7 @@ src/forge/Gui_Treasury.java -text svneol=native#text/plain
src/forge/Gui_Welcome.java svneol=native#text/plain
src/forge/Gui_WinLose.java svneol=native#text/plain
src/forge/HandSizeOp.java -text svneol=native#text/plain
src/forge/HumanPlayer.java -text svneol=native#text/plain
src/forge/IO.java svneol=native#text/plain
src/forge/ImageCache.java svneol=native#text/plain
src/forge/ImagePreviewPanel.java -text svneol=native#text/plain

37
src/forge/AIPlayer.java Normal file
View File

@@ -0,0 +1,37 @@
package forge;
public class AIPlayer extends Player{
public AIPlayer(String myName) {
this(myName, 20, 0);
}
public AIPlayer(String myName, int myLife, int myPoisonCounters) {
super(myName, myLife, myPoisonCounters);
}
public Player getOpponent() {
return AllZone.HumanPlayer;
}
////////////////
///
/// Methods to ease transition to Abstract Player class
///
///////////////
public boolean isHuman() { return false; }
public boolean isComputer() { return true; }
public boolean isPlayer(Player p1) {
return p1.getName().equals(this.name);
}
///////////////
///
/// End transition methods
///
///////////////
}//end AIPlayer class

View File

@@ -13,8 +13,8 @@ public class AllZone implements NewConstants {
//only for testing, should read decks from local directory
// public static final IO IO = new IO("all-decks");
public static final Player HumanPlayer = new Player("Human");
public static final Player ComputerPlayer = new Player("Computer");
public static final Player HumanPlayer = new HumanPlayer("Human");
public static final Player ComputerPlayer = new AIPlayer("Computer");
public static QuestData QuestData = null;
public static Quest_Assignment QuestAssignment = null;

View File

@@ -0,0 +1,37 @@
package forge;
public class HumanPlayer extends Player{
public HumanPlayer(String myName) {
this(myName, 20, 0);
}
public HumanPlayer(String myName, int myLife, int myPoisonCounters) {
super(myName, myLife, myPoisonCounters);
}
////////////////
///
/// Methods to ease transition to Abstract Player class
///
///////////////
public boolean isHuman() { return true; }
public boolean isComputer() { return false; }
public boolean isPlayer(Player p1) {
return p1.getName().equals(this.name);
}
///////////////
///
/// End transition methods
///
///////////////
public Player getOpponent() {
return AllZone.ComputerPlayer;
}
}//end HumanPlayer class

View File

@@ -2,11 +2,11 @@
package forge;
public class Player extends MyObservable{
private String name;
private int poisonCounters;
private int life;
private int assignedDamage;
public abstract class Player extends MyObservable{
protected String name;
protected int poisonCounters;
protected int life;
protected int assignedDamage;
public Player(String myName) {
this(myName, 20, 0);
@@ -23,24 +23,11 @@ public class Player extends MyObservable{
return name;
}
public boolean isHuman() {
return name.equals("Human");
}
public abstract boolean isHuman();
public abstract boolean isComputer();
public abstract boolean isPlayer(Player p1);
public boolean isComputer() {
return name.equals("Computer");
}
public boolean isPlayer(Player p1) {
return p1.getName().equals(this.name);
}
public Player getOpponent() {
if(isPlayer(AllZone.HumanPlayer)) {
return AllZone.ComputerPlayer;
}
else return AllZone.HumanPlayer;
}
public abstract Player getOpponent();
//////////////////////////
//
@@ -204,6 +191,8 @@ public class Player extends MyObservable{
return new CardList();
}
//public abstract void discard(int n, SpellAbility sa);
public String toString() {
return name;
}