Order and Chaos adalah varian dari Tic-Tac-Toe yang dimainkan di papan 6x6. Apa yang membuat gim ini unik, adalah bahwa kedua pemain dapat menempatkan X atau O! Setiap belokan (dimulai dengan Pesanan), pemain menempatkan X atau O di kotak kosong mana pun.
Menang itu sederhana. Pesanan menang jika ada 5 X atau O (vertikal, horizontal, atau diagonal) berturut-turut di papan tulis. Chaos menang jika papan diisi dan tidak ada string 5 Xs atau Os di papan tulis. Pekerjaan Anda? Nah, karena ini adalah Puzzles Pemrograman dan Golf Code, Anda akan memprogram gim ini, dan membuatnya golf.
Aturan
- Anda harus menerima input sebagai
x y t
, di manax
dany
merupakan koordinat, dant
merupakan jenis ubin (X
atauO
). Koordinat mulai dengan0 0
di sudut kiri atas dan naik hingga5 5
(sudut kanan bawah). - Anda harus menerima
q
untuk keluar, dan mencetakINVALID
jika pengguna memasukkan koordinat, petak yang tidak valid, input apa pun dalam bentukx y t
, atau mencoba menempatkan petak di mana sudah ada. (Satu-satunya pengecualian adalahq
, karena ini keluar dari program.) - Jika Pesanan menang, Anda akan menampilkan
P1 WINS
. Jika Chaos menang, Anda akan keluarP2 WINS
. - Pesanan harus duluan.
- Ruang kosong diwakili oleh
.
. - Ubin adalah
X
danO
(huruf besar). Anda tidak harus menerima huruf kecil, tetapi huruf besar diperlukan. - Papan Anda hanya terdiri dari
.XO
. - Anda sebenarnya sedang mensimulasikan kedua pemain yang bermain, tidak diberi papan dan memeriksa siapa yang menang. Ia menerima gerakan sebagai input, lalu mencetak papan, menerima gerakan lain, dan seterusnya, hingga satu pemain menang.
Papan awal terlihat seperti ini:
......
......
......
......
......
......
Dan setelah input pemain pertama (Pesanan) 1 2 X
, akan terlihat seperti ini:
......
......
.X....
......
......
......
Demikian juga, ketika pemain berikutnya (Chaos) masuk 3 3 O
, akan terlihat seperti ini:
......
......
.X....
...O..
......
......
Dan ini berlanjut sampai satu pemain menang.
Seperti biasa, celah standar yang menghilangkan kesenangan dari segala hal dilarang.
Pemenangnya adalah kode dengan kode terpendek pada 15 Juni 00:00 UTC (sekitar satu bulan sejak tantangan ini diposting).
sumber
INVALID
. Saya sudah mengeditnya sekarang, terima kasih.Jawaban:
PHP, 316
Ini kiriman saya. Itu harus dieksekusi oleh php di baris perintah.
Perhatikan bahwa kode ini menghasilkan pemberitahuan karena beberapa pintasan yang saya buat. Beri tahu saya jika ini ok. Saya dapat memperbaikinya dengan menambahkan beberapa karakter lagi. Saya memeriksa halaman ini dan jawaban teratas mengatakan untuk berasumsi bahwa pelaporan kesalahan dimatikan jika tidak ada yang menyebutkannya.
Dan ini adalah versi kode yang tidak golf:
sumber
JavaScript, 360
Edit Game interaktif yang dimodifikasi, harus dijalankan bahkan di MSIE
Seperti yang diminta, permainan berbasis teks, input melalui popup, output di konsol (sehingga memiliki font monospace).
Keluar dari game dengan 'q' atau mengklik 'batal' saat diminta.
Tidak menggunakan fitur ES5, itu harus dijalankan pada browser moderat (di mana Anda dapat memiliki panel konsol JS)
Sekarang, beberapa versi Interaktif dan grafis yang lebih menyenangkan , jalankan cuplikan untuk bermain.
Tampilkan cuplikan kode
sumber
Java, 565 karakter D:
Ini mungkin golf kode terpanjang yang pernah ada. Saya benar-benar tidak pandai dalam hal ini.
sumber
Oktaf, 453
Implementasinya cukup mudah, satu-satunya "trik" nyata yang digunakan
format plus
untuk mengurus pencetakan. Ini adalah versi yang dikomentari:Karena persyaratan untuk memeriksa sintaks input dan validitas, kode ini digunakan
fread()
untuk membaca satu karakter pada satu waktu.Saya berhati-hati untuk mengeluarkan papan dan pesan dengan rapi. Jika beberapa output tambahan dapat diterima, saya bisa memotong beberapa byte. Misalnya, menggunakan pencetakan otomatis (tidak
disp(F)
), papan akan ditampilkan sebagaiJuga, saya menafsirkan bahwa setiap gerakan diberikan pada baris yang terpisah.
Interaksi sampel (
-q
saklar hanya untuk menekan header Octave):Langkah yang tidak valid menyebabkan program keluar (tidak yakin apakah itu dimaksudkan).
sumber
x y t
pada baris terpisah (dan tidak ada input lain)