Saya suka ikan sarden, saya tidak bisa mendapatkan cukup dari mereka, dan begitu pula komputer saya, Omnilang 5000, yang merupakan bahasa agnostik.
Untuk memberi komputer saya kegembiraan mengalami sarden, saya telah memutuskan untuk memberinya sejumlah program yang mampu ditampilkan di layar kaleng sarden dalam berbagai orientasi, dan menampilkan hingga sepuluh sarden.
Dalam tantangan ini, Anda akan bertanggung jawab untuk membuat program berdasarkan parameter ini:
Input
Nomor (antara 0 dan 10) dan surat dari salah satu "LR" berikut (masing-masing mewakili Kiri atau Kanan) Misalnya: 3L
atau 5R
; bagaimana input ini ke dalam program terserah Anda.
Keluaran
Sebuah kaleng sarden terbuka dengan sarden menghadap ke arah yang ditunjukkan, dengan kunci (diwakili oleh karakter " %
") dan tutup kupas (digulung timah di ujung diwakili oleh karakter " @
") yang terletak di bagian atas kaleng.
- Semua ikan sarden harus menghadap ke arah yang ditunjukkan oleh input.
- Semua ikan sarden memiliki panjang lima karakter di antara insang ("
)
" atau "(
") dan ekor "><
" - Gulungan tutup kunci dan kupas akan selalu menghadap ke arah yang berlawanan dengan sarden.
- Kaleng harus memiliki tampilan 3-D seperti ditunjukkan pada contoh di bawah ini.
- Tinggi minimum timah adalah 3 sarden. Jadi, jika angka kurang dari 3, kaleng 3 sarden tingginya harus ditampilkan, dengan jumlah sarden yang dimasukkan. Kalau tidak, timah haruslah jumlah ikan sarden tinggi yang ditunjukkan dalam input. Jadi masukan
0R
atau0L
akan menunjukkan kaleng sarden kosong. - Input lain apa pun yang tidak dapat divalidasi tidak akan menampilkan apa pun.
Misalnya, untuk " 3L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''
Untuk " 7R
"
__________
%@__________)
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
''=========='
Untuk " 2L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
| ||
'==========''
Untuk " 0R
"
__________
%@__________)
|| |
|| |
|| |
''=========='
" 0L
"
__________
(__________@%
| ||
| ||
| ||
'==========''
Input tidak valid tidak akan mengembalikan apa pun ...
- Ini adalah kode golf, sehingga jumlah karakter terkecil akan memenangkan tantangan ini.
- Tidak ada celah seperti biasa.
-v
bendera), dan arah ("L" atau "R") di bawah "beri masukan ke program "lalu klik" berikan ". (Saya sudah mengedit jawaban agar mudah-mudahan menjadi lebih jelas.)Emojicode ,
456448 byteMembawa 2 argumen: yang pertama adalah baris, yang kedua adalah arah (0 atau 1).
Cobalah online!
"Dapat dibaca" versi ungolfed dan versi pseudocode:
sumber
Python 2 , 155 byte
Cobalah online!
Input terdiri dari panjang 2 tuple. Elemen pertama menunjukkan jumlah ikan sarden. Elemen kedua menunjukkan arah;
0
untuk kiri,1
kanan.-84 byte menggunakan sihir lambda berkat notjagan dan officialaimm
sumber
0 to 10
. PS` -10` akan mencetak kaleng kosong, karena itu menandakan ada10
ikan sarden, tetapi Anda sudah memakannya. : DMemancing , 1311 byte
Mengambil input dari
stdin
dalam bentuk:Memancing tidak ada di Try It Online , tetapi ada juru bahasa di Ruby di halaman esolang yang ditautkan.
Ini adalah program pertama yang saya buat di Perikanan - sebenarnya, ini adalah program pertama yang saya buat dalam bahasa 2D - jadi mungkin bisa jauh lebih pendek. Tips golf dipersilahkan (meskipun saya tidak akan terkejut jika tidak ada yang memberi, mengingat bahwa saya tidak tahu apa yang baru saja saya tulis).
Berikut adalah GIF dari jalur yang diambil oleh program untuk mendapat masukan
1R
(maaf karena kualitas rendah):(Ini dibuat menggunakan juru bahasa yang saya buat; tidak ada program yang tersedia untuk umum yang "memvisualisasikan" Memancing, sejauh yang saya tahu)
sumber
Arang , 49 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Argumen pertama adalah jumlah ikan sarden, kedua adalah arah (0 = kiri, 1 = kanan).
sumber
SOGL V0.12 ,
5148 byteCoba Di Sini!
Diharapkan input sebagai yang pertama adalah hitungan dan yang kedua - kiri atau kanan diwakili oleh 1 atau 0.
Penjelasan:
sumber
R,
334 byte,311 byteFungsi mengambil nilai numerik untuk n dan string untuk arah.
Ini adalah posting pertama saya, jadi saya akui saya tidak yakin bagaimana cara menghitung byte kode.
sumber
C ++,
307296292 bytePenggunaan:
-11 byte disimpan berkat pengguna ThePirateBay -4 byte terima kasih kepada Zacharรฝ
sumber
#define
arahan? Saya tidak mengujinya tetapi tampaknya tidak perlu bagi mereka.c!=82
menjadic-82
dalam setiap kasus di mana Anda menggunakannya?Python 2 , 287 byte
Cobalah online!
Input adalah tupel angka yang dipisahkan koma dari format ini:
2, 1
. Angka pertama adalah jumlah ikan dan yang kedua adalah 0 untuk kiri dan 1 untuk kanan.Ini dimulai sebagai upaya untuk keluar-golf jawaban lain (saya benar-benar berpikir saya bisa), tetapi itu menyebalkan. : P Jika ada yang bisa membuat kepala dan ekor itu dan membantu golf itu (saya salahkan pada jam 12 pagi sekarang), saya akan senang.
sumber
C # (.NET Core), 289 byte
Cobalah online!
Mengambil integer dan char (L, R) sebagai parameter dan menghasilkan string yang dihasilkan.
Ugh. Harus berurusan dengan beberapa konstanta string yang mengganggu, sayangnya Anda tidak bisa melakukannya
string * length
di C #. Dan metode dengannew string(char, length)
tidak akan sebanding dengan biaya byte.Algoritma bekerja sebagai berikut:
h > i
, kita meletakkan sarden di dalamnya. Jikai >= h
, akan ada ruang kosong di mana sarden biasanya berada.sumber
Perl 5 , 167 + 1 (-n) = 168 byte
Cobalah online!
sumber
JavaScript (ES6),
283273269251 byteDisimpan 10 byte berkat @WallyWest
Disimpan 4 byte menghapus parens tambahan
Disimpan 18 byte berkat @ThePirateBay
Menderita kurangnya pembalikan string di perpustakaan standar. Menentukan fungsi yang mengambil input
n
untuk jumlah ikan dand
untuk arah. Melempar jikad
bukan "L" atau "R".Cobalah online
sumber
if...else if
terary yang bersarang dengan tugas yang merusak. Saya kehabisan ide ..._
fungsi dua kali, sekali untuk 10 garis bawah (yang digunakan dua kali), sekali untuk 10 tanda sama dengan, jadi dengan fungsi itu menghemat satu byte. Dan kecuali saya menggunakan string template yang salah, menggunakannya bukan rangkaian adalah 3 byte lebih .