diff options
author | Camil Staps | 2015-05-19 23:25:28 +0200 |
---|---|---|
committer | Camil Staps | 2015-05-19 23:25:28 +0200 |
commit | c78f13b422d5f8ea61bda50a270d557b0dfceb95 (patch) | |
tree | ac77c335ad604af01148e657efb93218d717f471 /Week13 Die/src/com | |
parent | week 11 & 12 -> readme (diff) |
Week13 die
Diffstat (limited to 'Week13 Die/src/com')
-rw-r--r-- | Week13 Die/src/com/camilstaps/die/Die.java | 47 | ||||
-rw-r--r-- | Week13 Die/src/com/camilstaps/die/Player.java | 65 | ||||
-rw-r--r-- | Week13 Die/src/com/camilstaps/die/Week13Die.java | 45 |
3 files changed, 157 insertions, 0 deletions
diff --git a/Week13 Die/src/com/camilstaps/die/Die.java b/Week13 Die/src/com/camilstaps/die/Die.java new file mode 100644 index 0000000..d83906a --- /dev/null +++ b/Week13 Die/src/com/camilstaps/die/Die.java @@ -0,0 +1,47 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Camil Staps <info@camilstaps.nl> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.camilstaps.die; + +import java.util.Random; + +/** + * A simple die + * @author Camil Staps, s4498062 + */ +public class Die { + private final Random rand; + public static final int MAX_PIPS = 6; + + public Die() { + rand = new Random(); + } + + /** + * Roll the die + * @return the number of pips + */ + public int roll() { + return rand.nextInt(MAX_PIPS) + 1; + } +}
\ No newline at end of file diff --git a/Week13 Die/src/com/camilstaps/die/Player.java b/Week13 Die/src/com/camilstaps/die/Player.java new file mode 100644 index 0000000..86b379f --- /dev/null +++ b/Week13 Die/src/com/camilstaps/die/Player.java @@ -0,0 +1,65 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Camil Staps <info@camilstaps.nl> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.camilstaps.die; + +/** + * A player rolling a die + * @author Camil Staps, s4498062 + */ +public class Player implements Runnable { + private final Die die; + private final String name; + private final int numberOfThrows; + private int pipss[]; + + /** + * The player will perform a number of rolls of a die + * @param name the name of the player + * @param die the die to use + * @param numberOfThrows the number of rolls + */ + public Player(String name, Die die, int numberOfThrows) { + this.die = die; + this.name = name; + this.numberOfThrows = numberOfThrows; + } + + @Override + public void run() { + pipss = new int[numberOfThrows]; + for (int i = 0; i < numberOfThrows; i++) { + int pips = die.roll(); + pipss[i] = pips; + System.err.println(name + " throws " + pips + " in turn " + i); // Only debugging output; so stderr + } + } + + /** + * The results we've found + * @return the results of the die rolls + */ + public int[] getPipss() { + return pipss; + } +} diff --git a/Week13 Die/src/com/camilstaps/die/Week13Die.java b/Week13 Die/src/com/camilstaps/die/Week13Die.java new file mode 100644 index 0000000..1e26b09 --- /dev/null +++ b/Week13 Die/src/com/camilstaps/die/Week13Die.java @@ -0,0 +1,45 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Camil Staps <info@camilstaps.nl> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.camilstaps.die; + +/** + * Solutions to week 13, part 1 + * @author Camil Staps, s4498062 + */ +public class Week13Die { + + private static final int THROWS = 1; + + /** + * Usage: java Week13Die Alfred Bert Chris ... + * @param args the command line arguments / the names of the players + */ + public static void main(String[] args) { + Die die = new Die(); + for (String name : args) { + (new Thread(new Player(name, die, THROWS))).start(); + } + } + +} |