<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
為什麼我們見不到外星人? 曾經在物理學上有一個著名人物叫費米,大家知道費米是在物理學上發現中子轟擊的人,有一個著名的費米悖論,就是費米追問為什麼外星人還見不到? 費米的這個追問包含的意思是這樣的,地球上產生人類,從機率上講,絕不可能人類獨在。 因為人類只不過是一個自然界的造物,只要自然條件達到這個狀態,生命就會進入這個狀態。大陽系只是一個小小的星系,僅銀河系就有兩千到四千億顆恆星。
天文學家今天發現大約有5%的恆星有行星。大家算一下,拿兩千億算,5%的恆星有行星, 這是一個多大的數量級。然後我們假定在所有的行星中只有1%是類地行星。我們再假定在類地行星中只有1%有生命,有低等生命,比如單細胞。 我們再假定有生命的行星上只有1%有高智生物,你就這樣一點一 點把它往下推 。你知道學界推出的結論是什麼?僅銀河系大約有一百萬顆行星上有類似於人這樣的高智生物。 我們說少一點,十萬,僅銀河系。請記住,銀河系只不過是宇宙中數千億個星系中的一個星系。大家想想,雖然高智生物的總質量在宇宙中極低,但它的分佈量何其之大。如此之多的高智生物,它為什麼沒有來到過地球?
我再給大家說一組資料。據天文物理學家研究,一百三十七億年前,宇宙從奇點爆發,大約在爆發以後的十七億年到五十億年之間形成恆星。大家注意,我說最遲是五十億年恆星發生,而恆星裡有5%有行星,要知道太陽系行星和恆星之間出現差距僅四十億年左右。 也就是說出現生命的可能性,在宇宙剛剛發生五十多億年以後就出現了。我這個話的意思是說,高智生物演化時間最長,可能可以長到比我們人類早幾十億年。大家要知道太陽系才五十億年,也就是宇宙爆炸以後八十多億年以後太陽系才出現。 而五十億年的時候, 恆星系已經發生了。理論上比地球人早的高智生物二十多億年以前,三十多億年以前就出現了,而我們人類文明才不過短五千年,就是有思想,有文字元號,才不過短五千年。
外星人入侵
#====匯入相關庫===== import os import sys import cfg import random import pygame from modules import * #==========開始遊戲========== def startGame(screen): clock = pygame.time.Clock() # 載入字型 font = pygame.font.SysFont('arial', 18) if not os.path.isfile('score'): f = open('score', 'w') f.write('0') f.close() with open('score', 'r') as f: highest_score = int(f.read().strip()) # 敵方 enemies_group = pygame.sprite.Group() for i in range(55): if i < 11: enemy = enemySprite('small', i, cfg.WHITE, cfg.WHITE) elif i < 33: enemy = enemySprite('medium', i, cfg.WHITE, cfg.WHITE) else: enemy = enemySprite('large', i, cfg.WHITE, cfg.WHITE) enemy.rect.x = 85 + (i % 11) * 50 enemy.rect.y = 120 + (i // 11) * 45 enemies_group.add(enemy) boomed_enemies_group = pygame.sprite.Group() en_bullets_group = pygame.sprite.Group() ufo = ufoSprite(color=cfg.RED) #====================我方================= myaircraft = aircraftSprite(color=cfg.GREEN, bullet_color=cfg.WHITE) my_bullets_group = pygame.sprite.Group() #==============用於控制敵方位置更新========= #===========移動一行=========== enemy_move_count = 24 enemy_move_interval = 24 enemy_move_flag = False #==改變移動方向(改變方向的同時集體下降一次)=== enemy_change_direction_count = 0 enemy_change_direction_interval = 60 enemy_need_down = False enemy_move_right = True enemy_need_move_row = 6 enemy_max_row = 5 #===用於控制敵方發射子彈=== enemy_shot_interval = 100 enemy_shot_count = 0 enemy_shot_flag = False #===遊戲進行中=== running = True is_win = False #=============主迴圈================== while running: screen.fill(cfg.BLACK) for event in pygame.event.get(): #===點右上角的X或者按Esc鍵退出遊戲===== if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pygame.quit() sys.exit() #===============射擊=================== if event.type == pygame.MOUSEBUTTONDOWN: my_bullet = myaircraft.shot() if my_bullet: my_bullets_group.add(my_bullet) #====我方子彈與敵方/UFO碰撞檢測============= for enemy in enemies_group: if pygame.sprite.spritecollide(enemy, my_bullets_group, True, None): boomed_enemies_group.add(enemy) enemies_group.remove(enemy) myaircraft.score += enemy.reward if pygame.sprite.spritecollide(ufo, my_bullets_group, True, None): ufo.is_dead = True myaircraft.score += ufo.reward #==========更新並畫敵方============ #============敵方子彈============= enemy_shot_count += 1 if enemy_shot_count > enemy_shot_interval: enemy_shot_flag = True enemies_survive_list = [enemy.number for enemy in enemies_group] shot_number = random.choice(enemies_survive_list) enemy_shot_count = 0 #==========敵方移動================ enemy_move_count += 1 if enemy_move_count > enemy_move_interval: enemy_move_count = 0 enemy_move_flag = True enemy_need_move_row -= 1 if enemy_need_move_row == 0: enemy_need_move_row = enemy_max_row enemy_change_direction_count += 1 if enemy_change_direction_count > enemy_change_direction_interval: enemy_change_direction_count = 1 enemy_move_right = not enemy_move_right enemy_need_down = True #==========每次下降提高移動和射擊速度======= enemy_move_interval = max(15, enemy_move_interval-3) enemy_shot_interval = max(50, enemy_move_interval-10) #===========遍歷更新==================== for enemy in enemies_group: if enemy_shot_flag: if enemy.number == shot_number: en_bullet = enemy.shot() en_bullets_group.add(en_bullet) if enemy_move_flag: if enemy.number in range((enemy_need_move_row-1)*11, enemy_need_move_row*11): if enemy_move_right: enemy.update('right', cfg.SCREENSIZE[1]) else: enemy.update('left', cfg.SCREENSIZE[1]) else: enemy.update(None, cfg.SCREENSIZE[1]) if enemy_need_down: if enemy.update('down', cfg.SCREENSIZE[1]): running = False is_win = False enemy.change_count -= 1 enemy.draw(screen) enemy_move_flag = False enemy_need_down = False enemy_shot_flag = False #================敵方爆炸特效=============== for boomed_enemy in boomed_enemies_group: if boomed_enemy.boom(screen): boomed_enemies_group.remove(boomed_enemy) del boomed_enemy #============敵方子彈與我方飛船碰撞檢測=========== if not myaircraft.one_dead: if pygame.sprite.spritecollide(myaircraft, en_bullets_group, True, None): myaircraft.one_dead = True if myaircraft.one_dead: if myaircraft.boom(screen): myaircraft.resetBoom() myaircraft.num_life -= 1 if myaircraft.num_life < 1: running = False is_win = False else: #===========更新飛船================ myaircraft.update(cfg.SCREENSIZE[0]) #============畫飛船============= myaircraft.draw(screen) if (not ufo.has_boomed) and (ufo.is_dead): if ufo.boom(screen): ufo.has_boomed = True else: #=========更新UFO========= ufo.update(cfg.SCREENSIZE[0]) #===畫UFO=== ufo.draw(screen) #===畫我方飛船子彈=== for bullet in my_bullets_group: if bullet.update(): my_bullets_group.remove(bullet) del bullet else: bullet.draw(screen) #===畫敵方子彈=== for bullet in en_bullets_group: if bullet.update(cfg.SCREENSIZE[1]): en_bullets_group.remove(bullet) del bullet else: bullet.draw(screen) if myaircraft.score > highest_score: highest_score = myaircraft.score # --得分每增加2000我方飛船增加一條生命 if (myaircraft.score % 2000 == 0) and (myaircraft.score > 0) and (myaircraft.score != myaircraft.old_score): myaircraft.old_score = myaircraft.score myaircraft.num_life = min(myaircraft.num_life + 1, myaircraft.max_num_life) # --敵人都死光了的話就勝利了 if len(enemies_group) < 1: is_win = True running = False # --顯示文字 # ----當前得分 showText(screen, 'SCORE: ', cfg.WHITE, font, 200, 8) showText(screen, str(myaircraft.score), cfg.WHITE, font, 200, 24) # ----敵人數量 showText(screen, 'ENEMY: ', cfg.WHITE, font, 370, 8) showText(screen, str(len(enemies_group)), cfg.WHITE, font, 370, 24) # ----歷史最高分 showText(screen, 'HIGHEST: ', cfg.WHITE, font, 540, 8) showText(screen, str(highest_score), cfg.WHITE, font, 540, 24) # ----FPS showText(screen, 'FPS: ' + str(int(clock.get_fps())), cfg.RED, font, 8, 8) # --顯示剩餘生命值 showLife(screen, myaircraft.num_life, cfg.GREEN) pygame.display.update() clock.tick(cfg.FPS) with open('score', 'w') as f: f.write(str(highest_score)) return is_win #=============主函數====================== def main(): # 初始化 pygame.init() pygame.display.set_caption('宇宙演化——為什麼外星人來不了地球') screen = pygame.display.set_mode(cfg.SCREENSIZE) pygame.mixer.init() pygame.mixer.music.load(cfg.BGMPATH) pygame.mixer.music.set_volume(0.4) pygame.mixer.music.play(-1) while True: is_win = startGame(screen) endInterface(screen, cfg.BLACK, is_win) #=============執行====================== if __name__ == '__main__': main()
到此這篇關於Python實現外星人去哪了小遊戲詳細程式碼的文章就介紹到這了,更多相關Python 外星人去哪了內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45