예제 #1
0
 def __init__(self, gui):
     self.gui1 = gui
     self.height = 15
     self.width = 15
     self.turn = 0
     org1 = Guarana.Guarana(self, self.get_turn(), 11, 11)
     self.list_of_organisms.append(org1)
     org2 = CyberSheep.CyberSheep(self, self.get_turn(), 4, 1)
     self.list_of_organisms.append(org2)
     org3 = Antelope.Antelope(self, self.get_turn(), 0, 8)
     self.list_of_organisms.append(org3)
     org4 = Hogweed.Hogweed(self, self.get_turn(), 0, 0)
     self.list_of_organisms.append(org4)
     org5 = Hogweed.Hogweed(self, self.get_turn(), 10, 3)
     self.list_of_organisms.append(org5)
     org6 = Sheep.Sheep(self, self.get_turn(), 'S', 7, 8, 4)
     self.list_of_organisms.append(org6)
     org7 = SowThistle.SowThistle(self, self.get_turn(), 13, 13)
     self.list_of_organisms.append(org7)
     org8 = DeadlyNightshade.DeadlyNightshade(self, self.get_turn(), 10, 0)
     self.list_of_organisms.append(org8)
     org9 = Fox.Fox(self, self.get_turn(), 6, 6)
     self.list_of_organisms.append(org9)
     org10 = Grass.Grass(self, self.get_turn(), 0, 13)
     self.list_of_organisms.append(org10)
     org11 = Wolf.Wolf(self, self.get_turn(), 5, 7)
     self.list_of_organisms.append(org11)
     org12 = Human.Human(self, self.get_turn(), 13, 2)
     self.list_of_organisms.append(org12)
     org13 = Grass.Grass(self, self.get_turn(), 0, 14)
     self.list_of_organisms.append(org13)
     org14 = Turtle.Turtle(self, self.get_turn(), 9, 9)
     self.list_of_organisms.append(org14)
     org15 = Sheep.Sheep(self, self.get_turn(), 'S', 8, 8, 4)
     self.list_of_organisms.append(org15)
예제 #2
0
def enter():
    global boy, grass, first_start
    if first_start == 1:
        open_canvas()
        boy = Boy()
        grass = Grass()
        first_start += 1
    else:

        boy = Boy()
        grass = Grass()
        boy.start_pause_next()
예제 #3
0
 def generate_grid(self, surf):
     """
     Generates a new grid with randomized terrain covering the map.
     :param surf: surface images are displayed to
     :return: stored data
     """
     row_len = 0
     for row in range(self.width // self.block_size):
         col_len = 0
         self.grid.append([])
         for col in range(self.height // self.block_size):
             grass_or_clover = random.randint(0, 5)
             spot = [
                 [row_len, col_len, self.block_size, self.block_size],
                 Creature.Creature(""),
                 Terrain.Terrain(""),
             ]
             spot[1] = Empty.Empty()
             if grass_or_clover > 1:
                 spot[2] = Grass.Grass()
             else:
                 spot[2] = Clover.Clover()
             spot[2].set_color("alive")
             spot.append(
                 pygame.draw.rect(surf, spot[2].get_color(), spot[0]))
             self.grid[row].append(spot)
             col_len += self.block_size
         row_len += self.block_size
     return self.grid
 def GetObject(self, name):
     print(name)
     if name == "Wolf":
             return Wolf.Wolf(self.__x, self.__y, self.__world)
     elif name == "Fox":
             return Fox.Fox(self.__x, self.__y, self.__world)
     elif name == "Grass":
             print("It's grass!")
             return Grass.Grass(self.__x, self.__y, self.__world)
     elif name == "Guarana":
             return Guarana.Guarana(self.__x, self.__y, self.__world)
     elif name == "SosnowskyBorsch":
             return SosnowskyBorsch.SosnowskyBorsch(self.__x, self.__y, self.__world)
     elif name == "SowThistle":
             return SowThistle.SowThistle(self.__x, self.__y, self.__world)
     elif name == "Turtle":
             return Turtle.Turtle(self.__x, self.__y, self.__world)
     elif name == "Wolfberry":
             return Wolfberry.Wolfberry(self.__x, self.__y, self.__world)
     elif name == "Sheep":
             return Sheep.Sheep(self.__x, self.__y, self.__world)
     elif name == "CyberSheep":
             return CyberSheep.CyberSheep(self.__x, self.__y, self.__world)
     elif name == "Antelope":
             return Antelope.Antelope(self.__x, self.__y, self.__world)
     elif name == "Human":
             return Human.Human(self.__x, self.__y, self.__world)
                     
     
     return None
예제 #5
0
 def add_organism(self, coords, name):
     if (name == 'Human'):
         z = Human(self, 'Human', 1, coords, 'Blue')
     elif (name == 'Wolf'):
         z = Wolf(self, 'Wolf', 9, coords, 'Black')
     elif (name == "Fox"):
         z = Fox(self, 'Fox', 3, coords, 'Orange')
     elif (name == "Sheep"):
         z = Sheep(self, 'Sheep', 4, coords, 'White')
     elif (name == "Antelope"):
         z = Antelope(self, 'Antelope', 4, coords, 'Red')
     elif (name == "Turtle"):
         z = Turtle(self, 'Turtle', 2, coords, 'Green')
     elif (name == "Cybersheep"):
         z = Cybersheep(self, 'Cybersheep', 3, coords, 'White')
     elif (name == "Grass"):
         z = Grass(self, 'Grass', 0, coords, 'Palegreen')
     elif (name == "SowThistle"):
         z = SowThistle(self, 'SowThistle', 0, coords, 'Yellow')
     elif (name == "Guarana"):
         z = Guarana(self, 'Guarana', 0, coords, 'Violet')
     elif (name == "Beladonna"):
         z = Beladonna(self, 'Beladonna', 100, coords, 'Saddlebrown')
     elif (name == "Hogweed"):
         z = Hogweed(self, 'Hogweed', 100, coords, 'Teal')
     self.organisms.append(z)
예제 #6
0
 def clear_data(self):
     self.score = 0
     self.bird = Bird.Bird(self.window, self.fpsClock, self.FPS,
                           Coords.Coords((100, int(480 / 2))))
     self.curTime = self.prevTime = pg.time.get_ticks()
     self.time_diff = 3500
     self.grass = Grass.Grass(self.window, Coords.Coords((640, 480)))
     self.cloud = Cloud.Cloud(self.window, Coords.Coords((640, 480)))
     self.pipes = [Pipe.Pipe(self.window, Coords.Coords((640, 480)))]
예제 #7
0
파일: Terrain.py 프로젝트: ylyking/game-src
    def initGraphics(self):
        if Settings.UseVBO:
            print "Creating Terrain Vertex Buffer..."
            self._createVertexBuffer()
        else:
            print "Not creating vertex buffer"

        if Settings.DrawGrass:
            self.grassPatch = Grass.GrassPatch(
                self.world, 0, self, 1000000, 4, 8,
                "../base/art/land/grass_side.png")
        print "Building terrain display list..."
        if not Settings.SimpleTerrain:
            self._buildHighDetailDisplayList()
        else:
            self._buildLowDetailDisplayList()
예제 #8
0
 def load(self):
     self.new_organisms.clear()
     self.list_of_organisms.clear()
     line = ""
     list = []
     with open('save&load/saved.txt') as f:
         for line in f:
             list = line.split(";")
             if list[2] == 'H':
                 o = Human.Human(self, int(list[4]), int(list[0]),
                                 int(list[1]))
                 o.set_super_power(int(list[5]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'A':
                 o = Antelope.Antelope(self, int(list[4]), int(list[0]),
                                       int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'd':
                 o = DeadlyNightshade.DeadlyNightshade(
                     self, int(list[4]), int(list[0]), int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'F':
                 o = Fox.Fox(self, int(list[4]), int(list[0]), int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'G':
                 o = Grass.Grass(self, int(list[4]), int(list[0]),
                                 int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'g':
                 o = Guarana.Guarana(self, int(list[4]), int(list[0]),
                                     int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'h':
                 o = Hogweed.Hogweed(self, int(list[4]), int(list[0]),
                                     int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'S':
                 o = Sheep.Sheep(self, int(list[4]), 'S', int(list[0]),
                                 int(list[1]), 4)
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 's':
                 o = SowThistle.SowThistle(self, int(list[4]), int(list[0]),
                                           int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'W':
                 o = Wolf.Wolf(self, int(list[4]), int(list[0]),
                               int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'T':
                 o = Turtle.Turtle(self, int(list[4]), int(list[0]),
                                   int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
             elif list[2] == 'C':
                 o = CyberSheep.CyberSheep(self, int(list[4]), int(list[0]),
                                           int(list[1]))
                 o.set_power(int(list[3]))
                 self.add_organism(o)
예제 #9
0
    def draw_map(self, display):

        for x in range(self.levelWidth):
            for y in range(self.levelHeight):
                if self.level[y][x] == "0":
                    #print("it works")
                    wall = Wall(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.wall_sprite.add(wall)
                    GroupManager.all_sprite.add(wall)
                if self.level[y][x] == ".":
                    grass = Grass(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.grass_sprite.add(grass)
                    #GroupManager.all_sprite.add(grass)
                if self.level[y][x] == "1":
                    enemy = Enemyfollow(x * self.blockWidth,
                                        y * self.blockWidth)
                    enemy.walls = GroupManager.wall_sprite
                    enemy.player = GroupManager.player_sprite
                    GroupManager.enemy_sprite.add(enemy)
                    grass = Grass(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.grass_sprite.add(grass)
                if self.level[y][x] == "2":
                    enemy = EnemyRotate(x * self.blockWidth,
                                        y * self.blockWidth)
                    GroupManager.enemy_sprite.add(enemy)
                    grass = Grass(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.grass_sprite.add(grass)
                if self.level[y][x] == "3":
                    floorTile = tileFloor(x * self.blockWidth,
                                          y * self.blockWidth)
                    GroupManager.floor_sprite.add(floorTile)
                if self.level[y][x] == "4":
                    exit = levelExit(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.level_exit.add(exit)
                    exit.player = GroupManager.player_sprite
                if self.level[y][x] == "D":
                    door = Door1(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.door1_sprite.add(door)
                    GroupManager.wall_sprite.add(door)
                if self.level[y][x] == "A":
                    key = Key1(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.key1_sprite.add(key)
                if self.level[y][x] == "P":
                    planet = Planet(randint(0, 640), randint(0, 480), 0.25)
                    GroupManager.planet_sprite.add(planet)
                if self.level[y][x] == "5":
                    medpack = Medpack(x * self.blockWidth, y * self.blockWidth,
                                      10)
                    GroupManager.healthpack_sprite.add(medpack)
                    medpack.player = GroupManager.player_sprite
                    grass = Grass(x * self.blockWidth, y * self.blockWidth)
                    GroupManager.grass_sprite.add(grass)
                if self.level[y][x] == "B":
                    barnacle = Barnacle(x * self.blockWidth,
                                        y * self.blockWidth)
                    GroupManager.barnacle_group.add(barnacle)
                    barnacle.walls = GroupManager.wall_sprite
                    barnacle.player = GroupManager.player_sprite
                    barnacle.bullets = GroupManager.player_bullet
                if self.level[y][x] == "R":
                    assault = WeaponTileAssault(x * self.blockWidth,
                                                y * self.blockWidth)
                    GroupManager.weapon_group.add(assault)
                    assault.player = GroupManager.player_sprite
                if self.level[y][x] == "L":
                    rocket = WeaponTileRocket(x * self.blockWidth,
                                              y * self.blockWidth)
                    GroupManager.weapon_group.add(rocket)
                    rocket.player = GroupManager.player_sprite
                if self.level[y][x] == "E":
                    Dblock = DestructableBlock(x * self.blockWidth,
                                               y * self.blockWidth)
                    #GroupManager.wall_sprite.add(Dblock)
                    GroupManager.all_sprite.add(Dblock)
                    GroupManager.destructable_block.add(Dblock)
                    Dblock.playerBullet = GroupManager.bullet_sprite
                    Dblock.playerCollide = GroupManager.player_sprite
예제 #10
0
def main():

    Green = (34,139,34)
    White = (255,255,255)
    Blue = (0,0,255)

#Initialize Everything
    screen_width = 1500
    screen_height = 800
    pygame.init()
    screen = pygame.display.set_mode((screen_width, screen_height))
    pygame.display.set_caption('Navigation Simulation')

#Sprite background
    bg = Background(0,0, 'b1.jpg')
    grass = Grass(700,120, 'grass.jpg')

#Set game FPS
    FPS = 30

#Prepare Game Objects
    clock = pygame.time.Clock()

#field
    Field_x1 = 700
    Field_x2 = 1300
    Field_y1 = 120
    Field_y2 = 720
    Buggy_Dimensions = 50
    field_sprite_group = pygame.sprite.LayeredUpdates()
    z = Field_x2-Field_x1
    w = Field_y2-Field_y1
    Field = Collision_Line(Field_x1,Field_y1,z,w, Green)
    field_sprite_group.add(Field)

    Number_of_grids = round(((Field_x2-Field_x1)*(Field_y2-Field_y1))/(Buggy_Dimensions*Buggy_Dimensions))
    percentage_per_grid = round((1/Number_of_grids)*100,4)

#Field Boundary lines
    wall_sprite_group_horz_bottom = pygame.sprite.LayeredUpdates()
    wall_sprite_group_horz_top = pygame.sprite.LayeredUpdates()
    wall_sprite_group_vert_right = pygame.sprite.LayeredUpdates()
    wall_sprite_group_vert_left = pygame.sprite.LayeredUpdates()

    Bound_Line1 = Collision_Line(Field_x1,Field_y1,z,3, White)
    Inner_Bound_Line1 = Collision_Line(900,320,500,3, White)
    wall_sprite_group_horz_top.add(Bound_Line1)
    

    Bound_Line2 = Collision_Line(Field_x1,Field_y2,z,3, White)
    Inner_Bound_Line2 = Collision_Line(900,310,500,3, White)
    Inner_Bound_Line3 = Collision_Line(400,517,700,3, White)
    wall_sprite_group_horz_bottom.add(Bound_Line2)
    

    Bound_Line3 = Collision_Line(Field_x1,Field_y1,3,w, White)
    Inner_Bound_Line4 = Collision_Line(1100,517,3,400, White)
    wall_sprite_group_vert_left.add(Bound_Line3)

    Bound_Line4 = Collision_Line(Field_x2,Field_y1,3,w, White)
    wall_sprite_group_vert_right.add(Bound_Line4)

#Field covering squares
    Field_Scanned_Squares_Group = pygame.sprite.LayeredUpdates()

#text
    
    # initialize font; must be called after 'pygame.init()' to avoid 'Font not Initialized' error
    myfont = pygame.font.SysFont("monospace", 35)

    # render text
    label1 = myfont.render("Percentage of Field scanned: ", 1, (255,255,255))

    label2 = myfont.render("Number of Grids: ", 1, (255,255,255))
    label2_answer = myfont.render(str(Number_of_grids), 1, (255,255,255))  
      
    label3 = myfont.render("Each grid in % is apprx: ", 1, (255,255,255))
    label3_answer = myfont.render(str(percentage_per_grid), 1, (255,255,255))

#player declarations
    tank = Tank(400,400, Field_x1, Field_x2, Field_y1, Field_y2, Buggy_Dimensions) 


#Adding to super group which will handle drawing
    allsprites = pygame.sprite.LayeredUpdates((bg, field_sprite_group,grass, wall_sprite_group_horz_bottom, wall_sprite_group_horz_top, wall_sprite_group_vert_left, wall_sprite_group_vert_right, Field_Scanned_Squares_Group, tank))

    
#Main Loop
    going = True
    Square_Paint_Bool = False
    
    #bgm.play()
    while going:

        clock.tick(FPS)

        '''square place on field for scanned stuff'''
        if tank.Place_Square_Bool==True and Square_Paint_Bool==True:
            Square = Collision_Line(tank.Square_X,tank.Square_Y,50,50, Blue)
            Field_Scanned_Squares_Group.add(Square)
            allsprites.add(Square)
            tank.Place_Square_Bool=False

        '''field scanned stuff'''
        field_scanned_percentage = tank.Fetch_Field_Percentage_Scanned()
        if field_scanned_percentage!='##':
            if field_scanned_percentage>100:
                field_scanned_percentage=100
        label1_answer = myfont.render(str(field_scanned_percentage), 1, (255,255,255))

        #Handle Input Events
        for event in pygame.event.get():
            if event.type == QUIT:
                going = False 

            elif event.type == KEYDOWN and event.key == K_ESCAPE:
                going = False

            elif event.type == KEYDOWN and event.key == K_q:
                tank.Current_X_position = 400
                tank.Current_Y_position = 400
                tank.Update_Field_Coordinates(Field_x1, Field_y1, Field_x2, Field_y2)
                tank.Navigate_Bool = False
                tank.Field_Scanned_Perc = 0
                tank.Update_Animation('Reset')
                '''removing all the blue squares: get the list and then iterate over them removing each from allsprites'''
                Square_To_Remove_List = Field_Scanned_Squares_Group.sprites()
                for shape in Square_To_Remove_List:
                    allsprites.remove(shape)

            elif event.type == KEYDOWN and event.key == K_DOWN:
                tank.Update_Animation('Move_Down')

            elif event.type == KEYUP and event.key == K_DOWN:
                tank.Update_Animation('Idle')

            elif event.type == KEYDOWN and event.key == K_UP:
                tank.Update_Animation('Move_Up')

            elif event.type == KEYUP and event.key == K_UP:
                tank.Update_Animation('Idle')

            elif event.type == KEYDOWN and event.key == K_LEFT:
                tank.Update_Animation('Move_Left')

            elif event.type == KEYUP and event.key == K_LEFT:
               tank.Update_Animation('Idle')

            elif event.type == KEYDOWN and event.key == K_RIGHT:
                tank.Update_Animation('Move_Right')

            elif event.type == KEYUP and event.key == K_RIGHT:
                tank.Update_Animation('Idle')

            elif event.type == KEYDOWN and event.key == K_p:
                tank.Current_X_position = Field_x1
                tank.Current_Y_position = Field_y1
                tank.Update_Animation('Navigate_Right')

            elif event.type == KEYDOWN and event.key == K_m:
                tank.Current_X_position = Field_x1+50
                tank.Current_Y_position = Field_y1+50
                tank.Update_Animation('Machine_Learning_Start')

            elif event.type == KEYDOWN and event.key == K_w:
                tank.Print_Ending_Array()

            elif event.type == KEYDOWN and event.key == K_z:
                tank.Update_Animation('Diagonal')

            elif event.type == KEYDOWN and event.key == K_a:
                wall_sprite_group_horz_top.add(Inner_Bound_Line1)
                wall_sprite_group_horz_bottom.add(Inner_Bound_Line2)
                wall_sprite_group_horz_bottom.add(Inner_Bound_Line3)
                wall_sprite_group_vert_left.add(Inner_Bound_Line4)

                allsprites.remove(wall_sprite_group_horz_bottom)
                allsprites.remove(wall_sprite_group_horz_top)

                allsprites.remove(wall_sprite_group_vert_left)

                allsprites.add(wall_sprite_group_horz_bottom)
                allsprites.add(wall_sprite_group_horz_top)

                allsprites.add(wall_sprite_group_vert_left)

            elif event.type == KEYDOWN and event.key == K_s:
                allsprites.remove(Inner_Bound_Line1)
                allsprites.remove(Inner_Bound_Line2)
                allsprites.remove(Inner_Bound_Line3)
                allsprites.remove(Inner_Bound_Line4)

                wall_sprite_group_horz_top.remove(Inner_Bound_Line1)
                wall_sprite_group_horz_bottom.remove(Inner_Bound_Line2)
                wall_sprite_group_horz_bottom.remove(Inner_Bound_Line3)
                wall_sprite_group_vert_left.remove(Inner_Bound_Line4)

                allsprites.remove(wall_sprite_group_horz_bottom)
                allsprites.remove(wall_sprite_group_horz_top)
                allsprites.remove(wall_sprite_group_vert_left)

                allsprites.add(wall_sprite_group_horz_bottom)
                allsprites.add(wall_sprite_group_horz_top)
                allsprites.add(wall_sprite_group_vert_left)

            elif event.type == KEYDOWN and event.key == K_r:
                Square_Paint_Bool=True

            elif event.type == KEYDOWN and event.key == K_t:
                Square_Paint_Bool=False


        allsprites.remove(tank)
        tank.update(wall_sprite_group_horz_bottom, wall_sprite_group_horz_top, wall_sprite_group_vert_left, wall_sprite_group_vert_right)
        allsprites.update()
        allsprites.add(tank)
        allsprites.move_to_back(bg)
 
        #Draw Everything

        allsprites.draw(screen)       
        screen.blit(label1, (15, 100))
        screen.blit(label1_answer, (600, 100))

        screen.blit(label2, (15, 200))
        screen.blit(label2_answer, (420, 200))

        screen.blit(label3, (15, 300))
        screen.blit(label3_answer, (520, 300))


        pygame.display.flip()

    pygame.quit()
예제 #11
0
    def loadLevel(self, lev):
        now = time.time() - self.start
        self.start = time.time()
        print "before start ", now
        fileName = lev+".lvl"
        print fileName
        
        self.blockSize = 25
        
        file = open(fileName, 'r')
        lines = file.readlines()
        file.close()
        
        newlines = []
        for line in lines:
            newline = ""
            for c in line:
                if c != '\n':
                    newline+= c
            newlines += [newline]
        lines = newlines

        #for line in lines:
            #print line
            
        for y, line in enumerate(lines):
            for x, c in enumerate(line):
                if c == '#':
                    Wall([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
                if c == ':':
                    Sand([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
                if c == '=':
                    Water([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
                if c == 'G':
                    Grass([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
                if c == 'g':
                    BigGrass([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize*5)
                if c == 'c':
                    CaveFloor([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
                if c == 'f':
                    BigCaveFloor([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize*5)
                if c == 'C':
                    CaveWall([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
                if c == 'R':
                    Rock([self.blockSize*x+self.blockSize/2,
                          self.blockSize*y+self.blockSize/2],
                          self.blockSize)
        
        fileName = lev+".ene"
        print fileName
        
        self.blockSize = 25
        
        file = open(fileName, 'r')
        lines = file.readlines()
        file.close()
        
        newlines = []
        for line in lines:
            newline = ""
            for c in line:
                if c != '\n':
                    newline+= c
            newlines += [newline]
        lines = newlines

        #for line in lines:
            #print line
            
        for y, line in enumerate(lines):
            for x, c in enumerate(line):
                if c == 'K':
                    Enemy([5,5], [200,200])
                                  
        now = time.time() - self.start
        self.start = time.time()
        print "after start ", now
예제 #12
0
    def loadAllLevels(self, lev, sizeX, sizeY):
        for fy in range(sizeY):
            for fx in range(sizeX):
                fileName = lev+str(fy+1)+str(fx+1)+".lvl"
                print fileName
                
                self.blockSize = 8
                screenHeight = 28*self.blockSize
                screenWidth = 40*self.blockSize
                
                file = open(fileName, 'r')
                lines = file.readlines()
                file.close()
                
                newlines = []
                for line in lines:
                    newline = ""
                    for c in line:
                        if c != '\n':
                            newline+= c
                    newlines += [newline]
                lines = newlines

                for line in lines:
                    print line
                    
                for y, line in enumerate(lines):
                    for x, c in enumerate(line):
                        if c == '#':
                            Wall([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
                        if c == ':':
                            Sand([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
                        if c == '=':
                            Water([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
                        if c == 'G':
                            Grass([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
                        if c == 'g':
                            BigGrass([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize*5)
                        if c == 'c':
                            CaveFloor([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
                        if c == 'f':
                            BigCaveFloor([self.blockSize*x+self.blockSize/2,
                                self.blockSize*y+self.blockSize/2],
                                  self.blockSize*5)
                        if c == 'C':
                            CaveWall([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
                        if c == 'R':
                            Rock([self.blockSize*x+self.blockSize/2+fx*screenWidth,
                                  self.blockSize*y+self.blockSize/2+fy*screenHeight],
                                  self.blockSize)
    def __init__(self, master):
        self.selectedAnimal = ""
        self.master = master
        master.title("World")
        self.key = "null"

        def leftKey(event):
            self.key = "left"

        def rightKey(event):
            self.key = "right"

        def upKey(event):
            self.key = "up"

        def downKey(event):
            self.key = "down"

        master.bind('<Left>', leftKey)
        master.bind('<Right>', rightKey)
        master.bind('<Up>', upKey)
        master.bind('<Down>', downKey)
        self.initBoard(8, 8)

        def toggle():
            self.toggleButton1.config(text="Next Human force Activation Soon")
            self.human.activateSkillF(True)

        def saveToFile():
            self.world.saveListToFile()

        def changeSelectedAnimal(animal):
            self.selectedAnimal = animal

        self.world = World(self)
        self.wolf = Wolf(self.world)
        self.world.addOrganismToWorld(self.wolf)
        self.sheep = Sheep(self.world)
        self.world.addOrganismToWorld(self.sheep)
        self.human = Human(self.world)
        self.world.addOrganismToWorld(self.human)
        self.fox = Fox(self.world)
        self.world.addOrganismToWorld(self.fox)
        self.Turtle = Turtle(self.world)
        self.world.addOrganismToWorld(self.Turtle)
        self.antelope = Antelope(self.world)
        self.world.addOrganismToWorld(self.antelope)
        self.grass = Grass(self.world)
        self.world.addOrganismToWorld(self.grass)
        self.sowthistle = SowThistle(self.world)
        self.world.addOrganismToWorld(self.sowthistle)
        self.guarana = Guarana(self.world)
        self.world.addOrganismToWorld(self.guarana)
        self.blueberries = Blueberries(self.world)
        self.world.addOrganismToWorld(self.blueberries)
        self.sosnowsky = Sosnowsky(self.world)
        self.world.addOrganismToWorld(self.sosnowsky)
        self.cyberSheep = CyberSheep(self.world)
        self.world.addOrganismToWorld(self.cyberSheep)

        self.newRoundButton = Button(self.master,
                                     text="NEW ROUND",
                                     command=lambda: self.world.newRound())
        self.newRoundButton.grid(row=30, column=100)
        self.toggleButton1 = Button(self.master,
                                    text="Human Special Force",
                                    command=lambda: toggle())
        self.toggleButton1.grid(row=30, column=110)
        self.fileButton = Button(self.master,
                                 text="Save To File",
                                 command=lambda: saveToFile())
        self.fileButton.grid(row=30, column=120)
        self.openFileButton = Button(self.master,
                                     text="Read From File",
                                     command=lambda: self.world.readFromFile())
        self.openFileButton.grid(row=30, column=130)

        self.wolfButton = Button(self.master,
                                 text="Wolf",
                                 command=lambda: changeSelectedAnimal("WOLF"))
        self.wolfButton.grid(row=10, column=100)
        self.sheepButton = Button(
            self.master,
            text="Sheep",
            command=lambda: changeSelectedAnimal("SHEEP"))
        self.sheepButton.grid(row=10, column=110)
        self.turtleButton = Button(
            self.master,
            text="Turtle",
            command=lambda: changeSelectedAnimal("TURTLE"))
        self.turtleButton.grid(row=10, column=120)
        self.antelopeButton = Button(
            self.master,
            text="Antelope",
            command=lambda: changeSelectedAnimal("ANTELOPE"))
        self.antelopeButton.grid(row=10, column=130)
        self.cyberSheepButton = Button(
            self.master,
            text="CyberSheep",
            command=lambda: changeSelectedAnimal("CYBERSHEEP"))
        self.cyberSheepButton.grid(row=10, column=140)

        self.grassButton = Button(
            self.master,
            text="Grass",
            command=lambda: changeSelectedAnimal("GRASS"))
        self.grassButton.grid(row=20, column=100)
        self.sowButton = Button(
            self.master,
            text="SowThistle",
            command=lambda: changeSelectedAnimal("SOWTHISTLE"))
        self.sowButton.grid(row=20, column=110)
        self.guaranaButton = Button(
            self.master,
            text="Guarana",
            command=lambda: changeSelectedAnimal("GUARANA"))
        self.guaranaButton.grid(row=20, column=120)
        self.blueberriesButton = Button(
            self.master,
            text="Blueberries",
            command=lambda: changeSelectedAnimal("BLUEBERRIES"))
        self.blueberriesButton.grid(row=20, column=130)
        self.sosnowskyButton = Button(
            self.master,
            text="Sosnowksy",
            command=lambda: changeSelectedAnimal("SOSNOWSKY"))
        self.sosnowskyButton.grid(row=20, column=140)
 def createNewOrganism(self, newOrganismType, newOrganismPosY,
                       newOrganismPosX, force):
     if newOrganismType == "SHEEP":
         s = Sheep(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "WOLF":
         s = Wolf(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "FOX":
         s = Fox(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "TURTLE":
         s = Turtle(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "ANTELOPE":
         s = Antelope(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "GRASS":
         s = Grass(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "SOWTHISTLE":
         s = SowThistle(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "GUARANA":
         s = Guarana(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "BLUEBERRIES":
         s = Blueberries(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "SOSNOWSKY":
         s = Sosnowsky(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)
     if newOrganismType == "CYBERSHEEP":
         s = CyberSheep(self.world)
         s.setPositionX(newOrganismPosX)
         s.setPositionY(newOrganismPosY)
         if force != -1:
             s.setForce(force)
         self.world.multiply(s)