Object-oriented Programming in Python: Create Your Own Adventure Game

بواسطة: FutureLearn

Overview

A fun introduction to object-oriented programming in Python

Object-oriented programming is a programming paradigm based on objects and data rather than actions and logic.

This online course will introduce you to the principles of object-oriented programming in Python, showing you how to create objects, functions, methods, and classes.

You’ll use what you learn to create your own text-based adventure game. You will have the chance to share your code with other learners, and see theirs.

If you’re an educator, you’ll also be able to develop ideas for using object-oriented programming in your classroom.

This course is designed for people who are already familiar with Python programming and want to learn a different programming paradigm, understand and use existing libraries more effectively, or create code which is useful to other people.

It will be particularly useful for educators and students of a post-16 qualification.

Python 3

Syllabus

  • Using objects
    • Introducing the aims of the course
    • What is an object?
    • Write a program using an object
    • Recap week 1
  • Creating classes
    • Welcome to Week 2
    • Start to create your object-oriented text-based adventure game
    • Recap Week 2
  • Extending classes
    • Extend other people’s classes
    • Create an enemy in the room
    • Recap Week 3
  • Extending your game and your OOP knowledge
    • Welcome to Week 4
    • Extending your knowledge of OOP
    • Finish your game
    • End of the course

Taught by

Lauren Hyams

Object-oriented Programming in Python: Create Your Own Adventure Game
الذهاب الي الدورة

Object-oriented Programming in Python: Create Your Own Adventure Game

بواسطة: FutureLearn

  • FutureLearn
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • beginner
  • N/A
8.1.2PHP Version376msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (237ms)
    • Application (138ms)
    • 1 x Booting (63.11%)
      237.18ms
      1 x Application (36.64%)
      137.73ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed9.03ms
      • select * from `courses` where `slug_ar` = 'object-oriented-programming-in-python:-create-your-own-adventure-game' limit 1
        7.36ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. object-oriented-programming-in-python:-create-your-own-adventure-game
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-02-22 14:55:16' where `id` = 2518
        420μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-22 14:55:16
        • 1. 2518
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (18)
        280μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (98) and `institutions`.`deleted_at` is null
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (4) and `providers`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2509 limit 1
        280μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2509
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        9gjQeMa2hlnSTOVUJ3UUUvG2VXG5Ihg76aooES4F
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/object...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/object-oriented-programming-in-python:-create-your-own-adventure-game
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "3.15.209.38" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.15.209.38" ] "cf-ray" => array:1 [ 0 => "915fd0ee5bb5c694-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "3.15.209.38" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.15.209.38" "HTTP_CF_RAY" => "915fd0ee5bb5c694-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "54704" "REMOTE_ADDR" => "172.69.17.202" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/object-oriented-programming-in-python:-create-your-own-adventure-game" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1740236116.47 "REQUEST_TIME" => 1740236116 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sat, 22 Feb 2025 14:55:16 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlFLbWJDK0hkQkVNUXlWUEhWUGdrMGc9PSIsInZhbHVlIjoic24zWTExZ0VmUnAzaGszS2lpTjEyR0hYMHNYKy96Z3d3OVlXVE13WWtQQjFLNlZZeXNhWVRJSWZLVEN1NUo4R0F3TUFzR3VtcjNIQ3k0MHArais4YURRRklDN3FBOHAweHFoNEhPeTIyWDRiTjdRTlU0TG9aMGx1SVZrOEdvRlEiLCJtYWMiOiI3MDYxNzk3ZDliMWViYzhmZTM4ZmQzMGQ0YTk5OGVjMGU5NGU5OTIyZmM2NDgwMTg1NTVjODkxOWM0YTIzNmUzIiwidGFnIjoiIn0%3D; expires=Sat, 22 Feb 2025 16:55:16 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlFLbWJDK0hkQkVNUXlWUEhWUGdrMGc9PSIsInZhbHVlIjoic24zWTExZ0VmUnAzaGszS2lpTjEyR0hYMHNYKy96Z3d3OVlXVE13WWtQQjFLNlZZeXNhWVRJSWZLVEN1NUo4R0F3TUFzR" 1 => "laravel_session=eyJpdiI6IjNVRFpHYWJrMWNpRktZekQ3OXpIVUE9PSIsInZhbHVlIjoibS9VOEJWV2wwTDFTUDRvWDlvcUVrb1poRjZuL1JmMXFUYXFHN29ncU42WDBNVHNlZWFsMEs4aVRWWlZ0RGVwdDBDREtJNUxTMUxLd3J5TkNFcUtJbG1kMEJUelZjSURmeDEzOEJWUzA2UkwzcXRlSGNxVjB0QnEvdmh5YnpFWlgiLCJtYWMiOiJkNmI0MjgwZmFjZDMxZmFjOTg4OGVhYWNkMjY0ODIyMmRlZmUzNWE2ZTQ5NzYxMmY3MDgyYTA3YTYyY2YzNjhiIiwidGFnIjoiIn0%3D; expires=Sat, 22 Feb 2025 16:55:16 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjNVRFpHYWJrMWNpRktZekQ3OXpIVUE9PSIsInZhbHVlIjoibS9VOEJWV2wwTDFTUDRvWDlvcUVrb1poRjZuL1JmMXFUYXFHN29ncU42WDBNVHNlZWFsMEs4aVRWWlZ0RGVwdDBD" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlFLbWJDK0hkQkVNUXlWUEhWUGdrMGc9PSIsInZhbHVlIjoic24zWTExZ0VmUnAzaGszS2lpTjEyR0hYMHNYKy96Z3d3OVlXVE13WWtQQjFLNlZZeXNhWVRJSWZLVEN1NUo4R0F3TUFzR3VtcjNIQ3k0MHArais4YURRRklDN3FBOHAweHFoNEhPeTIyWDRiTjdRTlU0TG9aMGx1SVZrOEdvRlEiLCJtYWMiOiI3MDYxNzk3ZDliMWViYzhmZTM4ZmQzMGQ0YTk5OGVjMGU5NGU5OTIyZmM2NDgwMTg1NTVjODkxOWM0YTIzNmUzIiwidGFnIjoiIn0%3D; expires=Sat, 22-Feb-2025 16:55:16 GMT; path=/XSRF-TOKEN=eyJpdiI6IlFLbWJDK0hkQkVNUXlWUEhWUGdrMGc9PSIsInZhbHVlIjoic24zWTExZ0VmUnAzaGszS2lpTjEyR0hYMHNYKy96Z3d3OVlXVE13WWtQQjFLNlZZeXNhWVRJSWZLVEN1NUo4R0F3TUFzR" 1 => "laravel_session=eyJpdiI6IjNVRFpHYWJrMWNpRktZekQ3OXpIVUE9PSIsInZhbHVlIjoibS9VOEJWV2wwTDFTUDRvWDlvcUVrb1poRjZuL1JmMXFUYXFHN29ncU42WDBNVHNlZWFsMEs4aVRWWlZ0RGVwdDBDREtJNUxTMUxLd3J5TkNFcUtJbG1kMEJUelZjSURmeDEzOEJWUzA2UkwzcXRlSGNxVjB0QnEvdmh5YnpFWlgiLCJtYWMiOiJkNmI0MjgwZmFjZDMxZmFjOTg4OGVhYWNkMjY0ODIyMmRlZmUzNWE2ZTQ5NzYxMmY3MDgyYTA3YTYyY2YzNjhiIiwidGFnIjoiIn0%3D; expires=Sat, 22-Feb-2025 16:55:16 GMT; path=/; httponlylaravel_session=eyJpdiI6IjNVRFpHYWJrMWNpRktZekQ3OXpIVUE9PSIsInZhbHVlIjoibS9VOEJWV2wwTDFTUDRvWDlvcUVrb1poRjZuL1JmMXFUYXFHN29ncU42WDBNVHNlZWFsMEs4aVRWWlZ0RGVwdDBD" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "9gjQeMa2hlnSTOVUJ3UUUvG2VXG5Ihg76aooES4F" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/object-oriented-programming-in-python:-create-your-own-adventure-game" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]