Hey, it is happy valentines today! And I think it would be nice to please my wife with something special. I am learning Magik – which is a OO programming language developed by GE Smallworld, and the following seems a good learning/coding exercise.
Draw a Heart Shape to Console using Magik
Drawing heart is a fun exercise.
# Drawing a heart to the console # Happy Valentine's Day 2019 _package sw $ _block _local c << 178.as_character() # heart symbol _local s << "" # Magik does not have a write without printing new lines # Therefore, we concatenate output strings _local concat << _proc(str, char) >> str + char _endproc # 5 blank lines _for i _over range(1, 5) _loop s << concat(s, %newline) _endloop _for i _over range(1, 3) _loop _for j _over range(1, 32 - 2 * i) _loop s << concat(s, %space) _endloop _for k _over range(1, 4 * i + 1) _loop s << concat(s, c) _endloop _for l _over range(1, 13 - 4 * i) _loop s << concat(s, %space) _endloop _for m _over range(1, 4 * i + 1) _loop s << concat(s, c) _endloop s << concat(s, %newline) _endloop _for i _over range(1, 3) _loop _for j _over range(1, 24 + 1) _loop s << concat(s, %space) _endloop _for k _over range(1, 29) _loop s << concat(s, c) _endloop s << concat(s, %newline) _endloop _for i _over range(7, 1, -1) _loop _for j _over range(1, 40 - 2 * i) _loop s << concat(s, %space) _endloop _for k _over range(1, 4 * i - 1) _loop s << concat(s, c) _endloop s << concat(s, %newline) _endloop _for i _over range(1, 39) _loop s << concat(s, %space) _endloop # the last tiny bit s << concat(s, c) # 5 blank lines _for i _over range(1, 5) _loop s << concat(s, %newline) _endloop write(s) _endblock
Magik does not provide a write without adding %newline – therefore we concatenate the output string and print it all once to the console.
–EOF (The Ultimate Computing & Technology Blog) —
GD Star Rating
loading...
445 wordsloading...
Last Post: Cloud-Ready Infrastructure Optimization
Next Post: How to Sum within A Range in a Binary Search Tree?