Pada dasarnya, string adalah pengkodean run-length dari gambar: Karakter bergantian dalam string mengatakan berapa kali untuk menggambar spasi, dan berapa kali untuk menggambar tanda seru secara berurutan. Berikut ini adalah analisis dari berbagai elemen program ini:
String yang disandikan
31 karakter pertama dari string ini diabaikan. Selebihnya berisi instruksi untuk menggambar gambar. Karakter individu menentukan berapa banyak spasi atau tanda seru untuk menggambar secara berurutan.
Luar untuk loop
Loop ini melewati karakter dalam string. Setiap iterasi meningkatkan nilai b
satu, dan menetapkan karakter berikutnya dalam string a
.
Batin untuk loop
Loop ini menarik karakter individu, dan baris baru setiap kali mencapai akhir baris. Jumlah karakter yang diambil adalah a - 64
. Nilai c
dari 10 hingga 90, dan ulang ke 10 ketika akhir garis tercapai.
Itu putchar
Ini dapat ditulis ulang sebagai:
++c;
if (c==90) { //'Z' == 90
c = 10; //Note: 10 == '\n'
putchar('\n');
}
else {
if (b % 2 == 0)
putchar('!');
else
putchar(' ');
}
Ini menarik karakter yang sesuai, tergantung pada apakah b
genap atau ganjil, atau baris baru saat diperlukan.