Tantangan
Tulis program atau fungsi yang mencetak bintang! Program akan menerima dua parameter dengan input standar: Ukuran bintang dan jumlah titik bintang. Bintang dapat memiliki ukuran antara 0 dan 10 dan memiliki 3, 4 atau 5 poin. Parameter input dipisahkan oleh koma, misalnya: 5,3
berarti ukuran bintang 5 dengan 3 poin. Bintang-bintang disusun oleh tanda bintang*
Pertimbangkan program hanya akan menerima input yang valid.
Cetakan harus ditempatkan dengan benar agar kita dapat melihat bintang cantik di output!
Penjelasan parameter
Poin
Apakah jumlah senjata dihitung dari tanda bintang pusat?
Bintang 3 poin :
*
*
*
* *
* *
Mereka tersusun oleh lengan vertikal dan dua lengan diagonal. Pemisahan antara lengan diagonal adalah2*size-1
Bintang 4 poin
* *
* *
*
* *
* *
Mereka memiliki bentuk X dan disusun oleh dua garis diagonal. Pemisahan antara garis adalah2*(size-1)+1
5 poin bintang
*
*
* * * * *
* *
* *
Mereka disusun oleh garis vertikal dan garis horizontal. Setiap tanda bintang di garis horizontal dipisahkan oleh satu spasi. Mereka juga memiliki dua garis diagonal, dengan pemisahan di antara mereka sendiri2*(size-2)+1
Ukuran
Ukuran adalah jumlah tanda bintang yang memiliki setiap lengan bintang yang dihitung dari tanda bintang pusat (inklusif).
Ukuran 1 bintang disusun oleh tanda bintang tunggal
*
Contoh ukuran 2 bintang
3 poin
*
*
* *
Bintang 4 poin
* *
*
* *
5 poin bintang
*
* * *
* *
Anda memiliki contoh ukuran 3 bintang di penjelasan parameter Poin.
Kriteria menang
Kode terpendek menang. Kode harus diperiksa dengan parameter input berikut:3,2
3,3
4,2
4,3
5,2
5,3
Bonus
-25% karakter dihitung untuk membuat ukuran 6 menunjuk dengan kriteria yang dijelaskan sebelumnya (6 lengan dan ukurannya adalah jumlah tanda bintang yang dihitung dari tanda bintang pusat). Itu bisa berupa bentuk apa pun yang Anda inginkan sambil tetap menghormati spesifikasinya. Contoh bintang ukuran 6 dengan ukuran 3:
*
*
* * * * *
* * *
* * *
Bintang 6 poin harus diperiksa dengan input berikut 6,2
6,3
.
Jawaban:
Mathematica
80 7667 karakterBeberapa orang akan mempertanyakan apakah ini seni ASCII, tetapi saya tidak tahan.
Penggunaan (mengatur ukuran font pada 24 untuk membuat bintang-bintang tampak besar.)
Output untuk kasus-kasus berikut:
{{3, 2}, {3, 3}, {4, 2}, {4, 3},
{5, 2}, {5, 3}, {6, 2}, {6, 3},
{7, 4}, {8, 3}, {9, 2}, {12, 4}}
Bagaimana itu bekerja
(A) Bintang pertama adalah pada asal ruang koordinat. Mari kita tampilkan.
(B) Setelah itu, kami akan menampilkan titik di {1,0}.
(c) Kemudian 5 poin sekaligus. Kami menerapkan fungsi murni ke setiap pasangan koordinat yang mengikutinya.
(d) Gunakan Cos dan Sin untuk menentukan koordinat
(e) Koordinat hanya berfungsi pada lingkaran unit; 6 adalah jumlah balok cahaya.
(f) Gambarlah jari-jari dari 0 hingga 4 unit.
sumber
Ruby, ASCII,
193skor 142 (189 karakter - bonus 25%)Uji secara online
Saya pikir itu memenuhi syarat untuk bonus bintang 6-ray.
sumber
Mathematica ,
6564Pandangan saya tentang metode David:
Menggunakan:
Kesalahan dihasilkan karena penggunaan
=
bukan:=
, dan itu bukan cara yang tepat untuk membuat definisi, tetapi itu berfungsi di sini.Jika seseorang diizinkan menggunakan titik alih-alih tanda bintang, ini dapat ditulis (52 karakter):
sumber
sumber