From bdd1dc3486c3f61150944f20856ed41c30f152df Mon Sep 17 00:00:00 2001 From: "U-DESKTOP-RGBJJO6\\ybnvs" Date: Fri, 25 Jul 2025 08:22:53 +1000 Subject: [PATCH 1/3] Deleted current explore page --- .../3-building-programs/3-explore.md | 123 ------------------ 1 file changed, 123 deletions(-) delete mode 100644 src/content/docs/book/part-0-getting-started/3-building-programs/3-explore.md diff --git a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore.md b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore.md deleted file mode 100644 index 994e7c41..00000000 --- a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Go Exploring ---- - -:::tip -Use the [installation guides](/book/appendix/0-installation/0-overview) to install the tools you need. -::: - -Here is a fun hello world program to wrap up this section. You can also look through the guide and fine other sample code you can download and run now. This is a great way to explore the ideas you are learning. - -The code for this part will be using SplashKit functionality to draw images, play sound effects and draw text with a specific font. - -:::note[Reminder] -You're not expected to understand how the following code works at this point. It has been created for fun, so you can just copy and paste - and enjoy another "Hello World!" GUI program! -::: - -Create a new project, copy the following code, and paste it into your Program.cs file (replacing existing code). Run this program using `dotnet run`: - -```cs -using static SplashKitSDK.SplashKit; - -// download resources -DownloadSoundEffect("Hello World", "https://programmers.guide/resources/code-examples/part-0/hello-world-snippet-saddle-club.ogg", 443); -DownloadFont("main", "https://programmers.guide/resources/code-examples/part-0/Roboto-Italic.ttf", 443); -DownloadBitmap("Earth", "https://programmers.guide/resources/code-examples/part-0/earth.png", 443); -DownloadBitmap("SmallEarth", "https://programmers.guide/resources/code-examples/part-0/earth-small.png", 443); -DownloadBitmap("SplashKitBox", "https://programmers.guide/resources/code-examples/part-0/skbox.png", 443); - -OpenWindow("Hello World: Using Resources with SplashKit", 800, 600); -PlaySoundEffect("Hello World"); - -ClearScreen(ColorWhite()); -DrawText("Anyone remember the \"Hello World\" Saddle Club song?", ColorBlack(), "main", 30, 40, 200); -RefreshScreen(); -Delay(2500); - -ClearScreen(ColorWhite()); - -// H -DrawBitmap("SmallEarth", 20, 100); -DrawBitmap("SmallEarth", 20, 130); -DrawBitmap("SmallEarth", 20, 160); -DrawBitmap("SmallEarth", 20, 190); -DrawBitmap("SmallEarth", 20, 220); -DrawBitmap("SmallEarth", 52, 160); -DrawBitmap("SmallEarth", 84, 100); -DrawBitmap("SmallEarth", 84, 130); -DrawBitmap("SmallEarth", 84, 160); -DrawBitmap("SmallEarth", 84, 190); -DrawBitmap("SmallEarth", 84, 220); -RefreshScreen(); -Delay(200); - -// E -DrawBitmap("SmallEarth", 148, 100); -DrawBitmap("SmallEarth", 148, 130); -DrawBitmap("SmallEarth", 148, 160); -DrawBitmap("SmallEarth", 148, 190); -DrawBitmap("SmallEarth", 148, 220); -DrawBitmap("SmallEarth", 180, 100); -DrawBitmap("SmallEarth", 212, 100); -DrawBitmap("SmallEarth", 180, 160); -DrawBitmap("SmallEarth", 180, 220); -DrawBitmap("SmallEarth", 212, 220); -RefreshScreen(); -Delay(200); - -// L -DrawBitmap("SmallEarth", 276, 100); -DrawBitmap("SmallEarth", 276, 130); -DrawBitmap("SmallEarth", 276, 160); -DrawBitmap("SmallEarth", 276, 190); -DrawBitmap("SmallEarth", 276, 220); -DrawBitmap("SmallEarth", 308, 220); -DrawBitmap("SmallEarth", 340, 220); -RefreshScreen(); -Delay(200); - -// L -DrawBitmap("SmallEarth", 404, 100); -DrawBitmap("SmallEarth", 404, 130); -DrawBitmap("SmallEarth", 404, 160); -DrawBitmap("SmallEarth", 404, 190); -DrawBitmap("SmallEarth", 404, 220); -DrawBitmap("SmallEarth", 436, 220); -DrawBitmap("SmallEarth", 468, 220); -RefreshScreen(); -Delay(200); - -// O -DrawBitmap("SmallEarth", 530, 160); -DrawBitmap("SmallEarth", 622, 160); -DrawBitmap("SmallEarth", 540, 128); -DrawBitmap("SmallEarth", 560, 100); -DrawBitmap("SmallEarth", 592, 100); -DrawBitmap("SmallEarth", 612, 128); -DrawBitmap("SmallEarth", 540, 192); -DrawBitmap("SmallEarth", 560, 220); -DrawBitmap("SmallEarth", 592, 220); -DrawBitmap("SmallEarth", 612, 192); -RefreshScreen(); -Delay(500); - -// World -DrawBitmap("Earth", 100, 350); -RefreshScreen(60); -Delay(2000); - -// SplashKit ("Me") -DrawBitmap("SplashKitBox", 450, 300); -DrawText("SplashKit!", ColorBlack(), "main", 50, 450, 530); -RefreshScreen(60); -Delay(2000); -``` - -Following a bit of a theme with *writing words out of something other than actual text*, we get this: - -
- -
- -🌏 Yes, that is "HELLO", written using "worlds" 😄 -(Because "HELLO" ... "*world*") From ea56a259ac8496561c46ab1bdb2441afc3d4ac71 Mon Sep 17 00:00:00 2001 From: "U-DESKTOP-RGBJJO6\\ybnvs" Date: Fri, 25 Jul 2025 08:24:18 +1000 Subject: [PATCH 2/3] added new explore content --- .../3-explore/3-1-hello-with-worlds.md | 123 ++++++++++++++++++ .../3-explore/3-2-test-knowledge.md | 8 ++ .../3-explore/3-3-classic-quote.md | 28 ++++ .../3-explore/3-4-paint-me.md | 18 +++ .../3-explore/images/smile.png | Bin 0 -> 6902 bytes 5 files changed, 177 insertions(+) create mode 100644 src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-1-hello-with-worlds.md create mode 100644 src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-2-test-knowledge.md create mode 100644 src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-3-classic-quote.md create mode 100644 src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-4-paint-me.md create mode 100644 src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/images/smile.png diff --git a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-1-hello-with-worlds.md b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-1-hello-with-worlds.md new file mode 100644 index 00000000..a94490a0 --- /dev/null +++ b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-1-hello-with-worlds.md @@ -0,0 +1,123 @@ +--- +title: Hello with Worlds +--- + +:::tip +Use the [installation guides](/book/appendix/0-installation/0-overview) to install the tools you need. +::: + +Here is a fun hello world program to wrap up this section. You can also look through the guide and fine other sample code you can download and run now. This is a great way to explore the ideas you are learning. + +The code for this part will be using SplashKit functionality to draw images, play sound effects and draw text with a specific font. + +:::note[Reminder] +You're not expected to understand how the following code works at this point. It has been created for fun, so you can just copy and paste - and enjoy another "Hello World!" GUI program! +::: + +Create a new project, copy the following code, and paste it into your Program.cs file (replacing existing code). Run this program using `dotnet run`: + +```cs +using static SplashKitSDK.SplashKit; + +// download resources +DownloadSoundEffect("Hello World", "https://programmers.guide/resources/code-examples/part-0/hello-world-snippet-saddle-club.ogg", 443); +DownloadFont("main", "https://programmers.guide/resources/code-examples/part-0/Roboto-Italic.ttf", 443); +DownloadBitmap("Earth", "https://programmers.guide/resources/code-examples/part-0/earth.png", 443); +DownloadBitmap("SmallEarth", "https://programmers.guide/resources/code-examples/part-0/earth-small.png", 443); +DownloadBitmap("SplashKitBox", "https://programmers.guide/resources/code-examples/part-0/skbox.png", 443); + +OpenWindow("Hello World: Using Resources with SplashKit", 800, 600); +PlaySoundEffect("Hello World"); + +ClearScreen(ColorWhite()); +DrawText("Anyone remember the \"Hello World\" Saddle Club song?", ColorBlack(), "main", 30, 40, 200); +RefreshScreen(); +Delay(2500); + +ClearScreen(ColorWhite()); + +// H +DrawBitmap("SmallEarth", 20, 100); +DrawBitmap("SmallEarth", 20, 130); +DrawBitmap("SmallEarth", 20, 160); +DrawBitmap("SmallEarth", 20, 190); +DrawBitmap("SmallEarth", 20, 220); +DrawBitmap("SmallEarth", 52, 160); +DrawBitmap("SmallEarth", 84, 100); +DrawBitmap("SmallEarth", 84, 130); +DrawBitmap("SmallEarth", 84, 160); +DrawBitmap("SmallEarth", 84, 190); +DrawBitmap("SmallEarth", 84, 220); +RefreshScreen(); +Delay(200); + +// E +DrawBitmap("SmallEarth", 148, 100); +DrawBitmap("SmallEarth", 148, 130); +DrawBitmap("SmallEarth", 148, 160); +DrawBitmap("SmallEarth", 148, 190); +DrawBitmap("SmallEarth", 148, 220); +DrawBitmap("SmallEarth", 180, 100); +DrawBitmap("SmallEarth", 212, 100); +DrawBitmap("SmallEarth", 180, 160); +DrawBitmap("SmallEarth", 180, 220); +DrawBitmap("SmallEarth", 212, 220); +RefreshScreen(); +Delay(200); + +// L +DrawBitmap("SmallEarth", 276, 100); +DrawBitmap("SmallEarth", 276, 130); +DrawBitmap("SmallEarth", 276, 160); +DrawBitmap("SmallEarth", 276, 190); +DrawBitmap("SmallEarth", 276, 220); +DrawBitmap("SmallEarth", 308, 220); +DrawBitmap("SmallEarth", 340, 220); +RefreshScreen(); +Delay(200); + +// L +DrawBitmap("SmallEarth", 404, 100); +DrawBitmap("SmallEarth", 404, 130); +DrawBitmap("SmallEarth", 404, 160); +DrawBitmap("SmallEarth", 404, 190); +DrawBitmap("SmallEarth", 404, 220); +DrawBitmap("SmallEarth", 436, 220); +DrawBitmap("SmallEarth", 468, 220); +RefreshScreen(); +Delay(200); + +// O +DrawBitmap("SmallEarth", 530, 160); +DrawBitmap("SmallEarth", 622, 160); +DrawBitmap("SmallEarth", 540, 128); +DrawBitmap("SmallEarth", 560, 100); +DrawBitmap("SmallEarth", 592, 100); +DrawBitmap("SmallEarth", 612, 128); +DrawBitmap("SmallEarth", 540, 192); +DrawBitmap("SmallEarth", 560, 220); +DrawBitmap("SmallEarth", 592, 220); +DrawBitmap("SmallEarth", 612, 192); +RefreshScreen(); +Delay(500); + +// World +DrawBitmap("Earth", 100, 350); +RefreshScreen(60); +Delay(2000); + +// SplashKit ("Me") +DrawBitmap("SplashKitBox", 450, 300); +DrawText("SplashKit!", ColorBlack(), "main", 50, 450, 530); +RefreshScreen(60); +Delay(2000); +``` + +Following a bit of a theme with *writing words out of something other than actual text*, we get this: + +
+ +
+ +🌏 Yes, that is "HELLO", written using "worlds" 😄 +(Because "HELLO" ... "*world*") diff --git a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-2-test-knowledge.md b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-2-test-knowledge.md new file mode 100644 index 00000000..a2a95249 --- /dev/null +++ b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-2-test-knowledge.md @@ -0,0 +1,8 @@ +--- +title: Test your knowledge +--- + +Having explored this leg of the journey you are now approaching a rest stop and a chance to practice and reflect. Test what you have learnt by creating one or more of the following programs: + +- [Simple Writing](/book/part-0-getting-started/3-building-programs/3-explore/3-3-classic-quote/) using the terminal. +- [Simple Drawing](/book/part-0-getting-started/3-building-programs/3-explore/3-4-paint-me/) using the Splashkit library. diff --git a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-3-classic-quote.md b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-3-classic-quote.md new file mode 100644 index 00000000..b43204b2 --- /dev/null +++ b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-3-classic-quote.md @@ -0,0 +1,28 @@ +--- +title: Simple Writing +sidebar: + label: " - The Power of Words" +--- + + +Write a tiny terminal application that simply greets the user and prints the opening line of your favourite book + +```txt +Welcome to the classic-quote generator! + +“It was a bright cold day in April, and the clocks were striking thirteen.” + +``` + +Or, Level‑up by presenting the greeting inside a very simple terminal‑based user interface — think of those chunky boxes you see in retro command‑line tools. Use a classic sci‑fi computer quote for the salutation. Example shown with HAL 9000 from 2001: A Space Odyssey. + +```txt ++--------------------------------------------------+ +| | +| Good evening, Dave. I’m HAL 9000. | +| "I’m sorry, Dave. I’m afraid I can’t do that." | +| | ++--------------------------------------------------+ +``` + +Stick to the commands and concepts we’ve already covered (e.g., WriteLine / print equivalents). Avoid extra prompts or calculations—keep it truly minimal. diff --git a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-4-paint-me.md b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-4-paint-me.md new file mode 100644 index 00000000..eb70a592 --- /dev/null +++ b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/3-4-paint-me.md @@ -0,0 +1,18 @@ +--- +title: Simple Drawing +sidebar: + label: " - A Picture Worth 1000 Words" +--- + + +Write/modify a Splashkit application that draws a simple picture + +![An example picture or a smiling face](./images/smile.png) + +Follow the [Graphical Hello world](/book/part-0-getting-started/3-building-programs/1-tour/2-hello-world-gui) guide +and play around with adding or removing the shapes, to see if you can make something truly original. + +:::tip +Don't worry if it seems like magic for now, with time we will decipher what all of those "magic numbers" are... +Just have a play, and enjoy being able to create shapes +::: \ No newline at end of file diff --git a/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/images/smile.png b/src/content/docs/book/part-0-getting-started/3-building-programs/3-explore/images/smile.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c1fab9b13f8d68c840197066220bd2c95b09ae GIT binary patch literal 6902 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 Date: Fri, 25 Jul 2025 08:25:39 +1000 Subject: [PATCH 3/3] updated sidebar --- astro.config.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/astro.config.mjs b/astro.config.mjs index 3c30fa88..0de61a45 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -181,7 +181,12 @@ export default defineConfig({ }, { label: "Activities", - link: "book/part-0-getting-started/3-building-programs/3-explore", + collapsed: true, + autogenerate: { + directory: + "book/part-0-getting-started/3-building-programs/3-explore", + collapsed: true, + }, }, ], },