View difference between Paste ID: sgYzrxmW and c0CQJ0gB
SHOW: | | - or go back to the newest paste.
1
package arcen;
2
3
import java.util.Random;
4
5
/**
6
 * @author Pluto
7
 */
8
public class ArcenGames {
9
    
10
    public static void main(String[] args) {
11
        //Ahoy a company!
12
        ArcenGames ag = new ArcenGames();
13
    }
14
    
15
    //Global random generator, never know what you find when you get out.
16
    Random r = new Random();
17
18
    ArcenGames() {
19
        for (Game g : Game.values()) {
20
            Keith keith = new Keith(r);
21
            for (int hour = 9; hour < 17; hour++) {
22
                switch (g) {
23
                    case AI_WAR:
24
                        if (!g.getGameKilled()) {
25
                            AIWar a = new AIWar();
26
                            int weight = r.nextInt(100);
27
                            if (weight > 80) {
28
                                keith.addPain(a);
29
                            } else if (weight <= 80 && weight > 5) {
30
                                keith.fixBugs(a);
31
                            } else if (weight <= 5 && weight > 0) {
32
                                keith.addToExpansion(a);
33
                            } else  if (weight == 0 ){
34
                                //He killed it.
35
                                g.setGameKilled(true);
36
                                close();
37
                            } else {
38
                                //Keith wins the powerball and runs away.
39
                                close();
40
                            }
41
                        }
42
                        break;
43
                    case A_VALLEY_WITHOUT_WIND:
44
                        if (!g.getGameKilled()) {
45
                            keith.idunknowwhatthisgamereallyis(10);
46
                        }
47
                        break;
48
                    case TIDALIS:
49
                        if (!g.getGameKilled()) {
50
                            keith.ialsodontknowwhatsinthisgame();
51
                        }
52
                        break;
53
                }
54
            }
55
        }
56
    }
57
58
    private void close() {
59
        Runtime.getRuntime().exit(0);
60
    }
61
}
62
63
//Arcen's games.
64
class Keith {
65
66
    //Keith is a person.  Person's have health.  Some people are healthy.  Some people are not.
67
    double health;
68
    //Keith has feelings!  Though sometimes I wonder...
69
    double feelings;
70
    //Keith is fickle.  Very very fickle.
71
    double fickleness;
72
    //Keith has a work load. This is part of having a job.
73
    double workLoad;
74
    Random r;
75
76
    Keith(Random r) {
77
        health = r.nextDouble();
78
        feelings = r.nextDouble();
79
        fickleness = r.nextDouble();
80
        workLoad = r.nextDouble();
81
        this.r = r;
82
    }
83
84
    double getHealth() {
85
        return health;
86
    }
87
88
    double getFeelings() {
89
        return feelings;
90
    }
91
92
    double getFickleness() {
93
        return fickleness;
94
    }
95
96
    double getWorkLoad() {
97
        return workLoad;
98
    }
99
100
    /**
101
     * This should be self explanatory.
102
     */
103
    void idunknowwhatthisgamereallyis(int i) {
104
        //umm, what?
105
        throw new UnsupportedOperationException("Not yet implemented");
106
    }
107
108
    /**
109
     * This should also be self explanatory.
110
     */
111
    void ialsodontknowwhatsinthisgame() {
112
        //yeah, above.
113
        throw new UnsupportedOperationException("Not yet implemented");
114
    }
115
116
    /**
117
     * Keith adds something to make AI War more painful.
118
     *
119
     * @param a
120
     */
121
    void addPain(AIWar a) {
122
        if (this.works()) {
123
            //No limit in the pain threshold.
124
            a.setPainThreshold(a.getPainThreshold() + 1);
125
        }
126
    }
127
128
    /**
129
     * Keith fixes bugs inherent in AI war.
130
     *
131
     * @param a
132
     */
133
    void fixBugs(AIWar a) {
134
        if (this.works()) {
135
            //Constantly fix bugs.
136
            if (a.getNumBugs() > 0) {
137
                a.setNumBugs(a.getNumBugs() - 1);
138
            } else {
139
                //...  but if they all get fixed, inevitably more have creeped in.
140
                a.setNumBugs(7);
141
            }
142
        }
143
    }
144
145
    /**
146
     * Keith adds to the expansion progress of AI war.
147
     *
148
     * @param a
149
     */
150
    void addToExpansion(AIWar a) {
151
        if (this.works()) {
152
            //Still working towards the next expansion!
153
            if (a.getExpansionProgress() < 100) {
154
                a.setExpansionProgress(a.getExpansionProgress() + 1);
155
            } else {
156
                //And if it's finished, there's always a new one to start.
157
                a.setExpansionProgress(0);
158
            }
159
        }
160
    }
161
162
    /**
163
     * Simple determination of whether Keith gets work done.
164
     *
165
     * @return Whether Keith works.
166
     */
167
    private boolean works() {
168
        if (workLoad <= .4) {
169
            //Keith got lazy and procrastinated as he thought he didn't have much to do.
170
            workLoad += .1;
171
            return false;
172
        }
173
        if (feelings <= .2) {
174
            //Keith is in too bad of a mood to work.
175
            //But, the mood goes up slowly.
176
            feelings += .1;
177
            return false;
178
        }
179
        if (health <= .5) {
180
            //Keith is not feeling well.  He takes a trip around go.
181
            health += .2;
182
            return false;
183
        }
184
        if (fickleness >= .5) {
185
            //Keith feels fickle.  He goes swimming with Old Greg.
186
            fickleness -= .1;
187
            return false;
188
        }
189
190
        //Keith does work!
191
        workLoad -= .02;
192
        feelings -= .02;
193
        health -= .02;
194
        fickleness += .02;
195
        return true;
196
    }
197
}
198
199
class AIWar extends ArcenGames {
200
201
    int painThreshold = 75;
202
    int numBugs = 7;
203
    int expansionProgress = 25;
204
205
    public int getExpansionProgress() {
206
        return expansionProgress;
207
    }
208
209
    public void setExpansionProgress(int expansionProgress) {
210
        this.expansionProgress = expansionProgress;
211
    }
212
213
    public int getNumBugs() {
214
        return numBugs;
215
    }
216
217
    public void setNumBugs(int numBugs) {
218
        this.numBugs = numBugs;
219
    }
220
221
    public int getPainThreshold() {
222
        return painThreshold;
223
    }
224
225
    public void setPainThreshold(int painThreshold) {
226
        this.painThreshold = painThreshold;
227
    }
228
}
229
230
//Arcen's games.
231
enum Game {
232
233
    AI_WAR(false),
234
    A_VALLEY_WITHOUT_WIND(false),
235
    TIDALIS(false);
236
    private boolean GAME_KILLED;
237
238
    Game(boolean g) {
239
        this.GAME_KILLED = g;
240
    }
241
242
    boolean getGameKilled() {
243
        return GAME_KILLED;
244
    }
245
246
    void setGameKilled(boolean state) {
247
        this.GAME_KILLED = state;
248
    }
249
}