来源:机器之心
对于很多 80 后、90 后来说,任天堂 Gameboy 代表了青春的很大一部分。很多我们耳熟能详的游戏都是最初搭载在这款 8 位游戏掌机上的,包括鼎鼎有名的《马里奥》、《塞尔达》系列。对于国内玩家来说,我们玩得最多的则应该是《口袋妖怪》系列了。
   
   
     
    
    
      from pyboy import PyBoy
    
    
      pyboy = PyBoy('ROMs/gamerom.gb')while not pyboy.tick():
    
    
      pass
   
   
       
   import osimport sysfrom pyboy import PyBoy, WindowEvent# Makes us able to import PyBoy from the directory belowfile_path = os.path.dirname(os.path.realpath(__file__))sys.path.insert(0, file_path + "/..")# Check if the ROM is given through argvif len(sys.argv) > 1:    filename = sys.argv[1]else:    print("Usage: python mario_boiler_plate.py [ROM file]")    exit(1)quiet = "--quiet" in sys.argvpyboy = PyBoy(filename, window_type="headless" if quiet else "SDL2", window_scale=3, debug=not quiet, game_wrapper=True)pyboy.set_emulation_speed(0)assert pyboy.cartridge_title() == "SUPER MARIOLAN"mario = pyboy.game_wrapper()mario.start_game()assert mario.score == 0assert mario.lives_left == 2assert mario.time_left == 400assert mario.world == (1, 1)assert mario.fitness == 0 # A built-in fitness score for AI developmentlast_fitness = 0print(mario)pyboy.send_input(WindowEvent.PRESS_ARROW_RIGHT)for _ in range(1000):assert mario.fitness >= last_fitness    last_fitness = mario.fitness    pyboy.tick()if mario.lives_left == 1:assert last_fitness == 27700assert mario.fitness == 17700 # Loosing a live, means 10.000 points in this fitness scoringprint(mario)        breakelse:    print("Mario didn't die?")    exit(2)mario.reset_game()assert mario.lives_left == 2pyboy.stop() 
   ——END——