Esempio n. 1
0
from plotly.graph_objs import Bar, Layout
from plotly import offline

from die import Die

die = Die()
die_2 = Die()
results = []

# gera o resultado
for roll_num in range(1000):
    result = die.roll() + die_2.roll()
    results.append(result)

# analisa o reusltado
frequencies = []
max_result = die.num_sides + die_2.num_sides

for value in range(1, max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

# visiualizando os resultados
x_values = list(range(1, max_result + 1))
data = [Bar(x=x_values, y=frequencies)]

x_axis_config = {'title': 'Result', 'dtick': 1}
y_axis_config = {'title': 'Frequencia'}

my_layout = Layout(title='Resultado de 1000 giros em dois d6',
                   xaxis=x_axis_config,
Esempio n. 2
0
import pygal
from die import Die

die = Die()
results = []

for roll_num in range(1000):
    result = die.roll()
    results.append(result)

frequencies = []

for value in range(1, die.num_sides+1):
    frequency = results.count(value)
    frequencies.append(frequency)

# Visualize the results
hist = pygal.Bar()

hist.title = "Results of rolling one D6 1000 times."
hist.x_labels = [str(value) for value in range(1, 7)]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6', frequencies)
hist.render_to_file('die_visual.svg')
Esempio n. 3
0
import pygal

from die import Die

d6 = Die()

# Make some rolls and store the results in a list.
results = [d6.roll() for _ in range(1000)]

# Analyze the results
frequencies = []

for value in range(1, d6.num_sides + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

# Visualize the results
hist = pygal.Bar()
hist.title = "Results of rolling one D6 1000 times."
hist.x_labels = [str(x) for x in range(1, d6.num_sides + 1)]
hist._x_title = "Result"
hist.y_title = "Frequecy of Result"

hist.add('D6', frequencies)
hist.render_to_file('die_visual_.svg')
Esempio n. 4
0
from die import Die
import pygal

die_1 = Die(8)
die_2 = Die(8)
results = []
for roll_num in range(100000):
    result = die_1.roll() + die_2.roll()
    results.append(result)

frequencies = []
for value in range(1, die_1.num_sides + die_2.num_sides + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

loops = []
for loop in range(1, die_1.num_sides + die_2.num_sides + 1):
    loops.append("%i" % loop)

hist = pygal.Bar()
hist.title = "Results of rolling one D6 1000 times"
hist.x_labels = loops
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D8+D8', frequencies)
hist.render_to_file('die_visual.svg')

print(frequencies)
Esempio n. 5
0
import pygal

from die import Die  # type: ignore

# 创建一个Die6和Die10
die_1 = Die(6)
die_2 = Die(10)

results = []
for value in range(50000):
    result = die_1.roll() + die_2.roll()
    results.append(result)

frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2, max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

hist = pygal.Bar()

hist.title = "Result of rolling a Die6 and Die10 50,000 times"
hist.x_labels = [num for num in range(2, max_result + 1)]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add("Die6 + Die10", frequencies)
hist.render_to_file('histogram_diff_dice.svg')
Esempio n. 6
0
 def reset(self):
     self.dice = []
     self.rewards = 0
     for i in range(0, self.game.dice_number):
         self.dice.append(Die())
Esempio n. 7
0
#15-6
from die import Die
import pygal


def num2char(x):
    return str(x)


die0 = Die()
die1 = Die()
results = []

for roll_num in range(1000):
    result = die0.roll() + die1.roll()
    results.append(result)

frequencies = []
max_result = die0.num_sides + die1.num_sides
for value in range(1, max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

hist = pygal.Bar()
hist.title = "Results of rolling  D6 1000 times."
hist.x_labels = list(map(num2char, list(range(1, max_result + 1))))
print(hist.x_labels)
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6+D6', frequencies)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@version: Python 3.6.3
@author: Seaworth
@software: PyCharm Community Edition
@file: dice_visual.py
@time: 2018/9/6 15:16
"""
import pygal
from die import Die
# 创建一个D6
die_1 = Die()
die_2 = Die(10)  # 10面的骰子

# 掷几次骰子,并将结果存储在一个列表中
results = []
for roll_num in range(50000):
    result = die_1.roll() + die_2.roll()  # 两个骰子之和为结果
    results.append(result)

# 分析结果
frequencies = []
max_value = die_1.num_sides + die_2.num_sides + 1
for value in range(1, max_value):
    frequency = results.count(value)  # results中有多少个value
    frequencies.append(frequency)

print(frequencies)

# 对结果进行可视化
Esempio n. 9
0
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time    : 2021/5/8 5:47 下午
# @Author  : Harvey Mei <*****@*****.**>
# @FileName: dice_visual.py
# @IDE     : PyCharm
# @GitHub  : https://github.com/harveymei/

import pygal
from die import Die

# 创建两个实例
die_1 = Die()
# die_2 = Die()
# 投掷两个面数不同骰子
die_2 = Die(10)  # 一个6面,一个10面

# 定义空列表用于存储结果
results = []
# for roll_num in range(1000):
for roll_num in range(50000):  # 修改为摇骰子50000次
    result = die_1.roll() + die_2.roll()
    results.append(result)

# 分析结果
frequencies = []
max_result = die_1.num_sides + die_2.num_sides  # 计算最大面数值
for value in range(2, max_result):  # 遍历最小面数值2到最大面数值之间数值
    frequency = results.count(value)  # 在结果列表中计数面数值出现的次数并赋值变量
    frequencies.append(frequency)  # 将统计结果写入列表
Esempio n. 10
0
        _, maskDots = cv2.threshold(maskDots, 75, 255, cv2.THRESH_BINARY_INV)
        kernelSizeDots = cv2.getTrackbarPos("Erode", "Trackbars")
        kernelDots = np.ones((2, 2), np.uint8)
        maskDots = cv2.erode(maskDots, kernelDots)
        #endregion

        # Find contours and draw them : Dice
        #region
        contours, _ = cv2.findContours(maskDice, cv2.RETR_TREE,
                                       cv2.CHAIN_APPROX_SIMPLE)

        for c in contours:
            approx = cv2.approxPolyDP(c, h[1], True)
            if len(approx) >= cv2.getTrackbarPos("Contours", "Trackbars"):
                coords = [a[0] for a in approx]
                d = Die(coords, 0, h[-1])
                if (d.isSquare()):
                    color = (0, 200, 0)
                    dice.append(Die(coords, 0, h[-1]))
                else:
                    color = (200, 0, 0)
                cv2.drawContours(frame, [approx], 0, (0, 200, 0),
                                 cv2.getTrackbarPos("Thiccness", "Trackbars"))
                cv2.drawContours(maskDice, [approx], 0, (90, 90, 90),
                                 cv2.getTrackbarPos("Thiccness", "Trackbars"))
                cv2.circle(frame, tuple(d.roundedCenter),
                           int(d.minCenterDistance), (0, 0, 255), 1)
                cv2.circle(frame, tuple(d.roundedCenter),
                           int(d.maxCenterDistance), (255, 255, 255), 1)
        #endregion
Esempio n. 11
0
'''
请模拟同时掷两个8面骰子1000次的结果。逐渐增加掷骰子的次数,直到系统不堪重负为止
'''
from die import Die

import pygal

# 创建两个D6的骰子
die1 = Die(8)
die2 = Die(8)
# 掷几次骰子,并将结果存储在一个列表中
results = [die1.roll() + die2.roll() for i in range(1000)]
# 分析结果,看每个数字出现了多少次

frequencies = [
    results.count(value)
    for value in range(2, die1.num_sides + die2.num_sides + 1)
]
print(frequencies)

# 对结果进行可视化
hist = pygal.Bar()  # 创建条形图
hist.title = "掷两个骰子2000次的结果"  # 用于标示直方图的字符串
hist.x_labels = list(range(2, die1.num_sides + die2.num_sides + 1))  # x轴的标签
hist.x_title = "Result"  # x轴的标题
hist.y_title = "Frequency of Result"  # y轴的标题

hist.add('D8+D8', frequencies)
'''
们使用add() 将一系列值添加到图表中(向它传递要给添加的值指定的标签,还有一个列表,
                                    其中包含 将出现在图表中的值)'''
Esempio n. 12
0
# Ex 9-13

from die import Die

six_sided_die = Die()
print("Rolling a 6-sided die 10 times:")
for nth_roll in range(10):
    six_sided_die.roll_die()

ten_sided_die = Die(10)
print("Rolling a 10-sided die 10 times:")
for nth_roll in range(10):
    ten_sided_die.roll_die()

twenty_sided_die = Die(20)
print("Rolling a 20-sided die 10 times:")
for nth_roll in range(10):
    twenty_sided_die.roll_die()
Esempio n. 13
0
import logging

from board import Board
from die import Die
from figure import Figure
from game import Game

logging.basicConfig(level=logging.INFO)
figures = [Figure(name="Päde"), Figure(name="Raffi")]
game = Game(board=Board.get_random_board(), die=Die(), figures=figures)

result = game.run()

print(result)
Esempio n. 14
0
import pygal
from die import Die

die = Die()
die_1 = Die()

results = [die.roll() * die_1.roll() for roll_num in range(1000)]
'''
for roll_num in range(1000):
	result=die.roll()+die_1.roll()
	results.append(result)
'''

frequencies = []
max_result = die.num_sides * die_1.num_sides

frequencies = [results.count(value) for value in range(1, max_result + 1)]
'''
for value in range(2,max_result+1):
	frequency=results.count(value)
	frequencies.append(frequency)
'''
hist = pygal.Bar()

hist.title = "result of rolling one D6"
hist.x_labels = [
    '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14',
    '15', '16', '17', '18', '19', '20', '21'
]
hist.x_title = "result"
hist.y_title = "frequency"
Esempio n. 15
0
def main():
    d = Die()
    b = Button()
Esempio n. 16
0
from die import Die
import pygal

# Create a D6
die = Die(48)

# Make some rolls, and store results in a list
results = []
for roll_num in range(500000):
    result = die.roll()
    results.append(result)

# Analyze the results
frequencies = []
for value in range(1, die.num_sides + 1):
    frequency = results.count(
        value)  # count how many times each number appears in results
    frequencies.append(frequency)

# Visualize the results
hist = pygal.Bar()

hist._title = "Results of rolling one D6 1000 times"
hist.x_labels = [str(x) for x in range(1, die.num_sides + 1)]

# for i in range(1, die.num_sides + 1):
#     hist.x_labels.append(i)

hist._x_title = "Result"
hist._y_title = "Frequency of Result"
Esempio n. 17
0
from die import Die
import pygal
D6 = Die()
values = []
frequencies = []
labels = []
#Make some rools an store the results in a list

for i in range(1000):
    values.append(D6.roll())
print(values)

#freq of the side
for side in range(1, D6.num_sides + 1):
    freq = values.count(side)
    frequencies.append(freq)
    labels.append(side)
print(frequencies)

#Visualize the results
hist = pygal.Bar()

hist.title = "Results"
hist.x_labels = labels
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6', frequencies)
hist.render_to_file('die_visual.svg')
Esempio n. 18
0
from die import Die

die6 = Die()
for t in range(1, 11):
    print(str(t) + " - ", end='')
    die6.roll_die()
print()

die10 = Die(10)
for t in range(1, 11):
    print(str(t) + " - ", end='')
    die10.roll_die()
print()

die20 = Die(20)
for t in range(1, 11):
    print(str(t) + " - ", end='')
    die20.roll_die()
Esempio n. 19
0
from die import Die
import pygal

#创建2个D6骰子
die_1 = Die()
die_2 = Die(10)
de = Die()
results = []
for roll_num in range(0, 50000):
    result = die_1.roll() + die_2.roll()
    results.append(result)
#分析结果
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2, max_result + 1):
    frquency = results.count(value)
    frequencies.append(frquency)

#对结果进行可视化
hist = pygal.Bar()

hist.title = "Results of rolling one D6 10000 times."
hist.x_labels = [
    '2', '3', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'
]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add('D6+D10', frequencies)
hist.render_to_file('die_visual.svg')
print(frequencies)
from die import Die

import matplotlib.pyplot as plt

# Criando dois dados D6.
die_1, die_2 = Die(), Die()

attempts = 10_000
x_results = range(2, 13)

# Faz alguns lançamentos e armazena os resultados em uma lista.
results = [die_1.roll() + die_2.roll() for roll_num in range(attempts)]

# Analiza os resultados.
max_result = die_1.num_sides + die_2.num_sides
frequencies = [results.count(value) for value in range(2, max_result + 1)]

# Usando o matplotlib
plt.bar(x_results, frequencies, color='green')

# Define o título do gráfico e nomeia os eixos
plt.title("Results of rolling tow D6 dice " + str(attempts) + " times.",
          fontsize=24)
plt.xlabel("Result", fontsize=14)
plt.ylabel("Frequency of Result")

# Define o tamanho dos rótulos das marcações
plt.tick_params(axis='both', labelsize=14)

plt.show()
Esempio n. 21
0
    #endregion

    # Find contours and draw them
    # Dice
    #region
    contours, _ = cv2.findContours(maskDice, cv2.RETR_TREE,
                                   cv2.CHAIN_APPROX_SIMPLE)

    dice = []
    for c in contours:
        approx = cv2.approxPolyDP(c,
                                  cv2.getTrackbarPos("Epsilon",
                                                     "Trackbars"), True)
        if len(approx) == 4:
            coords = [a[0] for a in approx]
            d = Die(coords, 0)
            if (d.isSquare()):
                color = (0, 200, 0)
                dice.append(Die(coords, 0, "blue"))
            else:
                color = (200, 0, 0)
            cv2.drawContours(frame, [approx], 0, color, 2)
            cv2.drawContours(maskDice, [approx], 0, (90, 90, 90), 2)
            cv2.circle(frame, tuple(d.roundedCenter), int(d.minCenterDistance),
                       (0, 0, 255), 3)
            cv2.circle(frame, tuple(d.roundedCenter), int(d.maxCenterDistance),
                       (255, 255, 255), 3)
    #endregion
    # Dots
    #region
    contours, _ = cv2.findContours(maskDots, cv2.RETR_TREE,
Esempio n. 22
0
from die import Die
from plotly.graph_objs import  Bar, Layout
from plotly import offline

# Create a D6
die = Die(6)

# Make some rolls, and store results in list
results = []
for roll_num in range(1000):
    result = die.roll()
    results.append(result)

# Analyze the results
frequencies = []
for value in range(1,die.num_sides+1):
    frequency = results.count(value)
    frequencies.append(frequency)
# Visualize the results
x_value = list(range(1, die.num_sides+1))
data = [Bar(x=x_value, y=frequencies)]
x_axis_config = {'title': 'Result'}
y_axis_config = {'title': 'Frequency of Results'}
my_layout = Layout(title='Results of rolling one D6 1000 times',
                   xaxis=x_axis_config, yaxis=y_axis_config)
offline.plot({'data': data, 'layout': my_layout}, filename='d6.html')
Esempio n. 23
0
from die import Die
import pygal

die1 = Die()
die2 = Die()

results = []
for roll_num in range(1000):
    result = die1.roll() + die2.roll()
    results.append(result)

#分析结果:每个点数出现的次数
frequencies = []
for value in range(1, die1.num_sides + die2.num_sides + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

#对结果进行可视化
hist = pygal.Bar()

hist.title = "Results of rolling two D6 dice 1000 times."
hist.x_labels = ['1', '2', '3', '4', '5', '6']
hist.x_title = 'Result'

hist.y_title = 'Frequency of Result'

hist.add('D6', frequencies)
hist.render_to_file('die_visual.svg')
Esempio n. 24
0
            next_y = self.y_values[-1] + y_step

            self.x_values.append(next_x)
            self.y_values.append(next_y)

# 15-6. Automatic Labels: Modify die.py and dice_visual.py by replacing the list
# we used to set the value of hist.x_labels with a loop to generate this list automatically.
# If you’re comfortable with list comprehensions, try replacing the other
# for loops in die_visual.py and dice_visual.py with comprehensions as well.

import pygal

from die import Die

# Create a D6.
die = Die()

# Make some rolls, and store results in a list.
results = [die.roll() for roll_num in range(1000)]

# Analyze the results.
frequencies = [results.count(value) for value in range(1, die.num_sides + 1)]

# Visualize the results.
hist = pygal.Bar()

hist.title = "Results of rolling one D6 1000 times."
hist.x_labels = [str(x) for x in range(1, die.num_sides + 1)]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
Esempio n. 25
0
    parser = argparse.ArgumentParser('Simple Dice Roller')
    parser.add_argument('--number_of_dice',
                        '-n',
                        dest='num_dice',
                        type=int,
                        default=1,
                        help='Number of dice to roll; default 1')
    parser.add_argument('--sides',
                        '-s',
                        dest='sides',
                        type=int,
                        default=6,
                        help='Sides of the die; default 6')
    args = parser.parse_args()

    print('Rolling {}d{}'.format(args.num_dice, args.sides))

    results = []

    for n in range(args.num_dice):
        my_die = Die(args.sides)
        result = my_die.roll()
        results.append(result)

    for result in results:
        print('Rolled: {}'.format(result))

    total = sum(results)

    print('Sum: {}'.format(total))
Esempio n. 26
0
import matplotlib.pyplot as plt
from die import Die

#Creating D6 and storing results of rolling 10000 times
die_1 = Die()
total_rolls = 500000

results = []
for roll in range(total_rolls):
    results.append(die_1.roll())

frequencies = []
for value in range(min(results), max(results) + 1):
    frequency_count = results.count(value)
    frequencies.append(frequency_count)

print(frequencies)
print(sum(frequencies))

plt.figure(figsize=(10, 8))
unique_values = list(set(results))
plt.plot(unique_values,
         frequencies,
         linewidth=2,
         marker="x",
         color="orange",
         markersize=10)
plt.axis([
    min(results) - 1,
    max(results) + 1,
    min(frequencies) - total_rolls * 0.01,
Esempio n. 27
0
 def __init__(self):
     """Has a pair of dice and an empty rolls list."""
     self._die1 = Die()
     self._die2 = Die()
     self._rolls = []
Esempio n. 28
0
import json
from die import Die
from collections import OrderedDict


def encounter_gen(location, die_role):
    with open(tables+location+'.json') as data_file:
        data = json.load(data_file)
    for entry in data['encounter']:
        if entry['roll'] == die_role:
            encounter_dict = OrderedDict()
            encounter_dict['encounter'] = entry['value']
            encounter_dict['is_lower'] = entry['lower']
            encounter_dict['is_italic'] = entry['italic']
            encounter_dict['is_bold'] = entry['bold']
            encounter_dict['is_special'] = entry['special']
            encounter_dict['number'] = entry['number']
            return encounter_dict

tables = "tables\\"
encounter_location = "abbica_mere"

encounter = encounter_gen(encounter_location, str(Die(6).three_die_straight()))

for x, y in encounter.items():
    print(f'{x:7} \t\t {str(y)}')

Esempio n. 29
0
# Author: Bojan G. Kalicanin
# Date: 24-Dec-2016
# 15-10. Practicing with Both Libraries: Try using matplotlib to make a
# die-rolling visualization, and use Pygal to make the visualization for
# a random walk.

import matplotlib.pyplot as plt
from die import Die

# Create two D6 dice.
die_1 = Die()
die_2 = Die()

# Make some rolls, and store results in a list.
results = []
[results.append(die_1.roll() + die_2.roll()) for roll_num in range(1000)]

# Analyze the results.
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
[
    frequencies.append(results.count(value))
    for value in range(2, max_result + 1)
]

x_values = [i for i in range(2, max_result + 1)]

plt.scatter(x_values, frequencies, edgecolor='none', s=10)
plt.title("Rolling two dice results.", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Result", fontsize=14)
Esempio n. 30
0
from die import Die

turn1 = Die(6, 6)
print(rolllist)