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))
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)
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)
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))
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
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
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))
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))
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)
#!/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
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:
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()