hangovergames / project-memory Goto Github PK
View Code? Open in Web Editor NEWMatching Game Project
Home Page: https://memory.hangover.games
License: Other
Matching Game Project
Home Page: https://memory.hangover.games
License: Other
Add a card component for the game. Just the card part of the design, actual graphics design comes later.
Also improved mobile layouts and page colors.
Card graphics made by Toni "TQNI" Tilsala @TQNI-design
Improve the game.
Improve the game.
Embed the game frontend into the backend so that it is possible to just release a binary for the game server.
Improve the game.
Stateless backend for the memory matching game. It will utilize cryptography to pass the game state back to the frontend. It will not have any kind of authentication or state.
This will be private source code, Github repository at hangovergames/memory.
Improve the game.
Improve the game.
Implement a support to share your results to other people.
Once the game is over, and score is recorded, the URL could change to /results/:id
It would be nice if an automated SEO image would be generated as well.
The server binary has a --version
flag now:
$ ./gomemory --version
HG's memory game v0.0.3 by Hangover Games <[email protected]>
URL = https://github.com/hangovergames/project-memory
Improve the bonus to be a level based, and it should give more bonus for higher levels always.
There are seven levels of combos:
Except for level 7, player would need to fail between combos to archieve maximum amount for the level.
Currently using milliseconds and integers for score. We'll get better scores if using milliseconds.
We need stats about how long a card has been visible to the user.
This can be calculated from the game state between each iteration.
Implement TypeScript client library for our stateless Memory Matching backend.
Backend for Hangover Games' Matching Game Project
Request body:
{
"nextIndex": 0,
}
Command:
curl -i -d '{"nextIndex": 0}' http://localhost:3001
Response:
HTTP/1.1 200 OK
Content-Type: application/json
Date: Sun, 07 Apr 2024 23:41:23 GMT
Content-Length: 436
{
"score":0,
"cards":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"private":"Y1aU4hhRmV1Puc+05E/apHN5gdAaaXI9px4fOEcvkiGYG4Po6Gp8eO+ZzUduanmX0yWPY6ChVZk+TW7QPO99XgtcoqJjHAwJy0EcV5v54elYflk1Ltr9kBCQqQEP5Tf3WsmB+zinXaFxr6Jkc+mDLLY/VKqMVmkP/qELOLVnMOnuxkCXdzXONYAOYU0u7IEMRtB2lC6fvAjoy6s9wWJFWvp526aFcAnTUN31gIWJbWI6nJu92WJIVu0+wxs9E8AbOBhEG0hXpM72hmH8bBXml5s8Z9S9UxMLpv8ZqaZd5fzCLN1G4ctuLmUC/f5fKhJLAGMhHyMnYLL6zgaf8FkdbvQn3DL/9F1dMmdb",
"lastCard":1
}
Request body:
{
"nextIndex": 1,
"gameState": {
"score":0,
"cards":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"private":"Y1aU4hhRmV1Puc+05E/apHN5gdAaaXI9px4fOEcvkiGYG4Po6Gp8eO+ZzUduanmX0yWPY6ChVZk+TW7QPO99XgtcoqJjHAwJy0EcV5v54elYflk1Ltr9kBCQqQEP5Tf3WsmB+zinXaFxr6Jkc+mDLLY/VKqMVmkP/qELOLVnMOnuxkCXdzXONYAOYU0u7IEMRtB2lC6fvAjoy6s9wWJFWvp526aFcAnTUN31gIWJbWI6nJu92WJIVu0+wxs9E8AbOBhEG0hXpM72hmH8bBXml5s8Z9S9UxMLpv8ZqaZd5fzCLN1G4ctuLmUC/f5fKhJLAGMhHyMnYLL6zgaf8FkdbvQn3DL/9F1dMmdb",
"lastCard":1,
"lastIndex": 15
}
}
Command:
curl -i -d '{"nextIndex": 1, "gameState": {"score":0,"cards":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"private":"Y1aU4hhRmV1Puc+05E/apHN5gdAaaXI9px4fOEcvkiGYG4Po6Gp8eO+ZzUduanmX0yWPY6ChVZk+TW7QPO99XgtcoqJjHAwJy0EcV5v54elYflk1Ltr9kBCQqQEP5Tf3WsmB+zinXaFxr6Jkc+mDLLY/VKqMVmkP/qELOLVnMOnuxkCXdzXONYAOYU0u7IEMRtB2lC6fvAjoy6s9wWJFWvp526aFcAnTUN31gIWJbWI6nJu92WJIVu0+wxs9E8AbOBhEG0hXpM72hmH8bBXml5s8Z9S9UxMLpv8ZqaZd5fzCLN1G4ctuLmUC/f5fKhJLAGMhHyMnYLL6zgaf8FkdbvQn3DL/9F1dMmdb","lastCard":1,"lastIndex": 15}}' http://localhost:3001
Response:
HTTP/1.1 200 OK
Content-Type: application/json
Date: Sun, 07 Apr 2024 23:42:07 GMT
Content-Length: 436
{
"score":0,
"cards":[0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4],
"private":"YTUi5aJQjyCqbEBVf1gxNB+KZmkXnzQg0jiqfkJfECE18esg+q+hODgwz3s0lNb5v7oTLRanO/VK22Ppl3zAcCEk6aObarfBJMeGgcw7RdWXUZ19f6pBgz9rp1baVM9CkmPyc/kqqdEZOKFms89dzefhKbY/tUqP6IwLQ5Se3zHT6DsI0YAjbx2JLWcbwUW17vRWMkNibuNpFVgC4H6UwPQLnvNJkJGRjq8Zl6t/xaUIhaEyLMRMF0nVuO6aHQfgel6W/tDMDN2e8CJIlOMpu9zWcJDaRQb+p9Ojk2GtSsQUm90ectElWy/gQ66Rgi8B6mi5hby3kGS6Y8KSBNKbR05F9Sr/sEf196ff",
"lastCard": 4,
"lastIndex": 1
}
Write unit tests to improve the game
NewGameState
ToggleCard
UpdateScore
While unit testing and implementing audit log, we noticed that score calculation gave extra points for duration when it was intended to be a penalty.
Leader board of last 100 best results
Improve the game.
It appears that combos are recorded incorrectly
Improve the game.
Implement game server on public network so that the frontend can be tested without backend source code
It appears that after a successful match, a failed match will be recorded in correctly for the first guess.
First full release.
The purpose of this issue is to track all unresolved issues within our memory game that have not been assigned to a specific project. It aims to organize and prioritize these issues effectively to facilitate future scheduling of the development process.
Improve the game.
Implement initial ReactJS and TypeScript frontend for the game. Uses plain colors as cards initially.
Some manual testing and algorithm calibrations done
DurationBonusMultiplier was never calculated since it was incorrectly counted only for one card count, when it's always at least 2
Improve the game.
It appears that user can get scores even if already matched with the same card.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.