Mari kita lakukan latihan bersama, ya? Cukup ikuti gerakan stickman. Stickman apa yang kamu minta? Yang akan kita buat!
Buat program yang memungkinkan input string hanya berisi bilangan bulat, dan output sembilan stick-angka berikut dengan interval di antaranya:
@ \@/ |@_ _@| @/ \@ |@| \@\ /@/
/|\ | | | | | | | |
/ \ / \ / \ / \ /|\ /|\ / \ / \ / \
1 2 3 4 5 6 7 8 9
Ini akan menghasilkan animasi, yang kemudian dapat kita ikuti bersama irl.
Berikut adalah contoh dari output yang dibuat ketika inputnya " 123245762
":
Beberapa peraturan:
- Ini ditandai dengan kode-golf , sehingga kode terpendek dalam byte akan menang
- Input
string
hanya berisi[1-9]
dengan panjang yang berpotensi bervariasi dari 2 hingga 100 karakter ** - Animasi harus berupa loop tanpa akhir
- Waktu interval harus 750 ms
- Tidak ada bilangan bulat berdekatan yang digandakan diizinkan dalam input - ini juga termasuk bilangan bulat input pertama dan terakhir (lihat kasus uji ketujuh dan delapan) **
** Bagaimana gagal jika input yang tidak valid sepenuhnya terserah Anda, tetapi harus jelas bahwa itu gagal . Itu bisa melempar pengecualian; cukup kembali di awal; reboot PC Anda; hapus kode sumber / kompilasi sendiri; meretas ke dalam militer dan menembakkan roket ke lokasi GPS kompilasi. Panggilanmu. EDIT: Tidak diperbolehkan hanya menampilkan animasi (benar / setengah) sebagai input yang gagal. Harus jelas bahwa ada yang salah dengan input untuk testcas gagal di bawah ini. Terima kasih kepada @ user81655 untuk membawa ini menjadi perhatian saya, karenanya edit.
Subrules:
- Silakan memposting gif untuk salah satu (tanpa gagal) test case di bawah ini dalam jawaban Anda, yang dapat Anda buat dengan sangat mudah dengan program berikut: screentogif.codeplex.com (Program pembuatan gif lain juga diperbolehkan tentunya.)
- Poin bonus jika Anda benar-benar melakukan latihan bersama irl animasi ketika sudah selesai. ;)
Testis yang benar:
123245762
65
121234346565879879132418791576
Testis yang gagal:
2
// Terlalu sedikit karakter7282918274959292747383785189478174826894958127476192947512897571298593912374857471978269591928974518735891891723878
// Terlalu banyak karakter1232405762
// Mengandung masukan tidak valid (yang0
)112212
// Gagal karena11
dan22
sekarang1232457621
// Gagal karena memulai dan memimpin1
Jawaban:
Pyth, 114 byte
Coba di sini
(Tidak ada jeda, tidak terbatas)
sumber
0
.) Apapun, terima kasih untuk entri. Pasti salah satu snipet kode yang paling tidak dapat dibaca untuk entri ini adalah dugaan saya. :)SpecBAS - 387 byte
Terus mengulang sampai Anda menekan ESC. Kegagalan untuk berolahraga dengan benar (input salah - dalam contoh ini a 0 sebagai salah satu langkah) menyebabkan kegemukan. GIF loop, dalam program itu hanya berhenti pada titik itu.
#13
adalah SpecBAS yang setara dengan\n
dan memungkinkan Anda menyertakan umpan baris dalam string.sumber
JavaScript (ES6), 165 byte
sumber
JavaScript (ES6), 210 byte
sumber
0
dan duplikat?How it fails in case of invalid input is completely up to you
. Saya hanya menangani input yang tidak valid dengan menampilkan animasi. : P Tidak ada jawaban lain yang ada yang memeriksa ini, namun jawaban OP baru saja diposting, jadi mungkin dia ingin kami menangani input yang tidak valid.Mathematica, 252 byte
Akan lebih baik jika seseorang dapat membuat GIF. Jalankan di notebook.
sumber
Python3, 338 byte
sumber
Java 8,
663636634631596355354 byteHanya untuk lol saya mencoba membuat program di Jawa.
Memang saya cukup buruk dalam golf dan regex, jadi kemungkinan besar bisa golf (banyak?) Lebih. Namun demikian, ini dia di Java 7.Sekarang hampir dua tahun kemudian dan saya hampir membagi dua kode di Java 8. Mengapa saya pernah membuat aturan tentang memvalidasi input dan memerlukan program penuh, meskipun ...>.> Saya benci diri masa laluku sekarang ..
Penjelasan:
Cobalah online. (Setelah batas waktu setelah 60 detik.)
Gif:
(Catatan: Gif lama, karena jelas jdk1.8 + sekarang.)
sumber
Java 7
untuk merujuk ke versi Java ini karena1.7
dapat membingungkan sebagian orang untuk berpikir bahwa itu adalahJava 1
revisi7
p(new String[]{" @ ",y,"|@_", ... }[c-49]);if(c==49){p(x);l();}else if(c==53){w();p(x);}else d();
. Saya juga berpikir bahwa mendefinisikanl
danw
membuang karakter, sekarang mereka hanya digunakan dua kali. Pertimbangkan untuk membiarkans
menjadichar[] s=a[0].toCharArray()
; semua operasi lain dengan itu jauh lebih pendek, kalau begitu.