Author: UprightPath (posted 2012-07-27 06:26:28, viewed 109 times)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
| import java.util.ArrayList;
public class TurnStateContext {
private ArrayList<TurnState> critters = new ArrayList<TurnState>();
public TurnStateContext() {
}
public void addState(TurnState state) {
if (critters.isEmpty()) {
state.enterState();
}
critters.add(state);
}
public void performAction() {
if (!critters.isEmpty()) {
critters.get(0).performAction();
if (critters.get(0).hasPerformedAction()) {
critters.get(0).exitState();
critters.add(critters.get(0));
critters.remove(0);
critters.get(0).enterState();
}
} else {
System.out.println("Nothing to perform an action on, oh-no!");
}
}
public static void main(String[] args) {
TurnStateContext context = new TurnStateContext();
context.addState(new PlayerTurnState(context));
context.addState(new MobTurnState(context, "Mob 1"));
context.addState(new MobTurnState(context, "Mob 2"));
for (int i = 0; i < 100; i++) {
context.performAction();
}
}
}
public abstract class TurnState {
protected TurnStateContext context;
protected boolean performedAction;
public TurnState(TurnStateContext context) {
this.context = context;
}
public void enterState() {
performedAction = false;
enterStateImplement();
}
protected abstract void enterStateImplement();
public void exitState() {
exitStateImplement();
}
protected abstract void exitStateImplement();
public abstract void performAction();
public boolean hasPerformedAction() {
return performedAction;
}
}
public class PlayerTurnState extends TurnState {
public PlayerTurnState(TurnStateContext context) {
super(context);
}
@Override
protected void enterStateImplement() {
}
@Override
protected void exitStateImplement() {
}
@Override
public void performAction() {
System.out.println("This is where the player takes input!");
this.performedAction = true;
}
}
public class MobTurnState extends TurnState {
private String name;
public MobTurnState(TurnStateContext context, String name) {
super(context);
this.name = name;
}
@Override
protected void enterStateImplement() {
}
@Override
protected void exitStateImplement() {
}
@Override
public void performAction() {
System.out.println("This is where " + name + " is deciding what to do!");
this.performedAction = true;
}
} |
Special syntax:
- To highlight a line (yellow background), prefix it with '@@'
- To indicate that a line should be removed (red background), prefix it with '-'
- To indicate that a line should be added (green background), prefix it with '+'
- To post multiple snippets, seperate them by '~~~~'
|
Add your game by posting it in the WIP section,
or publish it in Showcase.
The first screenshot will be displayed as a thumbnail.
|
|