ootzk / consoleminigames Goto Github PK
View Code? Open in Web Editor NEWmini games on windows console implemented by c++
mini games on windows console implemented by c++
The ultimate goal of all gamers; climb to the top of the scoreboard!
I already implemented 2048 game logic @ https://www.acmicpc.net/problem/12100
But we need to...
make it pretty!
It is annoying screen background(including text, color info, line & column control) in source code... It also(maybe) slows building our project.
Let's design appropriate background-manage JSON...
make black box at gameSelectionScreen
, and shows simple animation about game which the cursor is located to choose.
To keep clean main.cpp
동생이 예전에 냈던 아이디어.
'0' 번 블록은 오히려 시각적으로 번잡하니 차라리 아무것도 써 있지 않은 바탕이 나아 보인다는 것.
how to implement this function efficiently?
Implement pause screen; this screen can be reached by pressing PAUSE button.
If we enter here during the game, we should back to the game without losing states
화려한 조명이 나를 감싸네
Currently, we repeating opening and closing sprites of blocks in 2048 game. I think this affect the LAG of when we press shift buttons quickly.
We can select various games in here.
For Future: add preview box for sample gameplay
explain why this project: just for fun and practice.
그야... 재미있으니까!
With some awesome ascii arts
there's too many duplicated codes between screens: such as choice select, init, etc...
How to reduce these code redundancy?
game clear: you made 2048
game over: no more empty block to generate random block
제곧네
No game-wise random engine; It can be serviced globally.
To show the effect of moving snake, we'd like to apply different snake head sprite per each direction of head.
Coordinate vs. DIRECTION ?
We need to document naming convention for the project.
Thus, study how to change names easily in VS2019 across the projects...
Basic 2048 logic (https://www.acmicpc.net/problem/12100)
How to pass info between screen efficiently?
ex) arbitrary GameScreen passes score to GameClearScreen and it GameClearScreen displays the score
As project development progresses, the contents to be loaded on creditScreen also increases.
Let's make ScrollWidget.
AnimationWidget is not proper... too many text file will be required.
enum class STATE
(at "core.h") -> enum class SCREEN
(at "screen.h")
This change will detach the core code from the screen related codes, also, it is more intuitive.
How to display , not 'Won'?
marketing is important.
let's make my project attractive with awesome screenshots (gif will be good)
하 개열심히 해서 2048 만들었더니...
clear logic 어디갔었누
내가 만든 버그인데 빡치긴하네
(is it possible in console?)
Logic of snake game
Count the number of movements while 2048 appears
additional congratulation screen & game over screen
It should be initialized.
how to enable 2-step screen communication?
Display some messages and information.
Record version info in project and automate displaying.
bug abusing: if all blocks filled with non-zero(gameover), but if we don't press any button, we won't see the gameover screen.
this can be fixed by determining gameover logic just before get input
redrawing logic:
current: redraw indicated blocks per frame
change: redraw indicated blocks only just after shifted
Congratulations! your score will be recorded at HighScoreScreen!
현재 SPRITE는 draw할 때마다 file을 읽고 닫는 식으로 만들어져 있다.
생성될 때 한 번 txt 파일들을 읽고 내부 구조체에 저장해둔 뒤, draw할 때는 내부 구조체를 읽는 방식으로 변경한다.
Symphony No.5 Beethoven
It's not necessary, but it's good idea.
This can be enough replacement of requirement of moving animation(#15)
How to highlight?
#12 implemented, but there's LAG if we press the shift buttons quickly.
It re-draws all the block in 2048 board every shift, so we can optimize by tracking changed block after shift and just only re-draw that.
gameSnake.h
and gameSnake.cpp
gameSnakeScreen.h
and gameSnakeScreen.cpp
gameSelectionScreen
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.