Пример #1
0
 def __init__(self, screen):
     x = 0
     y = 770
     self.lis = list()
     for i in range(20):
         self.lis.append(floor_class.Floor(x, y, screen))
         x += 75
     self.lis.append(start.Start(75, 748, screen))
     self.lis.append(life.Life(230, 30, screen))
     self.lis.append(life.Life(130, 30, screen))
     self.lis.append(floor_class.Floor(-75, 697, screen))
     self.lis.append(life.Life(30, 30, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1200, 581, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(400, 728, screen))
     self.lis.append(player_class.Player(100, 465, screen))
Пример #2
0
    def __init__(self, x, y, l):
        super().__init__()
        self.game = life.Life(x, y, l) #start up with the 10x10 field, no looping screen
        self.drawCells()
        grid = QGridLayout()
        for i in range(self.game.length()):
            for j in range(self.game.width()):
                grid.addWidget(self.cellmatrix[i][j], i, j)

        self.setLayout(grid)
Пример #3
0
    def test_run(self):
        mock_world_file = """<?xml version="1.0" encoding="UTF-8"?>
            <life>
               <world>
                  <cells>2</cells> // Dimension of the square "world"
                  <species>2</species> // Number of distinct species
                  <iterations>10</iterations> // Number of iterations to be calculated
               </world>
               <organisms>
                  <organism>
                     <x_pos>0</x_pos> // x position
                     <y_pos>0</y_pos> // y position
                     <species>1</species> // Species type
                  </organism>
                  <organism>
                     <x_pos>1</x_pos>
                     <y_pos>0</y_pos>
                     <species>1</species>
                  </organism>
                  <organism>
                     <x_pos>0</x_pos>
                     <y_pos>1</y_pos>
                     <species>1</species>
                  </organism>
                  <organism>
                     <x_pos>1</x_pos>
                     <y_pos>1</y_pos>
                     <species>2</species>
                  </organism>
               </organisms>
            </life>"""

        with open('tmp_seed.xml', 'w') as text_file:
            text_file.write(mock_world_file)

        self.simulation = life.Life('tmp_seed.xml',
                                    output_xml_file='xml/out.xml')
        expected_world = [
            life.Organism(0, 0, 1).type,
            life.Organism(0, 1, 1).type,
            life.Organism(1, 0, 1).type,
            life.Organism(1, 1, 1).type
        ]
        run_world = []

        for x in self.simulation.run():
            for cell in x:
                if cell:
                    run_world.append(cell.type)
                else:
                    run_world.append(None)

        self.assertEqual(run_world, expected_world)
Пример #4
0
 def __init__(self, screen, col_life):
     x = 0
     y = 770
     self.col_life = col_life
     self.lis = list()
     for i in range(20):
         self.lis.append(floor_class.Floor(x, y, screen))
         x += 75
     self.lis.append(start.Start(75, 748, screen))
     self.lis.append(fire.Fire(200, 737, screen))
     self.lis.append(fire.Fire(900, 737, screen))
     self.lis.append(fire.Fire(981, 737, screen))
     self.lis.append(cube.Cube(500, 684, screen))
     self.lis.append(cube.Cube(586, 684, screen))
     self.lis.append(cube.Cube(586, 598, screen))
     self.lis.append(cube.Cube(672, 684, screen))
     self.lis.append(cube.Cube(672, 598, screen))
     self.lis.append(cube.Cube(758, 684, screen))
     self.lis.append(fire.Fire(758, 655, screen))
     self.lis.append(flat.Flat(930, 500, screen))
     if self.col_life == 3:
         self.lis.append(life.Life(230, 30, screen))
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 2:
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 1:
         self.lis.append(life.Life(30, 30, screen))
     self.lis.append(die_player.DPlayer(2000, 2000, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1300, 581, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(1005, 452, screen))
     self.lis.append(player_class.Player(100, 465, screen))
Пример #5
0
 def breed(self):
     num_alive = self.num_life - self.upd_num
     new_life_array = []
     for idx in range(self.upd_num):
         idx1, idx2 = random.randint(0, num_alive - 1), random.randint(
             0, num_alive - 1)
         father1, father2 = self.life_array[idx1], self.life_array[idx2]
         # print(father1.__gene__(), father2.__gene__())
         chd_gene1 = cross_gene(father1.__gene__(), father2.__gene__())
         new_life_array.append(life.Life(chd_gene1))
         # new_life_array.append(Life(chd_gene2))
     self.life_array = new_life_array + self.life_array_alive
     return
Пример #6
0
    def __init__(self, num_life, gene_init, upd_prob, mutation_prob):
        self.num_life = num_life
        self.life_array = []
        self.upd_num = int(upd_prob * num_life)
        self.mutation_num = int(mutation_prob * num_life)
        self.life_array_alive = []
        self.mutation_idx_buf = [idx for idx in range(num_life)]
        for idx in range(num_life):
            gene_tmp = [x for x in gene_init]
            random.shuffle(gene_tmp)
            # print(gene_tmp)
            self.life_array.append(life.Life(gene_tmp))

        return
Пример #7
0
 def __init__(self, screen, col_life):
     self.lis = []
     self.col_life = col_life
     self.lis.append(floor_class.Floor(0, 600, screen))
     self.lis.append(floor_class.Floor(75, 600, screen))
     self.lis.append(floor_class.Floor(150, 600, screen))
     self.lis.append(floor_class.Floor(225, 600, screen))
     self.lis.append(floor_class.Floor(225, 675, screen))
     self.lis.append(floor_class.Floor(225, 750, screen))
     self.lis.append(floor_class.Floor(300, 750, screen))
     x = 300
     for i in range(11):
         self.lis.append(floor_class.Floor(x, 750, screen))
         x += 75
     self.lis.append(floor_class.Floor(x, 750, screen))
     self.lis.append(floor_class.Floor(x, 675, screen))
     self.lis.append(floor_class.Floor(x, 600, screen))
     for i in range(5):
         self.lis.append(floor_class.Floor(x, 600, screen))
         x += 75
     self.lis.append(fire.Fire(300, 717, screen))
     self.lis.append(fire.Fire(381, 717, screen))
     self.lis.append(cube.Cube(462, 664, screen))
     self.lis.append(cube.Cube(548, 664, screen))
     self.lis.append(cube.Cube(773, 664, screen))
     self.lis.append(cube.Cube(859, 664, screen))
     self.lis.append(cube.Cube(945, 664, screen))
     self.lis.append(fire.Fire(945, 635, screen))
     self.lis.append(cube.Cube(859, 578, screen))
     self.lis.append(flat.Flat(640, 430, screen))
     self.lis.append(start.Start(75, 578, screen))
     if self.col_life == 3:
         self.lis.append(life.Life(230, 30, screen))
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 2:
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 1:
         self.lis.append(life.Life(30, 30, screen))
     self.lis.append(die_player.DPlayer(2000, 2000, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1350, 420, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(670, 381, screen))
     self.lis.append(player_class.Player(100, 415, screen))
Пример #8
0
 def __init__(self, screen, col_life):
     x = 0
     self.col_life = col_life
     y = 770
     self.lis = list()
     for i in range(16):
         self.lis.append(floor_class.Floor(x, y, screen))
         x += 75
     x -= 75
     self.lis.append(floor_class.Floor(x, 695, screen))
     self.lis.append(floor_class.Floor(x, 620, screen))
     self.lis.append(floor_class.Floor(x, 545, screen))
     for i in range(4):
         x += 75
         self.lis.append(floor_class.Floor(x, 545, screen))
     self.lis.append(fire.Fire(x - 10, 516, screen))
     self.lis.append(cube.Cube(250, 684, screen))
     self.lis.append(cube.Cube(336, 684, screen))
     self.lis.append(cube.Cube(422, 684, screen))
     self.lis.append(cube.Cube(508, 684, screen))
     self.lis.append(cube.Cube(336, 598, screen))
     self.lis.append(cube.Cube(422, 598, screen))
     self.lis.append(fire.Fire(700, 741, screen))
     self.lis.append(fire.Fire(771, 741, screen))
     self.lis.append(fire.Fire(862, 741, screen))
     self.lis.append(fire.Fire(933, 741, screen))
     self.lis.append(fire.Fire(1004, 741, screen))
     self.lis.append(start.Start(75, 748, screen))
     if self.col_life == 3:
         self.lis.append(life.Life(230, 30, screen))
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 2:
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 1:
         self.lis.append(life.Life(30, 30, screen))
     self.lis.append(shadow_block.SBlock(600, 500, screen))
     self.lis.append(shadow_block.SBlock(860, 400, screen))
     self.lis.append(die_player.DPlayer(2000, 2000, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1300, 356, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(620, 721, screen))
     self.lis.append(player_class.Player(100, 465, screen))
Пример #9
0
import Tkinter, sys, life, util

# runlife.py
# Jeff Jacobs, for CS221

boardFile = sys.argv[1]

game = life.Life(util.loadBoard(boardFile))

root = Tkinter.Tk()
root.wm_title("Life!!!")

cells = [[0 for x in range(game.getNumRows())]
         for y in range(game.getNumCols())]

for r in range(game.getNumRows()):
    for c in range(game.getNumCols()):
        alive = game.isAlive(r, c)
        color = ""
        if alive:
            color = "white"
        else:
            color = "black"
        cells[r][c] = Tkinter.Canvas(root,
                                     background=color,
                                     width=12,
                                     height=12,
                                     borderwidth=0)
        cells[r][c].grid(row=r, column=c)

Пример #10
0
#!/usr/bin/env python

import life
import detective
from random import randint

WIDTH = 16
HEIGHT = 16
SIZE = WIDTH * HEIGHT

randomdata = [randint(0, 1) for i in range(WIDTH * HEIGHT)]

original = life.Life(WIDTH, HEIGHT, randomdata)
saved = original.clone()

print "Original:"
print original
print

original.tick()
print "Given:"
print original
print

gumshoe = detective.Detective(original)
print "Initial confidence:"
print gumshoe
print

print "Guessing..."
last_span = 0
Пример #11
0
import life
import numpy as np
import g3d2
import g3d2sim
import sys
from time import sleep

rate = 10.0  # Frame rate (wished)
restart = 30.0  # Reinitialize after this amount of seconds

if len(sys.argv) > 1:
    g = g3d2.g3d2(sys.argv[1])
else:
    g = g3d2sim.g3d2sim()

l = life.Life()
l.randomize()

screen = np.zeros(np.shape(l.field), dtype=np.int8)
iters = 0

while True:
    sc_old = screen
    screen = np.maximum(0, screen / 2)
    screen[l.field > 0] = np.minimum(np.maximum(sc_old[l.field > 0] + 2, 8),
                                     15)
    g.write_screen(screen.transpose().flatten())
    l.iterate()
    sleep(1 / rate)
    iters = iters + 1
    if iters >= rate * restart:
Пример #12
0
import life

print("The game is on!")
living_cells = life.get_living_cells()
life_configuration = life.Life(living_cells)
life_configuration.show()
while life.get_command():
    life_configuration.update()
    life_configuration.show()