Membina Permainan Mad Libs Interaktif dalam Python: Panduan Pemula

Barbara Streisand
Lepaskan: 2024-10-06 18:15:03
asal
537 orang telah melayarinya

Pernahkah anda mendapati diri anda ketawa tanpa kawalan sambil mengisi perkataan rawak untuk mencipta cerita yang tidak masuk akal? Jika ya, anda mungkin telah mengalami kegembiraan Mad Libs, permainan perkataan klasik yang telah menghiburkan orang ramai dari semua peringkat umur sejak tahun 1950-an.

Tetapi bagaimana jika saya memberitahu anda bahawa permainan mudah ini juga boleh menjadi pintu masuk anda ke dunia pengaturcaraan Python yang menarik?

Apa itu Mad Libs?

Building an Interactive Mad Libs Game in Python: A Beginner

Mad Libs, pada terasnya, ialah permainan bercerita yang mengisi tempat kosong. Pemain digesa untuk memberikan perkataan jenis tertentu (kata nama, kata kerja, kata adjektif, dll.) tanpa mengetahui konteks cerita.

Building an Interactive Mad Libs Game in Python: A Beginner

Ketahui tentang gelung di sini: Gelung Python: Panduan Komprehensif untuk Pemula

Kata-kata ini kemudiannya dimasukkan ke dalam naratif pratulis, selalunya menghasilkan kisah komedi dan mengarut yang mencetuskan ketawa dan kreativiti.

Tetapi Mad Libs lebih daripada sekadar sumber hiburan. Apabila diterjemahkan ke dalam projek pengaturcaraan, ia menjadi alat pengajaran yang berkuasa, menawarkan pengkod yang bercita-cita tinggi cara yang menyeronokkan dan menarik untuk mempelajari konsep pengaturcaraan asas.

Sediakan Persekitaran Python Anda

Untuk bermula, pastikan anda memasang Python pada komputer anda. Anda boleh memuat turunnya dari laman web rasmi Python. Untuk projek ini, kami akan menggunakan Python 3.12.7.

Setelah Python dipasang, buka editor teks kegemaran anda atau Persekitaran Pembangunan Bersepadu (IDE). Pilihan popular untuk pemula termasuk IDLE (yang disertakan dengan Python), Visual Studio Code atau PyCharm.

Untuk projek ini, saya akan menggunakan Pycharm.

Membina Permainan Mad Libs: Langkah demi Langkah

Mari pecahkan permainan Mad Libs kami kepada langkah yang boleh diurus. Kami akan mulakan dengan versi asas dan secara beransur-ansur menambah lebih banyak ciri untuk menjadikannya lebih interaktif dan menarik.

Anda boleh mendapatkan kod lengkap di sini.

Untuk menjalankan permainan ini, anda perlu memasang beberapa kebergantungan dan salah satunya ialah perpustakaan colorama. Anda boleh melakukan ini dengan menjalankan:

pip install colorama
Salin selepas log masuk

Import beberapa perpustakaan yang kami perlukan untuk projek ini termasuk, ramdom, os colorama


    import random
    import os
    from colorama import init, Fore, Style


Salin selepas log masuk

Seterusnya kami akan menggunakan init() yang membolehkan kami menggunakan output berwarna untuk mempertingkat antara muka pengguna, seperti memaparkan mesej alu-aluan dalam cyan, ralat dalam warna merah dan cerita yang telah siap dalam warna putih dengan gaya yang terang.

  • Membuat Templat Cerita

Pertama, kami akan menentukan templat cerita kami. Ini akan menjadi rentetan dengan ruang letak untuk perkataan yang kami mahu pemain diisi. Berikut ialah contoh:


    story_template = """
    Once upon a time, in a {adjective} {noun}, there lived a {adjective} {noun}.
    Every day, they would {verb} to the {noun} and {verb} with their {adjective} {noun}.
    One day, something {adjective} happened! They found a {adjective} {noun} that could {verb}!
    From that day on, their life became even more {adjective} and full of {noun}.
    """


Salin selepas log masuk
  • Mengumpul Jenis Perkataan

Seterusnya, kami akan membuat senarai jenis perkataan yang kami perlukan untuk cerita kami:


    word_types = ["adjective", "noun", "adjective", "noun", "verb", "noun", "verb", "adjective", "noun", "adjective", "adjective", "noun", "verb", "adjective", "noun"]


Salin selepas log masuk
  • Meminta Pemain untuk Kata-kata

Sekarang, mari buat fungsi untuk menggesa pemain untuk perkataan:


    def get_word(word_type):
        return input(f"Enter a(n) {word_type}: ")

    def collect_words(word_types):
        return [get_word(word_type) for word_type in word_types]


Salin selepas log masuk
  • Pengisian Cerita

Dengan perkataan yang dikumpul, kami boleh mengisi templat cerita kami:


    def fill_story(template, words):
        for word in words:
            template = template.replace("{" + word_types[words.index(word)] + "}", word, 1)
        return template


Salin selepas log masuk
  • Menyatukan Semuanya

Mari kita cipta fungsi utama untuk menjalankan permainan kami:


    def play_mad_libs():
        print("Welcome to Mad Libs!")
        print("I'll ask you for some words to fill in the blanks of our story.")

        words = collect_words(word_types)
        completed_story = fill_story(story_template, words)

        print("\nHere's your Mad Libs story:\n")
        print(completed_story)

    if __name__ == "__main__":
        play_mad_libs()


Salin selepas log masuk

Kini kami mempunyai versi kerja asas permainan Mad Libs kami! Tetapi kita tidak berhenti di sini. Kami boleh menjadikannya lebih menarik dan mesra pengguna.

Mempertingkatkan Permainan

Menambah Templat Berbilang Cerita
Untuk memastikan permainan itu menarik, mari tambahkan berbilang templat cerita:


    import random

    story_templates = [
        # ... (add your original story template here)
        """
        In a {adjective} galaxy far, far away, a {adjective} {noun} embarked on a {adjective} quest.
        Armed with a {adjective} {noun}, they set out to {verb} the evil {noun} and save the {noun}.
        Along the way, they encountered a {adjective} {noun} who taught them to {verb} with great skill.
        In the end, they emerged {adjective} and ready to face any {noun} that came their way.
        """,
        # ... (add more story templates as desired)
    ]

    def choose_random_template():
        return random.choice(story_templates)


Salin selepas log masuk

Melaksanakan Ciri Main Lagi
Mari tambahkan pilihan untuk pemain bermain berbilang pusingan:


    def play_again():
        return input("Would you like to play again? (yes/no): ").lower().startswith('y')

    def mad_libs_game():
        while True:
            template = choose_random_template()
            word_types = extract_word_types(template)
            play_mad_libs(template, word_types)
            if not play_again():
                print("Thanks for playing Mad Libs!")
                break

    def extract_word_types(template):
        return [word.split('}')[0] for word in template.split('{')[1:]]


Salin selepas log masuk

Menambah Pengendalian Ralat
Untuk menjadikan permainan kami lebih mantap, mari tambahkan beberapa pengendalian ralat:


    def get_word(word_type):
        while True:
            word = input(f"Enter a(n) {word_type}: ").strip()
            if word:
                return word
            print("Oops! You didn't enter anything. Please try again.")


Salin selepas log masuk

Meningkatkan Pengalaman Pengguna
Mari tambahkan sedikit warna dan pemformatan untuk menjadikan permainan kami lebih menarik secara visual:


    from colorama import init, Fore, Style

    init()  # Initialize colorama

    def print_colored(text, color=Fore.WHITE, style=Style.NORMAL):
        print(f"{style}{color}{text}{Style.RESET_ALL}")

    def play_mad_libs(template, word_types):
        print_colored("Welcome to Mad Libs!", Fore.CYAN, Style.BRIGHT)
        print_colored("I'll ask you for some words to fill in the blanks of our story.", Fore.YELLOW)

        words = collect_words(word_types)
        completed_story = fill_story(template, words)

        print_colored("\nHere's your Mad Libs story:\n", Fore.GREEN, Style.BRIGHT)
        print_colored(completed_story, Fore.WHITE, Style.BRIGHT)

**Saving Stories**
Let's give players the option to save their stories:


    import os

    def save_story(story):
        if not os.path.exists("mad_libs_stories"):
            os.makedirs("mad_libs_stories")

        filename = f"mad_libs_stories/story_{len(os.listdir('mad_libs_stories')) + 1}.txt"
        with open(filename, "w") as file:
            file.write(story)

        print_colored(f"Your story has been saved as {filename}", Fore.GREEN)

    def play_mad_libs(template, word_types):
        # ... (previous code)

        if input("Would you like to save this story? (yes/no): ").lower().startswith('y'):
            save_story(completed_story)



Salin selepas log masuk

Jalankan Kod

Pertama, pastikan anda telah memasang Python pada sistem anda. Anda boleh menyemak ini dengan membuka terminal dan menaip.

python --version
Salin selepas log masuk

atau

python3 --version
Salin selepas log masuk

Ini sepatutnya mengembalikan versi Python yang dipasang pada sistem anda.
Jika Python dipasang, anda harus menjalankan skrip menggunakan penterjemah Python. Daripada berlari.

./first_test.py
Salin selepas log masuk

Anda harus berlari:

python first_test.py
Salin selepas log masuk

atau jika anda menggunakan Python 3 secara khusus:

python3 first_test.py
Salin selepas log masuk

Selain itu, pastikan bahawa fail mempunyai kebenaran yang betul untuk dilaksanakan. Anda boleh menetapkan ini dengan:

chmod +x first_test.py<br>
Salin selepas log masuk




Kesimpulan

Tahniah! Anda kini telah mencipta permainan Mad Libs yang interaktif, berwarna-warni dan kaya dengan ciri dalam Python. Projek ini telah memperkenalkan anda kepada beberapa konsep pengaturcaraan penting:

  1. Manipulasi rentetan
  2. Input dan output pengguna
  3. Fungsi dan pengaturcaraan modular
  4. Senarai dan senaraikan pemahaman
  5. Operasi I/O Fail
  6. Ralat pengendalian
  7. Perpustakaan pihak ketiga (colorama)
  8. Pilihan rawak
  9. While loops and control flow

Dengan membina permainan ini, anda bukan sahaja mencipta sesuatu yang menyeronokkan tetapi juga meletakkan asas yang kukuh untuk projek Python yang lebih maju. Ingat, kunci untuk menjadi seorang pengaturcara yang mahir adalah latihan dan percubaan. Jangan takut untuk mengubah suai permainan ini, menambah ciri baharu atau menggunakan konsep ini untuk mencipta projek baharu sepenuhnya!

Sambil anda meneruskan perjalanan Python anda, pertimbangkan untuk meneroka topik yang lebih lanjutan seperti pengaturcaraan berorientasikan objek, antara muka pengguna grafik (GUI) atau pembangunan web dengan rangka kerja seperti Django atau Flask.

Kemahiran yang anda pelajari di sini akan menjadi batu loncatan yang sangat baik untuk bidang pembangunan perisian yang lebih kompleks ini.

Selamat pengekodan, dan semoga pengembaraan Mad Libs anda dipenuhi dengan ketawa dan pembelajaran!

Sumber

  • Bermula dengan Folium
  • 20 Sambungan Python Penting untuk Kod Visual Studio
  • Menggunakan Python untuk Pengikisan Web dan Pengekstrakan Data
  • Bermula dengan Python
  • Mencipta Peta Interaktif dengan Folium dan Python

Atas ialah kandungan terperinci Membina Permainan Mad Libs Interaktif dalam Python: Panduan Pemula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan