def __init__(self):
     super().__init__()
     self.ui = Ui_simulationDialog()
     self.ui.setupUi(self)
     self.sim = Simulator()
     self.ui.armyOfLightSpinner.setValue(self.sim.get_light_army_size())
     self.ui.armyOfDarknessSpinner.setValue(self.sim.get_dark_army_size())
     self.ui.setArmySizeButton.clicked.connect(self.set_army_size)
     self.ui.runButton.clicked.connect(self.run_simulation)
     self.ui.quitButton.clicked.connect(self.quit_button)
     self.show()
Exemplo n.º 2
0
 def setUp(self) -> None:
     self.w = Wheel()
     bb = BinBuilder(self.w)
     bb.buildBins()
     self.t = Table()
     self.p = Passenger57(self.t, self.w)
     self.g = Game(self.t, self.w)
     self.sim = Simulator(self.p, self.g)
class SimulationForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = Ui_simulationDialog()
        self.ui.setupUi(self)
        self.sim = Simulator()
        self.ui.armyOfLightSpinner.setValue(self.sim.get_light_army_size())
        self.ui.armyOfDarknessSpinner.setValue(self.sim.get_dark_army_size())
        self.ui.setArmySizeButton.clicked.connect(self.set_army_size)
        self.ui.runButton.clicked.connect(self.run_simulation)
        self.ui.quitButton.clicked.connect(self.quit_button)
        self.show()

    def disp_victor(self, victor):
        self.ui.victoryResultsLabel.setText(victor)

    def run_simulation(self):
        self.sim.run_simulation()
        self.ui.armyOfLightSpinner.setValue(self.sim.get_light_army_size())
        self.ui.armyOfDarknessSpinner.setValue(self.sim.get_dark_army_size())
        self.disp_victor(self.sim.get_victor())

    def quit_button(self):
        sys.exit(app.exec_())

    def set_army_size(self):
        self.sim.dark_army.generate_army("Dark",
                                         self.ui.armyOfDarknessSpinner.value())
        self.sim.light_army.generate_army("Light",
                                          self.ui.armyOfLightSpinner.value())
Exemplo n.º 4
0
if __name__ == '__main__':
    
    ast = [0,1,2,3,4]
    atrans = [[0.5,0.5,0,0,0],[0.5,0,0.5,0,0],[0,0.5,0,0.5,0],[0,0,0.5,0,0.5],[0,0,0,0,1]]
    aLamda = 1
    aReward = [-1,-1,-1,-1,0]
    
    aPro = Problem(ast, atrans, aLamda, aReward)
    
    aDP = DP(aPro)
    print('DP result:')
    print(aDP.runDP(1000))
    print('---------------------------------------------')
    
    aSim = Simulator(aPro, 4)
    Historys = aSim.batchSimulate(0, 100)
    aEsti = Estimator(aPro, Historys)
    
    print('TD result a=N:')
    print(aEsti.TD(Historys))
    print('---------------------------------------------')
    
    alpha = 0.05
    print('TD result a='+str(alpha))
    print(aEsti.TDalpha(Historys,alpha))
    print(aEsti.TDalphaLast(Historys, alpha))
    print(aEsti.TDalphaNstep(Historys, 0, 200))
    
    print('---------------------------------------------')
    
Exemplo n.º 5
0
import json

num = 1
path = "./astablishment_space/SinglePendulum/astablishment_space" + str(num)
os.chdir(path)

input_space = np.load("input_space.npy")
with open('param.json', 'r') as json_file:
    json_data = json.load(json_file)

axes_param_list = [
    list(param_dict.values()) for param_dict in json_data["axes"]
]
print(axes_param_list)
axes = [Axis(*param) for param in axes_param_list]
print(axes)
model = SinglePendulum(0, 0, **json_data["model_param"])
t_s = TopologicalSpace(*axes)

t_s.show_concentration_img(axes[0], axes[1], input_space)

simulator = Simulator(t_s, input_space, model)
simulator.model.state = (-simulator.model.state[0] - 0.1,
                         simulator.model.state[1])
df = simulator.do()
simulator.t_s.show_concentration_img_with_tragectory(simulator.t_s.axes[0],
                                                     simulator.t_s.axes[1],
                                                     simulator.input_space,
                                                     df["theta"],
                                                     df["theta_dot"])
Exemplo n.º 6
0
 def testDefaultMutableList(self):
     sim1 = Simulator(self.p, self.g)
     sim2 = Simulator(self.p, self.g)
     sim1.maximums.append(1)
     self.assertEqual(len(sim2.maximums), 0)
Exemplo n.º 7
0
from src.Simulator import Simulator

if __name__ == "__main__":
    simulator = Simulator('Fuzzy Traffic System')
    simulator.start()
Exemplo n.º 8
0
class UI:
    def __init__(self, initial, final, level, pivot):
        self.simulator = Simulator(initial, final, level, pivot)
        self.background = Window(*(0, 0), *os.get_terminal_size(),
                                 *os.get_terminal_size(), '01 ')

    def render_background_with_form(self, form):
        x = self.background.x + (self.background.width - form.width) // 2
        y = self.background.y + (self.background.height - form.height) // 2
        form.set_x_y(x, y)
        for i in range(100000):
            self.background.render_window(form)
            time.sleep(0.3)
            self.background.push_new_line_on_window()

    def one_game(self, form):
        tick = 0.3
        form.set_string('Enter size:', *(1, 1))
        time.sleep(tick)
        size = form.get_and_set_string_from_input(2, 1)

        data = self.simulator.get_data(int(size))
        initial = self.simulator.get_initial(data)
        form.set_string(initial, *(3, 1))
        time.sleep(tick)

        form.set_string('Enter string:', *(4 + 2, 1))
        time.sleep(tick)
        user_input = form.get_and_set_string_from_input(5 + 2, 1)

        form.set_string('Result:', *(6 + 2, 1))
        time.sleep(tick)
        result = self.simulator.validate_input(user_input, data)
        if result['status'] == 'SUCCESS':
            i = 7
            form.set_string('SUCCESS', *(7 + 2, 1))
            time.sleep(tick)
        else:
            for i, message in enumerate(result['messages'], start=7 + 2):
                result = ''
                if message[0] == 'incompatible':
                    result = f'#{message[1]}, expected {message[3]} but was {message[2]}'
                else:
                    result = f'Incorrect size'

                form.set_string(result, *(i, 1))
                time.sleep(tick)

        form.set_string('pause', *(i + 1 + 2, 1))
        time.sleep(tick)
        user_input = form.get_and_set_string_from_input(i + 2 + 2, 1)
        form.clean()

    def run(self):
        width, height = os.get_terminal_size()

        form = Form(width // 2, height // 2)
        thread = threading.Thread(target=self.render_background_with_form,
                                  args=([form]))
        thread.start()

        while True:
            self.one_game(form)
Exemplo n.º 9
0
 def __init__(self, initial, final, level, pivot):
     self.simulator = Simulator(initial, final, level, pivot)
     self.background = Window(*(0, 0), *os.get_terminal_size(),
                              *os.get_terminal_size(), '01 ')
def test_simulator_turn():
    sim = Simulator()
    assert sim.turn(sim.dark_army, sim.light_army) is False
def test_simulator_has_armies():
    sim = Simulator()
    assert len(sim.dark_army.unit) > 0
    assert len(sim.light_army.unit) > 0
def test_simulator_run_simulation():
    sim = Simulator()
    sim.dark_army.generate_army("Dark", 5)
    sim.light_army.generate_army("Light", 5)
    sim.run_simulation()
    assert sim.victory is True