René's URL Explorer Experiment


Title: Model the Square (Video) – Real Python

Open Graph Title: Model the Square – Real Python

Description: Model the Square. The purpose of a square is to convey information about a particular location in the maze. Therefore, every square should have known coordinates that can determine its position. The square should also have a border pattern that…

Open Graph Description: Model the Square. The purpose of a square is to convey information about a particular location in the maze. Therefore, every square should have known coordinates that can determine its position. The square should also have a border pattern that…

Opengraph URL: https://realpython.com/lessons/model-python-maze-square/

X: @realpython

direct link

Domain: realpython.com


Hey, it has json ld scripts:
  {
    "@context": "https://schema.org",
    "@type": "VideoObject",
    "name": "Model the Square",
    "description": "Model the Square. The purpose of a square is to convey information about a particular location in the maze. Therefore, every square should have known coordinates that can determine its position. The square should also have a border pattern that…",
    "thumbnailUrl": ["https://files.realpython.com/media/Build-a-Pac-Man-Maze-Solver-in-Python_Watermarked.c2e79a85fc99.jpg"],
    "uploadDate": "2023-06-06T14:00:00+00:00",
    "duration": "PT2M25S",
    
    "potentialAction": {
      "@type": "SeekToAction",
      "target": "https://realpython.com/lessons/model-python-maze-square/#t={seek_to_second_number}",
      "startOffset-input": "required name=seek_to_second_number"
    }
  }
  

authorReal Python
theme-color#18354c
color-schemelight dark
twitter:cardsummary_large_image
twitter:imagehttps://files.realpython.com/media/Build-a-Pac-Man-Maze-Solver-in-Python_Watermarked.c2e79a85fc99.jpg
og:imagehttps://files.realpython.com/media/Build-a-Pac-Man-Maze-Solver-in-Python_Watermarked.c2e79a85fc99.jpg
twitter:creator@realpython
og:typevideo.episode
og:site_nameReal Python
apple-mobile-web-app-titleReal Python

Links:

https://realpython.com/
Start Herehttps://realpython.com/start-here/
Learn Python https://realpython.com/lessons/model-python-maze-square/
Your Learning Plan →Your personalized Python learning planhttps://realpython.com/account/learning-plan/
Python Tutorials →In-depth articles and video courseshttps://realpython.com/search?kind=article&kind=course&order=newest&_from=nav_library
Learning Paths →Guided study plans for accelerated learninghttps://realpython.com/learning-paths/
Quizzes & Exercises →Check your learning progresshttps://realpython.com/search?kind=exercise&kind=quiz&_from=nav_library
Browse Topics →Focus on a specific area or skill levelhttps://realpython.com/tutorials/all/
Reference →Concise definitions for common Python termshttps://realpython.com/ref/
Mentor AI →NewYour personal Python mentorhttps://realpython.com/mentor/
Office Hours →Live Q&A calls with Python expertshttps://realpython.com/office-hours/
Community Chat →Learn with other Pythonistashttps://realpython.com/community/
Live Courses →Live, instructor-led Python courseshttps://realpython.com/live/
Books →Round out your knowledge and learn offlinehttps://realpython.com/products/books/
Podcast →Hear what’s new in the world of Pythonhttps://realpython.com/podcasts/rpp/
Unlock All Content and Become a Python Expert →Get unlimited access to all Real Python has to offerhttps://realpython.com/account/join/?from=navbar_learn
Unlock All Content →Become a Python Experthttps://realpython.com/account/join/?from=navbar_learn
More https://realpython.com/lessons/model-python-maze-square/
Learner Storieshttps://realpython.com/learner-stories/
Python Newsletterhttps://realpython.com/newsletter/
Python Job Boardhttps://www.pythonjobshq.com
Meet the Teamhttps://realpython.com/team/
Become a Contributorhttps://realpython.com/jobs/
Searchhttps://realpython.com/search
https://realpython.com/search
Joinhttps://realpython.com/account/join/
Sign‑Inhttps://realpython.com/account/login/?intent=navbar&next=%2Flessons%2Fmodel-python-maze-square%2F
Unlock This Lessonhttps://realpython.com/account/join/?utm_source=rp_lesson&utm_content=python-maze-solver
Unlock This Lessonhttps://realpython.com/account/join/?utm_source=rp_lesson&utm_content=python-maze-solver
https://realpython.com/courses/python-maze-solver/#team
Mazes in Python: Build, Visualize, Store, and Solvehttps://realpython.com/courses/python-maze-solver/
Darren Joneshttps://realpython.com/courses/python-maze-solver/#team
Recommended Tutorialhttps://realpython.com/python-maze-solver/
Course Slides (.pdf)https://realpython.com/courses/python-maze-solver/downloads/mazes-in-python-slides/
Sample Code (.zip)https://realpython.com/courses/python-maze-solver/downloads/mazes-in-python-code/
Ask a Questionhttps://realpython.com/lessons/model-python-maze-square/#discussion
https://realpython.com/feedback/survey/course/python-maze-solver/liked/?from=lesson-title
https://realpython.com/feedback/survey/course/python-maze-solver/disliked/?from=lesson-title
Contentshttps://realpython.com/lessons/model-python-maze-square/#description
Transcripthttps://realpython.com/lessons/model-python-maze-square/#transcript
Discussionhttps://realpython.com/lessons/model-python-maze-square/#discussion
00:00https://realpython.com/lessons/model-python-maze-square/#t=0.54
Model the Square.https://realpython.com/lessons/model-python-maze-square/#t=0.54
00:04https://realpython.com/lessons/model-python-maze-square/#t=4.24
The purpose of a square is to convey information about a particular location inhttps://realpython.com/lessons/model-python-maze-square/#t=4.24
the maze.https://realpython.com/lessons/model-python-maze-square/#t=8.34
Therefore,https://realpython.com/lessons/model-python-maze-square/#t=9.178
every square should have known coordinates that can determine its position.https://realpython.com/lessons/model-python-maze-square/#t=10.15
00:14https://realpython.com/lessons/model-python-maze-square/#t=14.54
The square should also have a border pattern that describes the maze structurehttps://realpython.com/lessons/model-python-maze-square/#t=14.54
at that location.https://realpython.com/lessons/model-python-maze-square/#t=17.9
Depending on the purpose of the square,https://realpython.com/lessons/model-python-maze-square/#t=18.955
it may option optionally play a special role—for example,https://realpython.com/lessons/model-python-maze-square/#t=21.52
indicating the maze entrance.https://realpython.com/lessons/model-python-maze-square/#t=24.79
00:27https://realpython.com/lessons/model-python-maze-square/#t=27.29
You’ve already done the hard work by offloading most of these responsibilitieshttps://realpython.com/lessons/model-python-maze-square/#t=27.29
to helper classes.https://realpython.com/lessons/model-python-maze-square/#t=31.01
The only remaining task is to combine them into a final square object.https://realpython.com/lessons/model-python-maze-square/#t=33.02
00:39https://realpython.com/lessons/model-python-maze-square/#t=39.77
Open the square module and enter this code.https://realpython.com/lessons/model-python-maze-square/#t=39.77
00:55https://realpython.com/lessons/model-python-maze-square/#t=55.99
You are using Python’s data class to generate the mundane code for you,https://realpython.com/lessons/model-python-maze-square/#t=55.99
which will correctly initialize instances of this class, amongst a few otherhttps://realpython.com/lessons/model-python-maze-square/#t=59.9
things.https://realpython.com/lessons/model-python-maze-square/#t=64.13
01:05https://realpython.com/lessons/model-python-maze-square/#t=65.72
Enabling the frozen parameter ensures that square objects become immutable afterhttps://realpython.com/lessons/model-python-maze-square/#t=65.72
you create them.https://realpython.com/lessons/model-python-maze-square/#t=69.96
There’s no point in changing the values of the instance variables once they’rehttps://realpython.com/lessons/model-python-maze-square/#t=71.3
set.https://realpython.com/lessons/model-python-maze-square/#t=75.19
01:16https://realpython.com/lessons/model-python-maze-square/#t=76.56
Preferring immutable objects over mutable ones where possible is considered ahttps://realpython.com/lessons/model-python-maze-square/#t=76.56
good programming practice,https://realpython.com/lessons/model-python-maze-square/#t=80.63
which can prevent subtle bugs caused by unexpected changes in data.https://realpython.com/lessons/model-python-maze-square/#t=81.79
01:26https://realpython.com/lessons/model-python-maze-square/#t=86.94
Note that in addition to storing the square’s row and column indices,https://realpython.com/lessons/model-python-maze-square/#t=86.94
you also keep track of its one-dimensional index within a flat sequence ofhttps://realpython.com/lessons/model-python-maze-square/#t=90.25
squares.https://realpython.com/lessons/model-python-maze-square/#t=94.55
01:35https://realpython.com/lessons/model-python-maze-square/#t=95.431
This way,https://realpython.com/lessons/model-python-maze-square/#t=95.431
the search algorithm can uniquely identify the squares.https://realpython.com/lessons/model-python-maze-square/#t=96.47
01:43https://realpython.com/lessons/model-python-maze-square/#t=103.91
While you could theoretically infer the index from the row and column,https://realpython.com/lessons/model-python-maze-square/#t=103.91
you’d also need to know the width and height of the maze,https://realpython.com/lessons/model-python-maze-square/#t=107.47
which are none of the square’s business.https://realpython.com/lessons/model-python-maze-square/#t=109.78
01:52https://realpython.com/lessons/model-python-maze-square/#t=112.3
A little redundancy can sometimes keep data encapsulated.https://realpython.com/lessons/model-python-maze-square/#t=112.3
When creating your Square instance,https://realpython.com/lessons/model-python-maze-square/#t=117.99
you must specify its index, row, column, and border pattern,https://realpython.com/lessons/model-python-maze-square/#t=120.14
but the role is completely optional.https://realpython.com/lessons/model-python-maze-square/#t=124.3
02:06https://realpython.com/lessons/model-python-maze-square/#t=126.406
If you skip the role in the initializer,https://realpython.com/lessons/model-python-maze-square/#t=126.406
then the square will assume Role.NONE by default.https://realpython.com/lessons/model-python-maze-square/#t=129.05
And that’s it!https://realpython.com/lessons/model-python-maze-square/#t=133.7
You successfully modeled the Square data type,https://realpython.com/lessons/model-python-maze-square/#t=134.296
so all the building blocks are now in place to build the maze,https://realpython.com/lessons/model-python-maze-square/#t=136.94
and that’s what you’ll be doing in the next section of the course.https://realpython.com/lessons/model-python-maze-square/#t=140.86
Become a Memberhttps://realpython.com/account/join/
https://realpython.com/lessons/python-maze-border-patterns/
Overviewhttps://realpython.com/courses/python-maze-solver/
https://realpython.com/lessons/build-python-maze/
Mazes in Python: Build and Visualize 02:47 https://realpython.com/videos/python-maze-solver-part-1-overview/
Check Out What You'll Make 02:39 https://realpython.com/videos/python-maze-solver-project/
Lay the Groundwork 04:02 https://realpython.com/videos/python-maze-solver-groundwork/
Scaffold the Project Structure 04:50 https://realpython.com/lessons/python-maze-solver-structure/
Represent the Maze With Objects 06:37 https://realpython.com/lessons/represent-maze-with-objects/
Create Border Patterns 06:32 https://realpython.com/lessons/python-maze-border-patterns/
Model the Square 02:25 https://realpython.com/lessons/model-python-maze-square/
Build the Maze 09:07 https://realpython.com/lessons/build-python-maze/
Visualize the Maze With SVG 04:45 https://realpython.com/lessons/python-maze-svg/
Implement Geometric Primitives 04:48 https://realpython.com/lessons/python-maze-geometric-primitives/
Add More Primitives 03:47 https://realpython.com/lessons/python-maze-more-primitives/
Decompose the Border Into Primitives 04:41 https://realpython.com/lessons/decompose-python-maze-border/
Add More Border Patterns 03:58 https://realpython.com/lessons/python-maze-more-border-patterns/
Build the SVG Renderer 03:49 https://realpython.com/lessons/python-maze-svg-renderer/
Add Features to the Renderer 06:50 https://realpython.com/lessons/python-maze-renderer-features/
Draw the Solution 03:13 https://realpython.com/lessons/draw-python-maze-solution/
Preview the Rendered Maze and Its Solution 04:56 https://realpython.com/lessons/preview-python-maze/
Mazes in Python: Build and Visualize (Recap) 01:14 https://realpython.com/lessons/python-maze-solver-part-1-summary/
Mazes in Python: Store and Solve 01:48 https://realpython.com/videos/python-maze-solver-part-2-overview/
Load the Maze From a Binary File 04:55 https://realpython.com/videos/python-maze-binary-file/
Choose Your Data Alignment 05:09 https://realpython.com/videos/python-maze-data-alignment/
Define the File Header and Body 08:12 https://realpython.com/lessons/python-maze-file-header-and-body/
Serialize the Maze 05:22 https://realpython.com/lessons/serialize-python-maze/
Deserialize the Maze 04:32 https://realpython.com/lessons/deserialize-python-maze/
Make the Maze Self-Contained 04:30 https://realpython.com/lessons/python-self-contained-maze/
Update the Maze Class 03:16 https://realpython.com/lessons/python-maze-class/
Solve the Maze Using a Graph-Based Approach 03:01 https://realpython.com/lessons/solve-python-maze-graph-based/
Transform the Maze Into a Graph 07:06 https://realpython.com/lessons/transform-python-maze-graph/
Find the Shortest Path 05:23 https://realpython.com/lessons/python-maze-shortest-path/
Add Weights to Graph Edges 02:36 https://realpython.com/lessons/python-map-weights-graph-edges/
Introduce Enemies and Rewards 06:04 https://realpython.com/lessons/python-maze-enemies-rewards/
Make a Runnable Script 03:59 https://realpython.com/lessons/python-maze-runnable-script/
Mazes in Python: Store and Solve (Recap) 01:23 https://realpython.com/lessons/python-maze-solver-part-2-summary/
Privacy Policyhttps://realpython.com/privacy-policy/

Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover

Robots: max-image-preview:large


URLs of crawlers that visited me.