Magik Says Happy Valentines by Drawing a Heart to Console
- 时间:2020-10-12 15:39:01
- 分类:网络文摘
- 阅读:150 次
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.

Drawing a Heart to Console in Magik Programming
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) —
推荐阅读:Want More Followers? Try Facebook Notes Backing Up Your Data 101 How to Remove Duplicate Elements from Vector in C++ using std::u Javascript’s HashSet Implementation using Hash Map Using the OpenSSL command to Test the SSL Certificate Algorithm to Shuffle String in Python3 According to Index Depth First Search Algorithm to Find the Strobogrammatic Number Depth First Search Algorithm to Compute the Diameter of N-Ary Tr Remove the Temporary Files (including Windows.old) on Windows 10 Simulation Algorithm to Compute the Number of Water Bottles
- 评论列表
-
- 添加评论