Robin Burchell
40a5eb4e6e
Minesweeper: Make things a little more friendly at the start
...
Rather than having the first click hit a bomb, if the first click would
hit a bomb, instead, reset the game board.
This is a (sort of) feature of Windows minesweeper, and IMO makes
playing a bit more fun :-)
2019-05-19 21:33:50 +02:00
Andreas Kling
852d648912
Fix "make clean" not deleting app binaries.
2019-05-13 14:56:18 +02:00
Andreas Kling
ab42180e83
Fix some more victims of the new default layout spacing.
2019-05-11 03:06:18 +02:00
Andreas Kling
ac67a2ed5e
Minesweeper: Flag unflagged mines on win.
2019-05-06 13:27:58 +02:00
Andreas Kling
13b8c7eab8
Minesweeper: Fix lag when changing the field size.
...
Use a number of techniques to avoid freezing the UI for too long.
- Keep reusing the same widgets for the squares once they've been created.
- Temporarily disable widget updates.
- Avoid some redundant work on each run of reset().
2019-05-02 04:21:21 +02:00
Andreas Kling
75734aa003
Minesweeper: Add considering feature, where middle clicking marks with '?'
...
This is useful in the harder modes, for trying out different possibilities.
2019-04-28 13:55:41 +02:00
Andreas Kling
146aedc32c
Minesweeper: Implement some feature requests.
...
Someone was playing this game and suggested a number of improvements so here
we go trying to address them:
- Add "chording" support, where you can click a numbered square using both
mouse buttons simultaneously to sweep all non-flagged adjacent squares.
- Mis-flagged squares are now revealed as such on game over, with a special
"bad flag" icon.
- The game timer now shows tenths of seconds. It also doesn't start until
you click the first square.
- Add the three difficulty modes from the classic Windows version.
2019-04-26 19:54:31 +02:00
Andreas Kling
08bc5d44e7
Games: Use Makefile.common here too.
2019-04-26 15:14:28 +02:00
Andreas Kling
b3f7f5436a
Snake+Minesweeper: Exit process when game window is closed.
2019-04-21 04:11:29 +02:00
Andreas Kling
a56e1afb64
Snake: Show the highest score achieved so far (in this session.)
2019-04-20 21:24:38 +02:00
Andreas Kling
0dcb7a234e
LibGUI+Minesweeper: Add GWindow::set_resizable().
2019-04-20 21:24:02 +02:00
Andreas Kling
a0633c298b
Snake: Add a window icon. :^)
2019-04-20 20:14:02 +02:00
Andreas Kling
ca9a430965
Snake: Disable double-buffering for the game window.
...
There's no need to use automatic double-buffering here since we manage the
backing store manually.
2019-04-20 19:51:10 +02:00
Andreas Kling
c9b86be1cc
Snake: Add some more fruit types.
2019-04-20 18:50:41 +02:00
Andreas Kling
4619019481
Snake: Tweak game speed so it's not too easy.
2019-04-20 17:46:59 +02:00
Andreas Kling
79573ce7e6
Snake: Try to only repaint the parts that actually changed between ticks.
2019-04-20 15:04:34 +02:00
Andreas Kling
301a269ca0
Get rid of SERENITY macro since the compiler already defines __serenity__
...
This makes it a bit easier to use AK templates out-of-tree.
2019-04-20 12:58:49 +02:00
Andreas Kling
6ef8e2df5a
Snake: Use a vegetable icon for the fruit.
2019-04-20 04:00:32 +02:00
Andreas Kling
09c087177c
Snake: Clear the movement queue on game reset.
2019-04-20 03:47:35 +02:00
Andreas Kling
b41e95b578
Snake: Use a queue for the movement inputs.
...
This makes it a lot less finicky to make rapid moves like staircasing and
sudden turns.
2019-04-20 03:44:56 +02:00
Andreas Kling
e24e486714
Snake: Flesh out a basic snake game :^)
2019-04-20 03:24:50 +02:00
Andreas Kling
eca9494adf
Snake: Import skeleton of a new snake game.
2019-04-20 01:54:10 +02:00
Andreas Kling
c8e601a5d5
Minesweeper: Add little icons to the flags and timer labels.
2019-04-15 03:12:28 +02:00
Andreas Kling
791e8f5bb0
Minesweeper: Paint a grid pattern below the mines.
2019-04-15 02:45:04 +02:00
Andreas Kling
bc5148354f
LibCore: Add a CConfigFile class, a simple INI file parser.
...
You open the configuration for an app like so:
auto config = CConfigFile::get_for_app("MyApp");
This will then open ~/MyApp.ini and parse it for you.
Immediately start using it in Minesweeper to load the field size and mine
count from a config file.
2019-04-15 02:23:20 +02:00
Andreas Kling
1503834c3b
Minesweeper: Add flag counter and game timer.
2019-04-14 21:01:52 +02:00
Andreas Kling
0e30f4e412
Minesweeper: Flood fill should include the first numbered found.
2019-04-14 05:53:13 +02:00
Andreas Kling
c09c114d77
WindowServer+LibGUI: Add ability to set per-window icons.
...
The icons are passed around as filesystem paths for now, since the shared
memory bitmaps only support 2 sides.
2019-04-13 16:59:55 +02:00
Andreas Kling
28cf9a41fe
Minesweeper: Make it possible to win the game. :^)
2019-04-13 15:51:29 +02:00
Andreas Kling
198a1a6877
Minesweeper: Add some menus.
2019-04-13 14:32:18 +02:00
Andreas Kling
49b63efddb
Minesweeper: Turn the field into a GFrame for that containery look.
2019-04-13 14:22:40 +02:00
Andreas Kling
3f37665492
Minesweeper: Fix wrong adjacency numbers on right and bottom edges.
2019-04-13 14:14:38 +02:00
Andreas Kling
4df360be8c
Minesweeper: More implementation work.
2019-04-13 03:57:55 +02:00
Andreas Kling
a90e218c71
Minesweeper: Start working on a simple minesweeper game. :^)
2019-04-13 03:08:16 +02:00