Example #1
0
def create_squirrel(ai_settings, screen, squirrels, squirrel_number, row_number):
    """Create a squirrel and place it in the row."""
    squirrel = Squirrel(ai_settings, screen)
    squirrel_width = squirrel.rect.width
    squirrel.x = squirrel_width + 2 * squirrel_width * squirrel_number
    squirrel.rect.x = squirrel.x
    squirrel.rect.y = squirrel.rect.height + 2 * squirrel.rect.height * row_number
    squirrels.add(squirrel)
Example #2
0
def create_fleet(ai_settings, screen, dobie,squirrels):
    """Create a full fleet of squirrels"""
    # Create a squirrel and find the number of suirrels in a row.
    # Spacing between each squirel is equal to one squirrel width
    squirrel = Squirrel(ai_settings, screen)
    squirrel_width = squirrel.rect.width
    number_squirrels_x = get_number_squirrels_x(ai_settings, squirrel.rect.width)
    number_rows = get_number_rows(ai_settings, dobie.rect.height, squirrel.rect.height)

    # create the first row of squirrels
    for row_number in range(number_rows):
        for squirrel_number in range(number_squirrels_x):
            # Create an squirrel and place it in the row.
            create_squirrel(ai_settings, screen, squirrels, squirrel_number, row_number)
Example #3
0
    def __init__(self, world_map, N_GROUND_TILES=1):
        self.MAP = world_map
        self.WIDTH_TILES = len(self.MAP[0])
        self.HEIGHT_TILES = len(self.MAP)
        self.N_GROUND_TILES = N_GROUND_TILES

        self.GROUND_LAYER: List[List[dict]] = \
            [[{} for x in range(self.WIDTH_TILES)]
             for y in range(self.HEIGHT_TILES)]

        for x in range(self.WIDTH_TILES):
            for y in range(self.HEIGHT_TILES):
                self.GROUND_LAYER[y][x]['tileidx'] = \
                    random.randint(0, self.N_GROUND_TILES-1)

        self.squirrel = Squirrel(self, Point(23, 22), Direction.DOWN)
        self.squirrels = []
        self.foxes = []
        self.nuts = {}
def index():
    if request.method == "POST":
        squirrels.append(Squirrel(request.form['name']))
        return redirect(url_for('index'))
    return render_template("index.html", squirrels=squirrels)
from flask import Flask, redirect, url_for, render_template, request
from flask_modus import Modus
from squirrel import Squirrel

app = Flask(__name__)
modus = Modus(app)

rodger = Squirrel(name='rodger')
sue = Squirrel(name='sue')
patricia = Squirrel(name='patricia')

squirrels = [rodger, sue, patricia]


@app.route('/')
def root():
    return redirect(url_for('index'))


@app.route('/squirrels', methods=["GET", "POST"])
def index():
    if request.method == "POST":
        squirrels.append(Squirrel(request.form['name']))
        return redirect(url_for('index'))
    return render_template("index.html", squirrels=squirrels)


@app.route('/squirrels/new')
def new():
    return render_template("new.html")
Example #6
0
 def _init_squirrels(self, nsquirrels):
     self.world.squirrels.clear()
     for i in range(nsquirrels):
         squirrel = Squirrel(self, self.world.random_point(),
                             Direction.RIGHT)
         self.world.squirrels.append(squirrel)
Example #7
0
    def load_level(self, file_name):
        with open(script_dir + file_name, encoding='utf8') as file_object:
            self.level_file = file_object.read()
        for string in self.level_file.split('\n'):
            object, x_cor, y_cor, *dop = string.split()
            sleep = False
            without = False
            sleep_now = False
            without_now = False
            is_dekor = False
            is_go_right = True
            how_much_go = False
            is_right = 0
            is_up = 0
            speed_atack = 1
            position = 1
            if dop:
                if dop[0] == 'sleep':
                    sleep = True
                    sleep_now = int(dop[1])
                elif dop[0] == 'without':
                    without = True
                    without_now = int(dop[1])
                elif dop[0] == 'dekor':
                    is_dekor = True
                elif dop[0] == 'go':
                    how_much_go = int(dop[1])
                    is_go_right = int(dop[2]) if len(dop) > 2 else False
                elif dop[0] == 'is_right':
                    is_right = 1
                elif dop[0] == 'is_up':
                    is_up = 1
                elif object == 'gun':
                    if dop:
                        speed_atack = float(dop[0])
                        if len(dop) > 1:
                            position = int(dop[1])
                if len(dop) > 1 and dop[1] == 'is_up':
                    is_up = 1

            if 'dirt' == object:
                self.blocks_on_level_list.append(
                    Blocks(int(x_cor),
                           int(y_cor),
                           sleep_block=sleep,
                           sleep_now=sleep_now,
                           without=without,
                           without_now=without_now,
                           is_dekor=is_dekor,
                           group=[self.blocks_group, self.all_sprites_group]))
            elif 'stone_wall' == object:
                self.blocks_on_level_list.append(
                    Blocks(int(x_cor),
                           int(y_cor),
                           where_image='images\Blocks\stone_wall.png',
                           sleep_block=sleep,
                           sleep_now=sleep_now,
                           without=without,
                           without_now=without_now,
                           is_dekor=is_dekor,
                           group=[self.blocks_group, self.all_sprites_group]))
            elif 'board' == object:
                self.blocks_on_level_list.append(
                    Blocks(int(x_cor),
                           int(y_cor),
                           where_image='images\Blocks\\board.png',
                           sleep_block=sleep,
                           sleep_now=sleep_now,
                           without=without,
                           without_now=without_now,
                           is_dekor=is_dekor,
                           group=[self.blocks_group, self.all_sprites_group]))
            elif 'bush' == object:
                self.blocks_on_level_list.append(
                    Dekor(x=int(x_cor),
                          y=int(y_cor),
                          where_image='images\dekor\Bush.png',
                          sleep_block=sleep,
                          sleep_now=sleep_now,
                          without=without,
                          without_now=without_now,
                          is_dekor=is_dekor,
                          group=[self.blocks_group, self.all_sprites_group]))
            elif 'gold' == object:
                self.blocks_on_level_list.append(
                    Blocks(int(x_cor),
                           int(y_cor),
                           where_image='images\Blocks\gold.png',
                           sleep_block=sleep,
                           sleep_now=sleep_now,
                           without=without,
                           without_now=without_now,
                           is_dekor=is_dekor,
                           group=[self.blocks_group, self.all_sprites_group]))
            elif 'rainbow_block' == object:
                self.blocks_on_level_list.append(
                    Rainbow_blocks(
                        int(x_cor),
                        int(y_cor),
                        sleep_block=sleep,
                        sleep_now=sleep_now,
                        without=without,
                        without_now=without_now,
                        is_dekor=is_dekor,
                        group=[self.blocks_group, self.all_sprites_group]))
            elif 'cook' == object:
                self.item_list.append(
                    Cookies(int(x_cor),
                            int(y_cor),
                            group=[
                                self.item_to_take_group, self.all_sprites_group
                            ]))
            elif 'mega_cook' == object:
                self.item_list.append(
                    Cookies(int(x_cor),
                            int(y_cor),
                            mega_cook=True,
                            group=[
                                self.item_to_take_group, self.all_sprites_group
                            ]))
            elif 'final_boss_wall' == object:
                self.blocks_on_level_list.append(
                    Blocks(int(x_cor),
                           int(y_cor),
                           sleep_block=sleep,
                           sleep_now=sleep_now,
                           without=without,
                           without_now=without_now,
                           is_dekor=is_dekor,
                           where_image='images\Blocks\\final_boss_wall.png',
                           group=[self.blocks_group, self.all_sprites_group]))
            elif 'shell' == object:
                self.shell_list.append(
                    Shell(int(x_cor),
                          int(y_cor),
                          is_right=is_right,
                          is_up=is_up,
                          group=[self.shell_group, self.all_sprites_group]))
            elif 'gun' == object:
                self.person_list.append(
                    Gun(int(x_cor),
                        int(y_cor),
                        speed_atack=speed_atack,
                        position=position,
                        group=[self.persons_group, self.all_sprites_group]))
            elif 'esh' == object:
                self.person_list.append(
                    Enemy(x=int(x_cor),
                          y=int(y_cor),
                          how_much_go_right=int(dop[0]) if dop else 30,
                          how_much_go_left=int(dop[0]) if dop else 30,
                          hp=800 if self.level_number != '19' else 1,
                          group=[self.persons_group, self.all_sprites_group]))
            elif 'spike' == object:
                self.blocks_on_level_list.append(
                    Spikes(x=int(x_cor),
                           y=int(y_cor),
                           group=[self.blocks_group, self.all_sprites_group]))
            elif 'squirrel' == object:
                self.person_list.append(
                    Squirrel(
                        x=int(x_cor),
                        y=int(y_cor),
                        main_hero=self.main_hero,
                        how_much_go_right=how_much_go if how_much_go else 40,
                        how_much_go_left=how_much_go if how_much_go else 40,
                        is_go_right=is_go_right,
                        group=[self.persons_group, self.all_sprites_group]))
            elif 'Homa' == object:
                if self.main_hero:
                    self.persons_group.remove(self.main_hero)
                self.main_hero = Homa(
                    int(x_cor),
                    int(y_cor),
                    complexity=self.complexiry,
                    group=[self.persons_group, self.all_sprites_group])
            elif 'boss_1' == object:
                self.boss = Boss(
                    x=int(x_cor),
                    y=int(y_cor),
                    group=[self.persons_group, self.all_sprites_group])
            elif 'person_boss_1' == object:
                self.person_list.append(
                    Boss(x=int(x_cor),
                         y=int(y_cor),
                         group=[self.persons_group, self.all_sprites_group]))
            elif 'text' == object:
                self.image_text = pygame.font.SysFont('arial', 22).render(
                    dop[0].replace('_', ' '), 1, (0, 255, 0))
Example #8
0
    def others_persons(self):
        self.magic_in_blocks()
        if not self.boss:
            all_dead = True
        else:
            all_dead = False
        for person in self.person_list:
            if not person.is_dead:
                person.give_object_list(
                    [i for i in self.blocks_on_level_list if not i.sleep_now] +
                    self.item_list + [self.main_hero] + self.magic_list)
                object = person.enemy_move()
                if self and object:
                    self.shell_list.append(object)
                person.fall()
                all_dead = False
            else:
                if person.do_heart:
                    if random.randrange(0, 2):
                        self.item_list.append(
                            Hearts(*person.rect.topright,
                                   group=[
                                       self.item_to_take_group,
                                       self.all_sprites_group
                                   ]))
                    else:
                        self.item_list.append(
                            Cookies(*person.rect.topright,
                                    group=[
                                        self.item_to_take_group,
                                        self.all_sprites_group
                                    ]))
                    person.do_heart = False
                self.persons_group.remove(person)
        if all_dead and self.person_list:
            for block in self.blocks_on_level_list:
                block.enemy_disappear()
            self.person_list.clear()
            if self.level_number == '203':
                self.person_list.append(
                    Homa(x=800,
                         y=-100,
                         speed=5,
                         group=[self.persons_group, self.all_sprites_group]))
        if self.boss:
            self.boss.give_object_list(
                [i for i in self.blocks_on_level_list if not i.sleep_now] +
                self.item_list + [self.main_hero] + self.magic_list)
            if self.boss.enemy_move():
                for i in range(random.randrange(2, 5)):
                    self.person_list.append(
                        Enemy(
                            x=random.randrange(200, 700),
                            y=random.randrange(50, 800) - 900,
                            speed=random.randrange(3, 6),
                            hp=random.randrange(400, 800),
                            group=[self.persons_group,
                                   self.all_sprites_group]))
                for _ in range(random.randrange(0, 4)):
                    sq = Squirrel(
                        x=random.randrange(200, 700),
                        y=random.randrange(50, 800) - 900,
                        speed=random.randrange(4, 6),
                        hp=random.randrange(600, 1000),
                        group=[self.persons_group, self.all_sprites_group])
                    sq.set_hero(self.main_hero)
                    self.person_list.append(sq)
                if self.boss.type == 'f':
                    gun = Gun(
                        x=random.randrange(100, 700),
                        y=random.randrange(50, 800) - 1200,
                        speed_atack=5,
                        position=random.randrange(0, 4),
                        group=[self.persons_group, self.all_sprites_group])
                    self.person_list.append(gun)
            if self.boss.type == 'f':
                boss_magic = self.boss.do_magic()
                if boss_magic:
                    self.shell_list.append(boss_magic)
                    self.all_sprites_group.add(boss_magic)
                    self.magic_group.add(boss_magic)

            self.boss.fall()