Game Ghost dimainkan antara dua pemain yang bergantian mengucapkan huruf pada setiap belokan. Pada setiap titik, surat-surat sejauh ini harus memulai beberapa kata bahasa Inggris yang valid. Yang kalah adalah pemain untuk menyelesaikan satu kata penuh terlebih dahulu. Jadi, misalnya, jika surat-surat sejauh ini adalah EAGL, maka satu-satunya surat berikutnya yang valid untuk mengatakan adalah "E" dan pemain berikutnya akan kalah. (Meskipun ada kata-kata yang lebih panjang seperti "elang".)
Tantangan
Anda harus menulis program atau fungsi untuk menentukan, mengingat surat-surat sejauh ini, siapa yang akan menang dengan asumsi dua pemain sempurna. Input adalah string yang mewakili kondisi permainan saat ini, dan daftar string yang mewakili kamus kata-kata yang valid. Keluaran harus membedakan apakah pemain berikutnya yang akan menang atau kalah.
Detail
- Kode harus menangani kasus di mana keadaan saat ini kosong. Namun, Anda mungkin menganggap tidak ada kata dalam kamus yang kosong.
- Anda dapat mengasumsikan bahwa setiap string input hanya terdiri dari huruf ASCII huruf kecil, yaitu az.
- Anda dapat mengasumsikan keadaan saat ini dan semua kata dalam kamus masing-masing memiliki maksimal 80 karakter.
- Kamus dijamin tidak kosong (untuk menghindari kasus di mana tidak ada langkah pertama yang valid).
- Anda dapat menganggap "kondisi saat ini" akan valid: harus ada beberapa kata yang dimulai dengan kondisi saat ini; juga, kondisi saat ini tidak akan menjadi kata penuh, atau awalan dari kondisi saat ini tidak akan menjadi kata penuh.
- Kamus akan difilter sesuai dengan aturan "kata-kata bahasa Inggris" dianggap valid untuk permainan - jadi misalnya, untuk varian di mana kata-kata dari tiga atau lebih sedikit huruf belum mengakhiri permainan, kamus akan prefiltered untuk memasukkan hanya kata-kata dari empat huruf atau lebih.
- Anda dapat menganggap kamus akan didahului.
Contohnya
Misalkan kamus adalah:
abbot
eager
eagle
eaglet
earful
earring
Kemudian untuk kondisi saat ini, output harus sebagai berikut:
Current state Result
============= ======
loss
a win
eag win
eagl loss
ear win
earf win
earr loss
Demikian juga, untuk daftar kata di https://raw.githubusercontent.com/dschepler/ghost-word-list/master/wordlist.txt (dibuat menggunakan sistem Debian pcregrep '^[a-z]{4,80}$' /usr/share/dict/american-english
) berikut ini adalah sesi yang memungkinkan:
Current state Result
============= ======
win
h loss
ho win
hoa loss
hoar win
hoars loss
(Dan kemudian langkah selanjutnya melengkapi "serak".)
Mencetak gol
Ini adalah kode-golf : Program terpendek dalam byte untuk setiap bahasa pemrograman yang menang.