All Projects → GLodi → matchymatchy

GLodi / matchymatchy

Licence: other
...a matching colors Flutter game!

Programming Languages

dart
5743 projects
typescript
32286 projects
ruby
36898 projects - #4 most used programming language
shell
77523 projects
swift
15916 projects
kotlin
9241 projects

Projects that are alternatives of or similar to matchymatchy

sqflite migration
Library to manage sqlite db migrations.
Stars: ✭ 40 (+48.15%)
Mutual labels:  sqflite
flutter-Anniversary
一款界面优美,功能简洁的纪念日APP
Stars: ✭ 57 (+111.11%)
Mutual labels:  sqflite
tv-randshow
App to choose a random TV show episode - Made with #Flutter
Stars: ✭ 90 (+233.33%)
Mutual labels:  sqflite
task management
Task Management / TODO App
Stars: ✭ 60 (+122.22%)
Mutual labels:  sqflite

matchymatchy

...a matching colors Flutter game!

The goal is to reproduce the top right pattern on the 9 center squares with as few moves as possible.

STILL IN DEVELOPMENT

Fun fact: this app was entirely developed on emacs!

Architecture

This app implements Didier Boelens' approach to BLoC. The idea is to show data through widgets that react to a bloc's Stream. In order to simplify state management, I've also implemented EventStates: blocs that emit a new widget's state based on an event.

Multiplayer

Multiplayer is handled by Firebase. A Firestore database stores all matches, queue and users information and all endpoints are Firebase Functions written in Typescript (project under directory functions).

  • Queue

When a player looks for a new match, he's put in a FIFO queue and joins a match as soon as an opponent is found. A common target is chosen for them and whoever reaches the goal with the fewest amount of moves wins.

  • Reconnection

Players can leave a match at any time and reconnect later. Active matches are stored on the device thanks to sqflite.

  • Forfeit

Players can forfeit a match. This immediately triggers a win condition for the opponent.

  • Move/Win/Challenge notification

Notifications are handled by Firebase Cloud Messaging. Every time a player is challenged, or an opponent plays a move, both players are notified.

If you want to use the online component, you can create a new Firebase project, create your own google-services.json and put it under android/app.

Singleplayer

The app comes with a sqflite db of 500 combinations of target fields + game fields. A random combination is chosen.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].