flame icon indicating copy to clipboard operation
flame copied to clipboard

Klondike Tutorial, Step 5: Add code and further explanation of FlatButton and others, or at least a link to its code #19

Open nickf2k opened this issue 1 year ago • 6 comments

What could be improved

As I was following Klondike's instructions, near the end of step 5, I felt like the instructions writer was not as patient as in the previous steps. Many parts I found were not explained thoroughly, there is no code for FlatButton (I know there is code for it at the end, but there is no explanation about that). I think we need to add some more detailed explanations, if there is no code for it then at least link to the code of those parts

Why should this be improved

We can learn flame more easily

Risks

No risk

More information

Step 5 at: https://docs.flame-engine.org/latest/tutorials/klondike/step5.html

Other

  • [X] Are you interested in working on a PR for this?

nickf2k avatar Mar 11 '24 04:03 nickf2k

Yeah nothing on base card functionality or hit boxes - like there's whole methods that are skipped - mind you - awesome tutorial - learnt a ton thanks!

KrakenZim avatar Mar 11 '24 16:03 KrakenZim

Looking forward to seeing the improved version of that step! If you think it'll be too much information in one step, feel free to split it up. :)

spydon avatar Mar 11 '24 21:03 spydon

@spydon Thanks for your suggestion. I'm reading issue https://github.com/flame-engine/flame/issues/2895 and applying improvement criteria to improve the documentation here. I'll post back soon the points I plan to improve

nickf2k avatar Mar 13 '24 03:03 nickf2k

@spydon What do you think of my suggestion below? Please let me know what needs to be changed Step 5 's table of contents:

Screenshot 2024-03-14 at 16 32 39

1. What would I do to improve this tutorial:

  • Add missing content, eliminate confusing interruptions, and include omitted code sections.
  • Incorporate images and example animations to illustrate our objectives.
  • Introduce additional sections where necessary (though the final source code remains intact).
  • Provide logical transitions between sections.
  • Address why we need to follow specific approaches and not others.
  • Include links and information about general game development concepts (such as the concept of "seed" in game programming).

2. Contents I will add or modify:

  • The Klondike draw
  • Making cards move
  • Animating a card-flip
  • Model and View
  • Ending and restarting the game

I believe these sections are satisfactory, so I won't make any edits to them. I will begin editing from the section: A New World.

  • [ ] Immediately after the Start and restart actions section, I will provide an explanation of the "KlondikeWorld" class. Consequently, the adjustment of the "KlondikeGame" class is merely a necessary step when migrating the onLoad() function to KlondikeWorld, rendering the "A stripped-down KlondikeGame class" section redundant.

  • [ ] The section Using a Random Number Generator seed appears reasonable. However, I intend to supplement more references to this definition of "seed." If you have any documents or suggestions on this topic, please provide further information. Otherwise, I will utilize the following link: Link to Reddit.

  • [ ] The section Introducing the new KlondikeWorld class was previously covered, hence it will be omitted here. Please note that I will enrich the previous instruction with additional details.

  • [ ] Button: I will retain and expand upon this section as it lacks significant information.

  • [ ] Anchors and coordinates: This section may be considered supplementary information within the Button section. Therefore, I will incorporate and merge it into the Button section.

  • [ ] The deal() method: I will maintain this section in its current position, perhaps making minor sentence edits or none at all.

  • [ ] More animations of moves: Similar to the section "The deal() method."

  • [ ] A graphics glitch: As above.

  • [ ] Winning the game: I find this section quite comprehensive; hence, I may not make any alterations.

  • [ ] Ending a game and restarting it: This section lacks crucial details and is rather confusing. I will rewrite it to clarify.

  • [ ] Have fun button: This section is well-structured; therefore, I may retain it with minor adjustments if necessary.

nickf2k avatar Mar 14 '24 09:03 nickf2k

@nickf2k looks like a great plan! You'll probably get a good feeling of what fitting section names are for the table of contents while fixing up the other things.

spydon avatar Mar 14 '24 11:03 spydon

I opened a PR for this: https://github.com/flame-engine/flame/pull/3078

nickf2k avatar Mar 14 '24 15:03 nickf2k