PERINGATAN: ini adalah masalah yang cukup kompleks, dalam gaya bertarung king-of-the-hill, dengan tambahan keacakan, kode terbaik mungkin tidak selalu menang. Baca semua aturan secara penuh, karena ini cukup rumit!
FLAVOR TEXT
Bill dan Steve memutuskan untuk melakukan duel "ramah", namun karena begitu kaya dan pandai, memutuskan untuk membiarkan programmer terbaik mereka mencoba membuat kode untuk saling mengalahkan. Anda dikatakan programmer.
OBJECTIVE
Dalam pemagaran, tujuan Anda adalah untuk mencetak hit terbanyak pada lawan Anda, sementara paling tidak terkena sendiri
MOVES
Kode Anda akan memiliki pilihan "bergerak" berikut ini
Attack
Parry
Block
Lunge
AND
Head
Chest
Feet
SCORING POINTS
Attacking beats Parrying, untuk 1 point
Lunging beats Blocking, untuk 1 point
Parrying Beats Lunging, untuk 1 point
Blocking beats Attacking, untuk 1 point
Lunging ties Menyerang, dengan pemain lunging tidak dapat memblokir atau menangkis putaran berikutnya, dan pemain menyerang tidak dapat untuk menyerang atau menyerang babak selanjutnya.
Memblokir ikatan. Menangkis, dengan pemain menangkis tidak dapat memblokir atau menangkis putaran berikutnya, dan pemain memblokir tidak dapat menyerang atau menyerang babak berikutnya.
HEIGHT OF ACTION
Anda juga akan memilih "tinggi" untuk tindakan Anda, di mana hasil di atas hanya terjadi jika ketinggian kedua pemain cocok dengan tinggi serangan. jika ketinggian tidak cocok, kedua pemain mungkin tidak lagi memilih aksi yang sama (tinggi tidak dibatasi) seperti putaran ikatan sebelumnya, sampai satu poin dicetak, atau semua 4 aksi telah diisi (setelah dasi rusak, semua aksi tersedia lagi)
CODE REQUIREMENTS
untuk setiap putaran, ia harus mendorong pergerakan lawan dari babak sebelumnya (kecuali babak 1), bandingkan dengan miliknya sendiri, tentukan hasil dari putaran sebelumnya, kemudian hasilkan angka putaran berikutnya, skor, dan pilihan / posisi pilihannya. untuk putaran itu
mis:
INPUT: LC (lunge chest)
OUTPUT: babak sebelumnya: Skor PM vs LC - PM! skor sekarang 2-1, aksi untuk babak selanjutnya adalah AH (kepala serangan)
WINNER
permainan berakhir setelah 50 putaran, atau setelah 3 poin telah dicetak
AGAINST OTHER PLAYERS
jawaban pertama akan diberikan kemenangan dijamin instan, asalkan berfungsi untuk benar-benar bekerja / bermain. Setiap jawaban akan dievaluasi, dalam urutan posting, terhadap pemenang sebelumnya, dan jika menang, akan dinyatakan sebagai pemenang baru. Saya meminta itu ketika menang, atau menunggu untuk bersaing, bahwa Anda TIDAK mengubah kode Anda. Setelah dikalahkan, Anda mungkin tidak lagi bersaing untuk status kejuaraan dengan bahasa yang sama, namun Anda dapat mengirimkan jawaban bahasa yang berbeda (harus sangat berbeda, tidak menggunakan variasi dari hal-hal dasar yang sama).
Saya akan mencoba untuk menjalankan setiap tantangan dan akan memposting hasil dalam komentar dari juara dan penantang, serta menyatakan pemenang baru - karena saya mungkin tidak dapat menjalankan setiap bahasa, terutama beberapa yang lebih tidak jelas, saya bertanya segala kemungkinan bantuan yang dapat Anda berikan untuk memastikan jawaban Anda dijalankan dipertimbangkan. Terima kasih!
sumber
Jawaban:
Python
En garde!
Prajurit saya menggabungkan ketidakpastian dengan mata tajam untuk kelemahan dalam sikap lawannya. Dia cukup yakin dia akan mampu membuang musuh agresif tetapi pelatihnya (saya) mungkin gagal mengantisipasi skenario tertentu atau, mungkin lebih mengkhawatirkan, mungkin telah salah menafsirkan aturan (bug !!).
Pokoknya saya baru jadi mudah-mudahan ini adalah format kode ok:
sumber
Saya mengklaim bukit!
Ini termasuk kerangka kerja yang menangani kecocokan, input dan output. Yang harus Anda lakukan adalah menentukan versi Anda sendiri dari dua fungsi di header "AIh" yang menentukan langkah pertama dan setiap langkah lainnya.
Ini mengkompilasi dalam VS2012 (versi gratis). Sepengetahuan saya, ini akan dikompilasi dalam kompiler yang memenuhi standar.
Saya menyebut AI ini "Barbarian Tidak Canggih." Saya yakin tidak akan lama bagi seseorang untuk mengalahkannya.
sumber
UNITIALIZED
?!