Mirip dengan menghasilkan grid kapal penyapu ranjau , meskipun tantangannya adalah membuat jaringan kapal penyapu ranjau yang berfungsi. Ini akan menjadi kode yang lebih panjang dari biasanya (saya pikir) .
informasi lebih lanjut tentang kapal penyapu ranjau .
Minesweeper adalah gim logika yang ditemukan di sebagian besar OS. Tujuan dari permainan ini adalah untuk menentukan di mana tambang berada di kotak, diberi angka yang menunjukkan jumlah tambang di sekitar tempat itu.
Fitur yang diperlukan:
-Randomized mine generation
-8x8 field with 10 mines
-Mine and "unknown" flags
-Reveal nearby blank spaces when a blank space has been revealed.
-Input and output code: It must be playable. (Input and output code counts in the total)
Catatan tentang penilaian :
Anything that is needed to make the program work is counted.
If it can be deleted and not affect the program, get rid of it.
I will occasionally update the selected answer to shorter programs if needed.
Saya menemukan versi yang lebih spesifik dari masalah ini di kelas ilmu komputer: membuat versi yang berfungsi dengan jumlah garis terpendek dalam visual basic (saya mendapat 57 baris), dan saya pikir ini akan menjadi tantangan yang menarik untuk golf kode. Jika ada saran untuk meningkatkan pertanyaan, silakan komentar. Kode terpendek dalam byte menang.
sumber
Jawaban:
Python 2.7 (487C)
Pengalaman game lengkap:
Namun, langkah terakhir berbahaya.
sumber
-1 for...
dan1 if...
menghemat dua byte.Javascript, 978 byte (824 tanpa CSS)
http://jsbin.com/otayez/6/
Daftar periksa:
JS:
MiniJS 812 byte :
HTML 12 byte
CSS tidak diperlukan dari sudut pandang fungsionalitas, tetapi dari sudut pandang kegunaan:
Mini CSS 154 byte :
sumber
C,
568, 557,537contoh game:
kode:
sumber
for(x=64;x--;)...
bekerja untuk c?Mathematica
566 5481056Sunting : Ini adalah penulisan ulang yang lengkap. Saya menyerah mencoba untuk mendapatkan kode terpendek dan memutuskan untuk membangun fitur yang paling masuk akal.
r
menunjukkan jumlah baris dalam kisi.c
menunjukkan jumlah kolom dalam kisi.m
: jumlah tambang.Permainan ini dimainkan dengan mengklik mouse pada tombol. Jika pemain mengklik sebuah ranjau, sel menjadi hitam dan program mencetak "You Lose!"
Kotak centang "u" memungkinkan pemain untuk mengintip solusi lengkap kapan saja. Bendera, "?" dan "!" dapat ditempatkan di sel apa saja yang diinginkan.
Keadaan awal
Pada titik selanjutnya ...
sumber
Python (
502566)Daftar periksa:
Ini memiliki detektor menang juga.
Input diberikan saat game sedang berjalan, dengan
(f, x, y)
.(x, y)
adalah koordinat dari pemilihan kisi,f
apakah Anda ingin menandai atau tidak.(0, 0, 0)
akan terbuka(0, 0)
, dan(1, 2, 3)
akan menandai (2, 3). Penandaan bekerja dalam satu siklus: penandaan persegi dua kali memberikan tanda tanya.(angka) - jumlah ranjau
(spasi) - belum dijelajahi
. - 0 ranjau
! - flag
"- pertanyaan
Perlu ditingkatkan: fungsi R [dapatkan semua kotak di sekitar item p] (101 karakter), pencetakan (69 karakter), penandaan (72 karakter)
sumber
Dyalog APL, 113 byte
{⎕←1 0⍕c+○○h⋄10=+/,h:1⋄m⌷⍨i←⎕:0⋄∇{~⍵⌷h:0⋄(⍵⌷h)←0⋄0=⍵⌷c:∇¨(,⍳⍴m)∩⍵∘+¨,2-⍳3 3⋄0}i}h←=⍨c←{⍉3+/0,⍵,0}⍣2⊢m←8 8⍴10≥?⍨64
non-bersaing: tidak ada bendera "milikku" dan "tidak dikenal"
mencetak
*
untuk sel yang belum dibuka dan digit untuk dibuka (termasuk0
)berulang kali meminta pengguna untuk membuka koordinat 1 sel
pada akhirnya menghasilkan
0
kegagalan (tambang terbuka) atau1
sukses (hanya 10 yang belum dibuka)terlihat seperti ini:
...
sumber