Proyek mini Bagian 4: Rock-Paper-Scissors

Proyek Bagian 4 kedua adalah permainan klasik. Kamu mengetik rock, paper, atau scissors; komputer memilih secara acak; program memutuskan siapa yang menang. Program ini menggabungkan angka acak, if/elif/else, dan and/or — program pertamamu yang dimainkan melawan komputer.

Yang perlu dibangun

Sebuah program yang, ketika dijalankan:

  1. Meminta pemain mengetik rock, paper, atau scissors.
  2. Memilih gerakan komputer secara acak.
  3. Mencetak apa yang dipilih komputer.
  4. Mencetak hasilnya: seri, menang, kalah, atau catatan gerakan-tidak-valid.

Aturan menangnya adalah yang biasa:

  • rock mengalahkan scissors,
  • paper mengalahkan rock,
  • scissors mengalahkan paper.

Sesi tipikal:

Choose rock, paper, or scissors: rock
The computer chose scissors.
You win!

File

Versi starter dan yang sudah selesai ada di projects/rock-paper-scissors/:

  • starter.py — promptnya sudah ditulis, dengan komentar TODO untuk tiga langkahnya.
  • finished.py — versi yang berfungsi. Baca setelah kamu mencoba milikmu.

Jalankan dengan:

python projects/rock-paper-scissors/starter.py

Petunjuk

  • import random di bagian atas file. random.randint(1, 3) memberikan 1, 2, atau 3. Ubah menjadi kata dengan if/elif/else.
  • Periksa pilihan yang tidak valid terlebih dahulu: jika kata yang diketik bukan salah satu dari ketiganya, katakan demikian dan berhenti. player != "rock" and player != "paper" and player != "scissors" hanya bernilai benar ketika tidak ada yang cocok.
  • Pengujian menang adalah tiga kasus yang digabungkan dengan or, masing-masing merupakan and dari dua gerakan, seperti player == "rock" and computer == "scissors".

Yang belum bisa kamu gunakan

  • List (Bagian 5). Tiga cabang if menggantikan list pilihan.
  • Function buatanmu sendiri (Bagian 5). Seluruh game muat dalam satu skrip.
  • Loop, kecuali kamu menambahkan fitur main-lagi di bagian peregangan di bawah.

Tantangan yang lebih besar (opsional)

  • Main lagi. Bungkus game dalam loop while True: dan berhenti ketika pemain mengetik quit bukan gerakan.
  • Simpan skor. Lacak menang dan kalah dalam dua variable dan cetak rekapitulasi setelah setiap putaran.

Tidak ada yang diwajibkan untuk menyelesaikan proyek.

Selesai?

Ketika game menerima gerakanmu, memilih gerakannya sendiri, dan mengumumkan hasil yang benar untuk seri, menang, kalah, dan input tidak valid, kamu selesai. Lanjut ke Bab 21 — Function, awal Bagian 5.