Git Product home page Git Product logo

flutter-puzzle-hackathon's Introduction

flutter_puzzle_hack

My Entry to the #FlutterPuzzleHack

Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

My name is Fawaz Joseph and I would like thank everyone involved in creating this Hackathon.

Inspiration

I was inspired by the base tutorial for the Project. I, like a lot of people also like gifs so I wanted a way to put a 4x4 sliding puzzle and ways to discover gifs to use on Twitter.

What it does

You get a random gif from giphy.org based on an optional tag. This can be"dog", "reaction", "funny", e.t.c In the beginning, the gif is covered by the tiles The tiles become transparent once they are in the correct place. When all the tiles are correct and the puzzle is solved, you can see your random gif. You can also get hints or get it solved for you.

How we built it

It was built using Giphy API to get the gif, particularly the random endpoint. The PuzzleBoard was created using Stack and AnimatedPosition and also various implicit Animated Widget Containers were used for the various decoration to highlight the states (movable, solved) There are snack bars and progress bars to indicate messages and progress respectively

Challenges we ran into

Learning how to write an algorithm to solve a puzzle. Not being able to release on the web because of compute() doesn't work on web

Accomplishments that we're proud of

First is the algorithm to determine whether a Puzzle is solvable or not. The second was implementing a solver. This is what is used to get hints and play the game for the user. It was amazing to learn all the algorithms again. When all the tests passed, I felt so good. It felt like I was back in college. I had to create an A* solving algorithm but that was too slow so I iterated to an iterative deep A* Figuring the heuristics was amazing. Manhattan Distance, hamming distance, number of Inversions, linear conflict. I had to read a lot and It was so fun. Thank you for creating this hackathon. I learned a lot!!

What we learned

A lot of algorithms. A lot of new packages I didn't know existed.

What's next for Gif Scratch-off

flutter-puzzle-hackathon's People

Contributors

tinhorn 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.