Ответы:
Моногамия не для всех.
На основании моего ответа « Выполнить печать назад» .
#define def main(){0?
#define print printf(
#define return 0)));}
def main():
print "Python",
print ", I love you much more than ",
print "C",
return
main();
Вывод при запуске как C:
C, I love you much more than Python
Вывод при запуске как Python:
Python , I love you much more than C
Красивая версия:
r=/c/g ,n='\n'
,m=/.\d+/g,[, ,'ca','8b',5,
'a10b',6,'ca3b', 13,'a4b',1,3,'c'
,'a1b',16,'a2b1',5,'cb35cb',35,'ca',
,'1b7 JS b',22,'ca2b',31,'ca3b',29,
,'ca',5,'b',25,'ca7b',2,1,'ca',9,
,'b','17ca',11,'b13ca',14,'b',
'7c','a1',7,'b1c'].join('').
replace(m, c=>(c[0]!='a'?
'\u2665':' ').repeat
(+c.substr(1))).
replace(r,
n);
Консольный вывод:
♥♥♥♥♥ ♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥ JS ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥
♥
Аннотированная версия:
[
// Contains the instruction to draw the heart.
// * `a` is a space
// * `b` is a heart
// * `c` is a line break
//
// `a` and `b` instructions are followed by an integer
// telling how many times the character should be printed.
//
// Abuse JS arrays to split the string in smaller parts.
,,'ca','8b',5,'a10b',6,'ca3b',13,'4b13ca1b16a2b1cb35cb35ca1b7'
// This is the text we want to display.
,' JS '
// Other instructions to draw the heart.
// This part isn't splitted for readability purpose.
,'bca2bca3b29ca5b25ca7b21ca9b17ca11b13ca14b7ca17b1c'
]
// Join every substring.
.join('')
// Process instructions.
.replace(
// Match all `a` and `b` instructions.
/.\d+/g,
c => (
// Fetch the right character.
c[0] != 'a'
? '\u2665' // `b` Heart
: ' ' // `a` Space
)
// Repeat the character.
.repeat(
// Extract the number from the instruction.
+c.substr(1)
)
)
// Replace `c` by a line break.
.replace(/c/g,'\n');
public static final int px = 25;
public static final int rectRad = 3;
PFont font;
public boolean[][] used;
public int[] heart = {
65, 66, 67, 72, 73, 74,
84, 85, 86, 87, 88, 91, 92, 93, 94, 95,
103,104,105,106,107,108,109,110,111,112,113,114,115,116,
122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,
142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,
162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,
183,184,185,186,187,188,189,190,191,192,193,194,195,196,
204,205,206,207,208,209,210,211,212,213,214,215,
224,225,226,227,228,229,230,231,232,233,234,235,
245,246,247,248,249,250,251,252,253,254,
266,267,268,269,270,271,272,273,
287,288,289,290,291,292,
308,309,310,311,
329,330
};
void setup() {
size(500, 500);
background(255);
stroke(127+64);
strokeWeight(1.75);
//font=loadFont("Font1.vlw");
font=createFont("Purisa",28);
textFont(font,28);
frameRate(50);
used = new boolean[width/px][height/px]; // initialised to false by default
}
void draw() {
int i, j;
int drawingframes = width * height / px / px;
int textframesdelay = (int)(500 * frameRate / 1000);
do {
i=(int)random(0, width / px);
j=(int)random(0, height / px);
} while(used[i][j] && frameCount <= drawingframes);
used[i][j] = true;
if(frameCount > drawingframes + textframesdelay) {
noLoop();
return;
} else if(frameCount == drawingframes + textframesdelay) {
fill(63 + 32);
text("Dear Processing,", 10, 50);
text("Happy Valentine's Day!", 80, 200);
text("Love,\nAce", 10, 430);
return;
} else if(frameCount > drawingframes) {
return; // effectively creating a small delay after drawing the tiles
// and before writing the text
}
int R = (int)random(64, 255 - 64);
int G = (int)random(128, 255);
int B = (int)random(128, 255);
int alpha = (int)random(55, 85);
int hash = j * width / px + i;
if(java.util.Arrays.binarySearch(heart,hash)>=0) {
//if(heart.indexOf(hash) >= 0) {
R = (int)random(128 + 64, 255);
G = (int)random(0, 63);
B = (int)random(0, 63);
alpha = (int)random(70, 100);
}
fill(R, G, B, alpha);
rect(i * px, j * px, px, px, rectRad, rectRad, rectRad, rectRad);
}
Смотрите это запустить онлайн здесь .
Скриншот одного из возможных выходных данных:
Зачем слишком усложнять, когда вы можете сделать простейшую вещь, которая работает?
Программа:
I ♥ PHP!
Выход:
I ♥ PHP!
BASH
Что может быть лучше, чем использовать SSH для вашей машины жены / мужа, а затем позволить ее сетевой карте сделать забавную часть кода Морзе «Happy Valentines Day» для вашего любимого языка сценариев. Я уверен, что вы почти все начали с BASH? И как мы, гики, все знаем - вы всегда должны следить за сетевой картой вашей машины;)
#!/bin/bash
#.... .- .--. .--. -.-- ...- .- .-.. . -. - .. -. . ... -.. .- -.--
#1111 12 1221 1221 2122 1112 12 1211 1 21 2 11 21 1 111 211 12 2122
while IFS= read -r -n1 char
do
ethtool eth0 p$char
done < morse
Конечно, «азбука Морзе» содержит код Морзе, «переведенный» в числа:
111131231221312213212231112312312113132132311321313111321131232122
«1» - это короткий, «2» - это длинный, а «3» - это пробел. Очевидно, что обязательный 'ethtool' должен быть установлен. Если нет, то сделайте так.
Mathematica
ContourPlot3D[(2 x^2 + y^2 + z^2 - 1)^3 - (1/10) x^2 z^3 - y^2 z^3 ==
0, {x, -1.5, 1.5}, {y, -1.5, 1.5}, {z, -1.5, 1.5}, Mesh -> None,
ContourStyle -> Opacity[0.8, Red]]
Это поверхность сердца Таубина . Да, я понимаю, что вызов требует искусства ASCII. Однако, если вы собираетесь понизить это, не делайте этого, потому что это слишком красиво, делайте это, потому что я украл код с /math/12098/drawing-heart-in-mathematica
Просто ради интереса, количество персонажей 865 .
'=~~~~:''=<<'+~>,'+~~~>,':'''=<'+~>,<',<'+~>-~>:''''=<'+~>,<<',~~>+~>+~~:'''''=',',~~:''''''=',<<'+~>,<'+~~>+~>:'''''''=',~~+~~:
@''''':@''':@''':@''':@''':@''''':@''''':@''''':@''':@''':@''':@''':@''''''':
@'''':@''''':@''''':@''''':@''''':@'':@''''':@'''':@''''':@''''':@''''':@''''':@'':@''''''':
@'''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@'''''':@''''''':
@'':@''''':@|I|:@''''':@|<|:@|3|:@''''':@|~|:@|-|:@|~|:@|!|:@''''':@'''':@''''''':
@''''':@'':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@'''':@''''''':
@''''':@''''':@'':@''''':@''''':@''''':@''''':@''''':@''''':@''''':@'''':@''''''':
@''''':@''''':@''''':@'':@''''':@''''':@''''':@''''':@''''':@'''':@''''''':
@''''':@''''':@''''':@''''':@'':@''''':@''''':@''''':@'''':@''''''':
@''''':@''''':@''''':@''''':@''''':@'':@''''':@'''':@''''''':
Выход:
____ ____
/ \ / \
| |
\ I <3 ~-~! /
\ /
\ /
\ /
\ /
\ /
Помните, когда у людей не было компьютеров для валентинок и они должны были выгравировать свою любовную жизнь на деревьях? Это то, что я делаю:
def valentine(person1,person2):
leading_whitespace = range(0,4)[::-1] +[0]+range(0,8)
inside = [3,5,14,14]+range(0,15)[::-1][::2]
layers = [" ___ ___",r" / \ / \ ",r'/ \/ \ ','| |']
for i in range(5,12):
layers.append(' ' * leading_whitespace[i] + '\\' + ' ' * inside[i] + '/')
#inserts person1 into layers[4]
temp = []
for char in layers[3]: temp.append(char)
temp[1:len(person1)+1] = person1
layers[3] = ''.join(temp)
temp = []
layers[4] = '| + |'
# do that again for person2
for char in layers[5]: temp.append(char)
temp[-len(person2)-1:-1] = person2
layers[5] = ''.join(temp)
print '\n'.join(layers)
valentine('Me','Python')
Примечание: первые значения inside
переменной жестко запрограммированы. Выход:
___ ___
/ \ / \
/ \/ \
|Me |
| + |
\ Python/
\ /
\ /
\ /
\ /
\/