示例#1
0
	def _create_meteor(self , meteor_number , row_number):
		meteor = Meteor(self)
		meteor_width , meteor_height = meteor.rect.size
		meteor.x = 20 + meteor_width + 2 * meteor_width * meteor_number
		meteor.rect.x = meteor.x
		meteor.rect.y = meteor.rect.height + 2 * meteor.rect.height * row_number
		self.meteors.add(meteor)
示例#2
0
def create_meteor(ai_settings, screen, meteors, meteor_number, row_number):
    """Create a meteor and place it in the row."""
    meteor = Meteor(ai_settings, screen)
    meteor_width = meteor.rect.width
    meteor.x = meteor_width + 2 * meteor_width * meteor_number
    meteor.rect.y = meteor.rect.height + 2 * meteor.rect.height * row_number
    meteor.rect.x = meteor.x
    meteors.add(meteor)
示例#3
0
def generation_meteor(meteors, screen, settings):
    if len(meteors) < settings.allowed_meteors and randint(
            1, settings.meteor_chanse) == 1:
        meteor = Meteor(screen, settings, meteors, randint(1, 3),
                        settings.meteor_x)
        settings.meteor_x += meteor.get_width() * settings.meteor_direction
        chose_direction(settings)
        meteors.add(meteor)
示例#4
0
文件: main.py 项目: Bitos88/MyGame
def runGame():  #funcion que iniciara el juego
    pygame.init()
    aiSettings = Config()
    screen = pygame.display.set_mode(
        (aiSettings.screenW, aiSettings.screenH
         ))  #instanciamos el objeto para definir las dimensiones de la ventana
    imagen_defondo = pygame.image.load("images/space.jpg").convert()
    rectangulo = imagen_defondo.get_rect()
    screen.blit(imagen_defondo, (0, 0))
    pygame.display.set_caption("ALIEN INVASION")  #Titulo de nuestra ventana
    pygame.mixer.init()
    pygame.display.init()

    bgCOLOR = (230, 230, 230)

    ship = Ship(aiSettings, screen)
    meteor = Meteor(aiSettings, screen)
    bullets = Group()
    meteoritos = Group()

    tiempo = 1
    puntuacion = 0

    letra = pygame.font.SysFont("Arial", 18)

    while True:

        if tiempo == 1 or tiempo % 100 == 0:
            meteor = Meteor(aiSettings, screen)
            meteoritos.add(meteor)

        gf.check_events(ship, aiSettings, screen, bullets)
        ship.update()
        bullets.update()
        meteoritos.update()
        gf.updateScreen(aiSettings, screen, ship, meteoritos, bullets)

        ship.animation()

        for bullet in bullets.copy():
            if bullet.rect.left >= 1200:
                bullets.remove(bullet)

        for x in meteoritos.copy():
            if x.rect.right <= 0:
                meteoritos.remove(x)

        if pygame.sprite.groupcollide(meteoritos, bullets, True, True):
            puntuacion += 1

            print(puntuacion)

        gf.updateScreen(aiSettings, screen, ship, meteoritos, bullets)
        screen.blit(imagen_defondo, (0, 0))

        tiempo += 1
def spawn_meteors(num):
    for i in range(num):
        # This represents a meteor
        meteor = Meteor(Vec2d(0, 0), 1, 0.4)

        # Set a random location for the meteors
        meteor.reset_pos(screen_width)

        # Add the meteor to the list of objects
        meteor_list.add(meteor)
        all_sprites_list.add(meteor)
示例#6
0
class Window(Window):
    def __init__(self):
        super().__init__(800, 600, "Window arcade")
        self.meteor = Meteor(100, 100)
        self.meteors = SpriteList()
        for i in range(15):
            new_meteor = Meteor(randint(0, self.width),
                                randint(0, self.height))
            self.meteors.append(new_meteor)

        self.player = Player(self.width / 2, self.height / 2, "trdu", "blue")
        self.a_pressed = False
        self.d_pressed = False
        self.w_pressed = False
        self.s_pressed = False

    def on_draw(self):
        start_render()
        self.meteor.draw()
        for i in range(len(self.meteors)):
            self.meteors[i].draw()
        self.player.draw()

    def on_mouse_motion(self, x, y, dx, dy):
        self.meteor.center_x = x
        self.meteor.center_y = y

    def on_key_press(self, symbol, modifiers):
        if symbol == key.A or symbol == key.LEFT:
            self.a_pressed = True
        elif symbol == key.D or symbol == key.RIGHT:
            self.d_pressed = True
        random_meteor = choice(self.meteors)
        new_meteor_1, new_meteor_2 = random_meteor.break_apart()
        if new_meteor_1:
            self.meteors.append(new_meteor_1)
        if new_meteor_2:
            self.meteors.append(new_meteor_2)

    def on_update(self, delta_time):
        for meteor in self.meteors:
            meteor.update(self.width, self.height)

        if self.a_pressed == True:
            self.player.turn_left()
        if self.d_pressed == True:
            self.player.turn_right()

    def on_key_release(self, symbol, modifiers):
        if symbol == key.A or symbol == key.LEFT:
            self.a_pressed = False
        elif symbol == key.D or symbol == key.RIGHT:
            self.d_pressed = False
示例#7
0
    def __init__(self):
        super().__init__(800, 600, "Window arcade")
        self.meteor = Meteor(100, 100)
        self.meteors = SpriteList()
        for i in range(15):
            new_meteor = Meteor(randint(0, self.width),
                                randint(0, self.height))
            self.meteors.append(new_meteor)

        self.player = Player(self.width / 2, self.height / 2, "trdu", "blue")
        self.a_pressed = False
        self.d_pressed = False
        self.w_pressed = False
        self.s_pressed = False
示例#8
0
def eval_captions(gt_captions, res_captions):
	"""
		gt_captions = ground truth captions; 5 per image
		res_captions = captions generated by the model to be evaluated
	"""
	print('ground truth captions')
	print(gt_captions)

	print('RES CAPTIONS')
	print(res_captions)

	scorers = [
		(Bleu(4), ["Bleu_1", "Bleu_2", "Bleu_3", "Bleu_4"]),
		(Meteor(),"METEOR"),
		(Rouge(), "ROUGE_L"),
		(Cider(), "CIDEr"), 
	]

	res = []
	
	for scorer, method in scorers:
		print('computing %s score...' % (scorer.method()))
		score, scores = scorer.compute_score(gt_captions, res_captions)
		if type(method) == list:
			for sc, scs, m in zip(score, scores, method):
				print("%s: %0.3f"%(m, sc))
				res.append((m, sc))
		else:
				print("%s: %0.3f"%(method, score))
				res.append((method, score))

	return res
示例#9
0
def generate(score):
    dx = random.random()
    if dx < 0.9: dx -= 1.0
    dy = random.random()
    if dy < 0.9: dy -= 1.0

    mag = 1 + score / 100  #운석속도조절
    dx *= mag
    dy *= mag

    side = random.randint(1, 4)
    if side == 1:  # left
        x = 0
        y = random.uniform(0, get_canvas_height())
        if dx < 0: dx = -dx
    elif side == 2:  # bottom
        x = random.uniform(0, get_canvas_width())
        y = 0
        if dy < 0: dy = -dy
    elif side == 3:  # right
        x = get_canvas_width()
        y = random.uniform(0, get_canvas_height())
        if dx > 0: dx = -dx
    else:  # side == 4: # up
        x = random.uniform(0, get_canvas_width())
        y = get_canvas_height()
        if dy > 0: dy = -dy

    m = Meteor((x, y), (dx, dy))
    gfw.world.add(gfw.layer.meteor, m)
示例#10
0
 def add_meteor(self):
     """
     Add new meteor to the list if it is possible
     """
     if len(self.list_of_meteors) < self.maximum_number_of_meteors:
         brzeg = 100
         if r.random() < 0.7:
             y = -brzeg
             x = r.random() * self.max_x
             x_acc = r.random() * 3 - 1.5
             y_acc = r.random() * 2 + 1
         else:
             if r.random() < 0.5:
                 y = r.random() * self.max_y / 3
                 x = self.max_x + brzeg
                 x_acc = - r.random() * 3 - 1
                 y_acc = r.random() * 3 - 1
             else:
                 y = r.random() * self.max_y / 4
                 x = -brzeg
                 x_acc = r.random() * 3 + 1
                 y_acc = r.random() * 3 - 2.5
         rotation = 0
         rotation_speed = r.randint(1, 3)
         rotation_counter = 0
         size = r.choice([70, 60, 50, 40, 30])
         rotation_direction = r.choice([-1, 1])
         meteor = Meteor(x, y, x_acc, y_acc, rotation, rotation_counter, rotation_speed, rotation_direction, size)
         self.list_of_meteors.append(meteor)
 def _fire_meteor(self):
     """Создание нового метеорита и включение её в группу meteors."""
     if not self.stats.boss_level:
         if len(self.meteors.sprites()) < self.settings.meteor_number_max:
             select_alien = choice(self.aliens.sprites())
             new_meteor = Meteor(self, select_alien)
             self.settings.meteor_timing = 0
             new_meteor.shoot_sound.play()
             self.meteors.add(new_meteor)
示例#12
0
	def _create_rain(self):
		meteor = Meteor(self)
		meteor_width , meteor_height = meteor.rect.size
		available_space_x = self.settings.screen_width - (2 * meteor_width)
		number_meteor_x = available_space_x // (2 * meteor_width)
		ship_height = self.ship.rect.height
		available_space_y = (self.settings.screen_height - (3 * meteor_height) - ship_height)
		number_rows = available_space_y // (2 * meteor_height)
		for row_number in range(number_rows):
			for meteor_number in range(number_meteor_x):
				self._create_meteor(meteor_number , row_number)
示例#13
0
 def create_meteorite(self, x, y, dir_x, dir_y, border=False):
     meteor = Meteor(x, y, dir_x, dir_y)
     meteor_sprite = pygame.sprite.RenderPlain(meteor)
     if not border:
         self.meteors.append(meteor)
         self.meteors_sprite.append(meteor_sprite)
         # print(self.meteors)
         # print(self.meteors_sprite)
     else:
         self.border_meteors.append(meteor)
         self.border_meteors_sprite.append(meteor_sprite)
示例#14
0
 def __init__(self):
     #generer le vaisseau
     self.all_vaisseau = pygame.sprite.Group()
     self.vaisseau = Vaisseau(self)
     self.all_vaisseau.add(self.vaisseau)
     self.pressed = {}
     self.all_boss = pygame.sprite.Group()
     self.boss = Boss(self)
     self.all_boss.add(self.boss)
     self.meteor = Meteor(self)
     self.meteorevent = MeteorEvent(self)
     self.tirer = Tirer()
示例#15
0
def create_shower(ai_settings, screen, ship, meteors):
    """Create a full shower of meteors."""
    # Create a meteor and find the number of meteors in a row.
    meteor = Meteor(ai_settings, screen)
    number_meteors_x = get_number_meteors_x(ai_settings, meteor.rect.width)
    number_rows = get_number_rows(ai_settings, ship.rect.height,
                                  meteor.rect.height)

    # Create the first row of meteors.
    # Create meteor showers
    for row_number in range(number_rows):
        for meteor_number in range(number_meteors_x):
            create_meteor(ai_settings, screen, meteors, meteor_number,
                          row_number)
示例#16
0
    def update(self):
        self.rect.x += self.speed * self.direction[0]
        self.rect.y += self.speed * self.direction[1]

        if self.rect.x > self.display_width or self.rect.x < 0 or self.rect.y > self.display_height or self.rect.y > self.display_height:
            self.projectile_list.remove(self)
            return

        blocks_hit_list = pygame.sprite.spritecollide(self, self.meteor_list,
                                                      True)
        if blocks_hit_list:
            self.projectile_list.remove(self)
            for i in range(len(blocks_hit_list)):
                self.meteor_list.add(
                    Meteor(self.display_width, self.display_height))
def process_meteorites(column_names, rows):
    for i in range(len(rows)):
        cells = rows[i]

        meteor = {}
        for i, column in enumerate(column_names):
            cell = cells[i]
            meteor[column] = cell

        try:
            # Data conversion attempt
            meteor_object = Meteor(**meteor)
        except ValueError:
            # Skip meteorite if any data missing
            continue

        yield meteor_object
示例#18
0
def score(ref, hypo):
    scorers = [
        (Bleu(4),["Bleu_1","Bleu_2","Bleu_3","Bleu_4"]),
        (Meteor(),"METEOR"),
        (Rouge(),"ROUGE_L"),
        (Cider(),"CIDEr")
    ]
    final_scores = {}
    for scorer,method in scorers:
        score,scores = scorer.compute_score(ref,hypo)
        if type(score)==list:
            for m,s in zip(method,score):
                final_scores[m] = s
        else:
            final_scores[method] = score

    return final_scores
示例#19
0
def check_events(ai_settings, screen, stats, ship, aliens, bullets, COUNT,
                 bonus, meteors, meteor_images, shoot_sound, p_button,
                 quit_button):
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            check_keydown_events(event, ai_settings, stats, screen, ship,
                                 bullets, shoot_sound)
        elif event.type == pygame.KEYUP:
            check_keyup_events(event, ship)
        elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_x, mouse_y = pygame.mouse.get_pos()
            check_button(stats, p_button, quit_button, mouse_x, mouse_y)
        elif event.type == COUNT and stats.game_active:
            new_bonus = Bonus(screen, ai_settings)
            bonus.add(new_bonus)
            for i in range(6):
                new_meteor = Meteor(screen, ai_settings, meteor_images)
                meteors.add(new_meteor)
示例#20
0
def run_game():
    # Initialize pygame,settings, and screen object.
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    # Create an instance to store game statistics.
    stats = GameStats(ai_settings)

    # Make a ship
    ship = Ship(ai_settings, screen)

    # Make a group to store bullets in.
    bullets = Group()

    # Make a meteor
    meteor = Meteor(ai_settings, screen)

    # Make a meteor shower
    meteors = Group()

    # Create the meteor shower
    gf.create_shower(ai_settings, screen, ship, meteors)

    # Set the background color
    bg_color = (230, 230, 230)

    # Start the main loop for the game
    while True:
        gf.check_events(ai_settings, screen, ship, bullets)
        if stats.game_active:
            ship.update()
            bullets.update()
            gf.update_bullets(ai_settings, screen, ship, meteors, bullets)
            gf.update_meteors(ai_settings, stats, screen, ship, meteors,
                              bullets)
        gf.update_screen(ai_settings, screen, ship, bullets, meteors)
示例#21
0
    def __init__(self):
        # Tell the class incharge, to run the __init__ function
        super().__init__(800, 600, "My Arcade Window")
        self.set_update_rate(1)
        # Create a copy of the Meteor class, using x=200 and y=200
        # self.meteor = Meteor(200, 200)
        # Create an empty list
        self.meteors = SpriteList()
        # Loop 20 times
        for i in range(20):
            # Create a copy of the Meteor class, using random integers for x and y
            new_meteor = Meteor(randint(0, self.width),
                                randint(0, self.height))
            # Add the new copy to the list of meteors
            self.meteors.append(new_meteor)

        self.player = Player(self.width / 2, self.height / 2, "Best Player",
                             "blue")

        self.a_pressed = False
        self.d_pressed = False
        self.w_pressed = False
        self.s_pressed = False
示例#22
0
def fire_meteor(fs_settings, screen, meteors):
    if len(meteors) < fs_settings.meteors_allowed:
        new_meteor = Meteor(fs_settings, screen)
        meteors.add(new_meteor)
示例#23
0
import re
from meteor import Meteor
import sys
import pandas as pd
import tensorflow as tf

scorer = Meteor()
# clean for BioASQ https://github.com/nlpaueb/aueb-bioasq6
bioclean = lambda t: re.sub('[.,?;*!%^&_+():-\[\]{}]', '', t.replace('"', '').replace('/', '').replace('\\', '').replace("'",'').strip().lower())

FLAGS = tf.app.flags.FLAGS

tf.flags.DEFINE_string("filepath", "", "Path to JSON file")

def main(argv):
	"""
	run as:
	>> python __init__.py --filepath "path_to_json"
	:param filepath: path to json file (json format: [{"id":"", "predicted_caption":"", "true_caption":""}]
	:return: print METEOR score
	"""

	assert FLAGS.filepath, "--filepath is required"

	gts = {}
	res = {}

	results = pd.read_json(FLAGS.filepath, orient="records")
	results.predicted_caption = results.predicted_caption.apply(bioclean)
	results.true_caption = results.true_caption.apply(bioclean)
示例#24
0
def game_loop():
    capture = Connection()

    global pause
    ############
    # pygame.mixer.music.load('woosh.wav')
    # pygame.mixer.music.play(-1)
    ############

    meteor_list = pygame.sprite.Group()
    projectile_list = pygame.sprite.Group()

    for i in range(nb_meteors):
        m = Meteor(display_width, display_height)
        meteor_list.add(m)

    ship = Ship(ship_width, ship_height, shipx, shipy)

    gameExit = False

    aimx = display_width // 2
    aimy = 0
    aim = np.array((aimx, aimy))
    aim = aim / np.linalg.norm(aim)

    shot_timer = 0
    while not gameExit:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_p:
                    pause = True
                    paused()

        # aimx, aimy = pygame.mouse.get_pos()
        # aim = np.array((aimx, aimy))
        pupil_positions = capture.recent_events()
        if pupil_positions:
            print("Found Pupil")
            aimx, aimy = pupil_positions[-1]
            aimy = 1 - aimy
            aimx = aimx * display_width
            aimy = aimy * display_height
            aim = np.array((aimx, aimy))
        else:
            print("No pupil pos")

        shot_timer += 1
        if shot_timer % 20 == 0:
            Projectile(aim - (shipx + ship_width // 2, shipy), shipx, shipy,
                       ship_width, meteor_list, projectile_list, display_width,
                       display_height)
            shot_timer = 0

        gameDisplay.fill(white)

        # Move things
        for projectile in projectile_list:
            projectile.update()

        meteor_list.update()

        # Draw things
        surface_markers.draw(gameDisplay)
        meteor_list.draw(gameDisplay)
        ship.draw(gameDisplay)
        projectile_list.draw(gameDisplay)

        # Remove dead meteors and projectiles
        # projectile_list[:] = [p for p in projectile_list if p.alive]

        cross_hair(aimx, aimy)
        # things_dodged(dodged)

        blocks_hit_list = pygame.sprite.spritecollide(ship, meteor_list, True)
        if blocks_hit_list:
            crash()

        pygame.display.update()
        clock.tick(60)
示例#25
0
def newMeteor():
    global all_sprites
    m = Meteor(meteors, all_sprites)
    meteors.add(m)
    all_sprites.add(m)
示例#26
0
 def init_meteor(self):
     # Create a new meteor obbject. Random position of meteor on x-axis (marginal 10 px) and random speed
     meteor = Meteor(random.randint(10, 790), 0, random.uniform(0.75, 2.50))
     return meteor
示例#27
0
def newMeteor():
    m = Meteor(meteors, all_sprites)
    meteors.add(m)
    all_sprites.add(m)