diff --git a/.idea/Python.DiceyLab.iml b/.idea/Python.DiceyLab.iml index 0a5fa1d..4e6ce24 100644 --- a/.idea/Python.DiceyLab.iml +++ b/.idea/Python.DiceyLab.iml @@ -5,7 +5,4 @@ - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8d7b733..71effa2 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,11 +2,10 @@ + + - - - + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/python/__pycache__/bins.cpython-38.pyc b/src/main/python/__pycache__/bins.cpython-38.pyc new file mode 100644 index 0000000..d87c2d9 Binary files /dev/null and b/src/main/python/__pycache__/bins.cpython-38.pyc differ diff --git a/src/main/python/__pycache__/dice.cpython-38.pyc b/src/main/python/__pycache__/dice.cpython-38.pyc new file mode 100644 index 0000000..4003cde Binary files /dev/null and b/src/main/python/__pycache__/dice.cpython-38.pyc differ diff --git a/src/main/python/__pycache__/simulation.cpython-38.pyc b/src/main/python/__pycache__/simulation.cpython-38.pyc new file mode 100644 index 0000000..69847ac Binary files /dev/null and b/src/main/python/__pycache__/simulation.cpython-38.pyc differ diff --git a/src/main/python/bins.py b/src/main/python/bins.py index 034e789..e81c4ff 100644 --- a/src/main/python/bins.py +++ b/src/main/python/bins.py @@ -1,10 +1,15 @@ class Bins: - def __init__(self, numrolls): - self.numberOfRolls = numrolls - - bin = {} - for x in range (self.numberOfRolls, self.numberOfRolls * 6): - result ={x:0} - bin.append(result) - return bin + def __init__(self, numDice): + self.numberOfDice = numDice + self.list = [] + + + def create_bin(self): + for x in range(self.numberOfDice, self.numberOfDice * 6 + 1): + self.list.append(0) + + def increment_bin(self,sum): + index = sum - self.numberOfDice + checkthis = self.list[index] + 1 + self.list[index] = checkthis \ No newline at end of file diff --git a/src/main/python/dice.py b/src/main/python/dice.py index 5ed4499..0ff5230 100644 --- a/src/main/python/dice.py +++ b/src/main/python/dice.py @@ -2,13 +2,12 @@ class Dice: - MAX = 6 - def __init__(self, numrolls): - self.numberOfRolls = numrolls + def __init__(self, numDice): + self.numberOfDice = numDice - def tossandsum(self): + def tossAndSum(self): toss = 0 - for i in range(self.numberOfRolls): + for i in range(self.numberOfDice): toss = toss + random.randint(1, 6) return toss diff --git a/src/main/python/mainapplication.py b/src/main/python/mainapplication.py new file mode 100644 index 0000000..1b46146 --- /dev/null +++ b/src/main/python/mainapplication.py @@ -0,0 +1,4 @@ +from src.main.python.simulation import Simulation + +sim = Simulation(3,1000000) +sim.runSimulation() \ No newline at end of file diff --git a/src/main/python/simulation.py b/src/main/python/simulation.py index 84a5dd4..75f1215 100644 --- a/src/main/python/simulation.py +++ b/src/main/python/simulation.py @@ -1,16 +1,29 @@ +from src.main.python.bins import Bins from src.main.python.dice import Dice -# from src.main.python.bins import ????? class Simulation: + def __init__(self, numberdice, numberrolls): self.numberOfDice = numberdice self.numberOfRolls = numberrolls + self.dice = Dice(self.numberOfDice) + self.bins = Bins(self.numberOfDice) def runSimulation(self): + self.bins.create_bin() for i in range(self.numberOfRolls): - dice1 = Dice(self.numberOfDice) - dicesum = dice1.tossandsum() - print(dicesum) - # add dicesum to bin + dicesum = self.dice.tossAndSum() + self.bins.increment_bin(dicesum) + self.printStars(self.bins.list) + + + + def printStars(self, list): + for x in list: + stars = "" + for y in range(1, int(100*x/self.numberOfRolls)): + stars = stars + "*" + + print("sum: %-5s times: %-7s percent: %-9s : %s" % (list.index(x) + self.numberOfDice, x, x/self.numberOfRolls, stars)) diff --git a/src/test/python/dicey_test.py b/src/test/python/dicey_test.py new file mode 100644 index 0000000..5118357 --- /dev/null +++ b/src/test/python/dicey_test.py @@ -0,0 +1,22 @@ +import unittest +from src.main.python.bins import Bins +from src.main.python.dice import Dice +from src.main.python.simulation import Simulation + + +class TestDiceyLab(unittest.TestCase): + def test_createBin(self): + bins = Bins(5) + bins.create_bin() + self.assertTrue(len(bins.list), 26) + + def test_tossAndSum(self): + for x in range(0, 10000): + num = Dice(5).tossAndSum() + self.assertTrue(num <= 30) + self.assertTrue(num >= 5) + + + +if __name__ == '__main__': + unittest.main() diff --git a/test/python/dicey_test.py b/test/python/dicey_test.py deleted file mode 100644 index 58e5dfe..0000000 --- a/test/python/dicey_test.py +++ /dev/null @@ -1,10 +0,0 @@ -import unittest - - -class MyTestCase(unittest.TestCase): - def test_something(self): - self.assertEqual(True, False) - - -if __name__ == '__main__': - unittest.main()