Giter Site home page Giter Site logo

noeeetrejo / flappybirdai Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 24.58 MB

An AI that learns how to play flappy bird, using NEAT (NeuroEvolution of Augmenting Topologies), essentially taking the best attributes from different Genomes of Birds to end up with birds that are better at the game.

Python 100.00%
neuroevolution neat augmenting-topologies python

flappybirdai's Introduction

FlappyBirdAI

TLDR (How it works/What is it?):

An AI that learns how to play flappy bird, using NEAT (NeuroEvolution of Augmenting Topologies). Essentially, we spawn birds, they try different things, and we take attributes from the 'species' that go the furthest. By doing so, we favor specific attributes, and more birds have that attribute, and get better.

NEAT:

Two Birds playing

"NEAT (NeuroEvolution of Augmenting Topologies) is an evolutionary algorithm that creates artificial neural networks. For a detailed description of the algorithm, you should probably go read some of Stanley’s papers on his website.....

To evolve a solution to a problem, the user must provide a fitness function which computes a single real number indicating the quality of an individual genome: better ability to solve the problem means a higher score. The algorithm progresses through a user-specified number of generations, with each generation being produced by reproduction (either sexual or asexual) and mutation of the most fit individuals of the previous generation." NEAT Overview

Pygame:

I used Pygame to make the game. I first made the game from scratch using a Youtube Video, and some good old OOP.

Classes:

  • Bird
  • Pipe
  • Base

Something I learned when making this game is that instead of the bird moving towards the pipes, we make the illusion that the Bird moves by moving everything towards the bird!

flappybirdai's People

Contributors

noeeetrejo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.