Skip to main content
added 30 characters in body
Source Link
Wheat Wizard
  • 100k
  • 22
  • 282
  • 661

Klein 000, 133, 120, 119, 108111 bytes

.\"Happy Birthday, "\"ChartZ Belatedly"@Belatedly!"@
>."Happy Birthday, ChartZ Belatedly"@Belatedly!"@
"coinheringaahing"@"oinheringaahing!"@.>"caird "c"

Try it online!Try it online!

The idea of this follows the classic klein / approach. We have 3 programs and we use the alignment to select which one we run. All of our swaps move one character to a different line breaking the alignment and putting it into a different program.

The breakdown

If the character is one of the first two then we swap them

\."Happy Birthday, "\"ChartZ Belatedly"@Belatedly!"@
>."Happy Birthday, ChartZ Belatedly"@Belatedly!"@
"coinheringaahing"@"oinheringaahing!"@.>"caird "c"

Anything else on the first line we can put at the begining of the second line.

.\"Happy Birhday, "\"ChartZ Belatedly"@Belatedly!"@
t>."Happy Birthday, ChartZ Belatedly"@Belatedly!"@
"coinheringaahing"@"oinheringaahing!"@.>"caird "c"

For the first two characters of the second line we can swap them too.

.\"Happy Birthday, "\"ChartZ Belatedly"@Belatedly!"@
.>"Happy Birthday, ChartZ Belatedly"@Belatedly!"@
"coinheringaahing"@"oinheringaahing!"@.>"caird "c"

For the rest of the line we can insert it before the . in the third line

.\"Happy Birthday, "\"ChartZ Belatedly"@Belatedly!"@
>."Happy BirthdayBirhday, ChartZ Belatedly"Belatedly!"@
"coinheringaahing"@@"oinheringaahing!"@t.>"caird "c"

Any character on the third line can be inserted at the front of the second line.

.\"Happy Birthday, "\"ChartZ Belatedly"@Belatedly!"@
a>."Happy Birthday, ChartZ Belatedly"@Belatedly!"@
"coinheringahing"@"oinheringahing!"@.>"caird "c"

Finally we can do the newlines as follows:

.\"Happy Birthday, "\"ChartZ Belatedly"Belatedly!"
@>."Happy Birthday, ChartZ Belatedly"@Belatedly!"@
"coinheringaahing"@"oinheringaahing!"@.>"caird "c"
.\"Happy Birthday, "\"ChartZ Belatedly"@Belatedly!"@
>."Happy Birthday, ChartZ Belatedly"@"coinheringaahing"@Belatedly!"@"oinheringaahing!"@.>"caird c
"

Klein 000, 133, 120, 119, 108 bytes

.\"Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

Try it online!

The idea of this follows the classic klein / approach. We have 3 programs and we use the alignment to select which one we run. All of our swaps move one character to a different line breaking the alignment and putting it into a different program.

The breakdown

If the character is one of the first two then we swap them

\."Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

Anything else on the first line we can put at the begining of the second line.

.\"Happy Birhday, "\"ChartZ Belatedly"@
t>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

For the first two characters of the second line we can swap them too.

.\"Happy Birthday, "\"ChartZ Belatedly"@
.>"Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

For the rest of the line we can insert it before the . in the third line

.\"Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"
"coinheringaahing"@@.>"caird "

Any character on the third line can be inserted at the front of the second line.

.\"Happy Birthday, "\"ChartZ Belatedly"@
a>."Happy Birthday, ChartZ Belatedly"@
"coinheringahing"@.>"caird "

Finally we can do the newlines as follows:

.\"Happy Birthday, "\"ChartZ Belatedly"
@>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "
.\"Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@"coinheringaahing"@.>"caird 
"

Klein 000, 133, 120, 119, 111 bytes

.\"Happy Birthday, "\"ChartZ Belatedly!"@
>."Happy Birthday, ChartZ Belatedly!"@
"oinheringaahing!"@.>"caird c"

Try it online!

The idea of this follows the classic klein / approach. We have 3 programs and we use the alignment to select which one we run. All of our swaps move one character to a different line breaking the alignment and putting it into a different program.

The breakdown

If the character is one of the first two then we swap them

\."Happy Birthday, "\"ChartZ Belatedly!"@
>."Happy Birthday, ChartZ Belatedly!"@
"oinheringaahing!"@.>"caird c"

Anything else on the first line we can put at the begining of the second line.

.\"Happy Birhday, "\"ChartZ Belatedly!"@
t>."Happy Birthday, ChartZ Belatedly!"@
"oinheringaahing!"@.>"caird c"

For the first two characters of the second line we can swap them too.

.\"Happy Birthday, "\"ChartZ Belatedly!"@
.>"Happy Birthday, ChartZ Belatedly!"@
"oinheringaahing!"@.>"caird c"

For the rest of the line we can insert it before the . in the third line

.\"Happy Birthday, "\"ChartZ Belatedly!"@
>."Happy Birhday, ChartZ Belatedly!"@
"oinheringaahing!"@t.>"caird c"

Any character on the third line can be inserted at the front of the second line.

.\"Happy Birthday, "\"ChartZ Belatedly!"@
a>."Happy Birthday, ChartZ Belatedly!"@
"oinheringahing!"@.>"caird c"

Finally we can do the newlines as follows:

.\"Happy Birthday, "\"ChartZ Belatedly!"
@>."Happy Birthday, ChartZ Belatedly!"@
"oinheringaahing!"@.>"caird c"
.\"Happy Birthday, "\"ChartZ Belatedly!"@
>."Happy Birthday, ChartZ Belatedly!"@"oinheringaahing!"@.>"caird c
"
deleted 521 characters in body
Source Link
Wheat Wizard
  • 100k
  • 22
  • 282
  • 661

Klein 000, 133, 120, 119119, 108 bytes

.\"Happy Birthday, ChartZ"\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"Happy Birthday, caird>"caird coinheringaahing"@"

Try it online!Try it online!

The idea of this follows the classic klein / approach. We have 3 programs and we use the alignment to select which one we run. All of our swaps move one character to a different line breaking the alignment and putting it into a different program.

The breakdown

The real beauty of this solution is in how symmetric it is. Just reading through you should be able to notice this.

If the character is one of the first two then we swap them

\."Happy Birthday, ChartZ"\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"Happy Birthday, caird>"caird coinheringaahing"@"

For any other characterAnything else on the first line we move it tocan put at the frontbegining of the second line.

.\"Happy Birhday, ChartZ"\"ChartZ Belatedly"@
t>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"Happy Birthday, caird>"caird coinheringaahing"@"

If the character is one ofFor the first two oncharacters of the second line we can swap thosethem too.

.\"Happy Birthday, ChartZ"\"ChartZ Belatedly"@
.>"Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"Happy Birthday, caird>"caird coinheringaahing"@"

Any other character on the second line we move toFor the startrest of the third line.

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, Chart Belatedly"@
Z.>"Happy Birthday, caird coinheringaahing"@

The first two characters of we can insert it before the . in the third line can also be swapped

.\"Happy Birthday, ChartZ"\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@Belatedly"
>"coinheringaahing"@@."Happy Birthday, caird>"caird coinheringaahing"@"

Any character on the third line we can move tobe inserted at the front of the second line.

.\"Happy Birthday, ChartZ"\"ChartZ Belatedly"@
">a>."Happy Birthday, ChartZ Belatedly"@
"coinheringahing"@.>Happy Birthday, caird>"caird coinheringaahing"@"

LastlyFinally we have two newlines. The rules above actually have already given us a way to find these since the @s in lines 1 and 2 swap withcan do the newlines. as follows:

.\"Happy Birthday, ChartZ"\"ChartZ Belatedly"
@>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"Happy Birthday, caird>"caird coinheringaahing"@"

and

.\"Happy Birthday, ChartZ"\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"
@Belatedly"@"coinheringaahing"@.>"Happy Birthday, caird>"caird coinheringaahing"@
"

Klein 000, 133, 120, 119 bytes

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

Try it online!

The idea of this follows the classic klein / approach. We have 3 programs and we use the alignment to select which one we run. All of our swaps move one character to a different line breaking the alignment and putting it into a different program.

The breakdown

The real beauty of this solution is in how symmetric it is. Just reading through you should be able to notice this.

If the character is one of the first two then we swap them

\."Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

For any other character on the first line we move it to the front of the second line.

.\"Happy Birhday, ChartZ Belatedly"@
t>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

If the character is one of the first two on the second line we can swap those too.

.\"Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

Any other character on the second line we move to the start of the third line.

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, Chart Belatedly"@
Z.>"Happy Birthday, caird coinheringaahing"@

The first two characters of the third line can also be swapped

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, caird coinheringaahing"@

Any character on the third line we can move to the front of the second line

.\"Happy Birthday, ChartZ Belatedly"@
">."Happy Birthday, ChartZ Belatedly"@
.>Happy Birthday, caird coinheringaahing"@

Lastly we have two newlines. The rules above actually have already given us a way to find these since the @s in lines 1 and 2 swap with the newlines.

.\"Happy Birthday, ChartZ Belatedly"
@>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

and

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"
@.>"Happy Birthday, caird coinheringaahing"@

Klein 000, 133, 120, 119, 108 bytes

.\"Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

Try it online!

The idea of this follows the classic klein / approach. We have 3 programs and we use the alignment to select which one we run. All of our swaps move one character to a different line breaking the alignment and putting it into a different program.

The breakdown

If the character is one of the first two then we swap them

\."Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

Anything else on the first line we can put at the begining of the second line.

.\"Happy Birhday, "\"ChartZ Belatedly"@
t>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

For the first two characters of the second line we can swap them too.

.\"Happy Birthday, "\"ChartZ Belatedly"@
.>"Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "

For the rest of the line we can insert it before the . in the third line

.\"Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"
"coinheringaahing"@@.>"caird "

Any character on the third line can be inserted at the front of the second line.

.\"Happy Birthday, "\"ChartZ Belatedly"@
a>."Happy Birthday, ChartZ Belatedly"@
"coinheringahing"@.>"caird "

Finally we can do the newlines as follows:

.\"Happy Birthday, "\"ChartZ Belatedly"
@>."Happy Birthday, ChartZ Belatedly"@
"coinheringaahing"@.>"caird "
.\"Happy Birthday, "\"ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@"coinheringaahing"@.>"caird 
"
added 545 characters in body
Source Link
Wheat Wizard
  • 100k
  • 22
  • 282
  • 661

Klein 000, 133 120, 120, 119 bytes

<<@"yldetaleB ZtrahC"...../"\"Happy Birthday,yadhtriB yppaH"/
@"yldetaleBChartZ ZtrahCBelatedly"@
>."Happy Birthday,yadhtriB yppaH".........<ChartZ Belatedly"@
@"!gnihaagnirehnioc.>"Happy driac"<Birthday, caird coinheringaahing"@

Try it online!Try it online!

The real beauty of this solution is in how symmetric it is. Just reading through you should be able to notice this.

If the character is one of the first two then we swap them

\."Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

For any other character on the first line, other than the last character, we move it to the endfront of the third line (or really anywhere on the thirdsecond line should work).

<<@"yldetale ZtrahC"...../"\"Happy Birhday,yadhtriB yppaH"/
@"yldetaleBChartZ ZtrahCBelatedly"@
t>."Happy Birthday,yadhtriB yppaH".........<ChartZ Belatedly"@
@"!gnihaagnirehnioc.>"Happy driac"<BBirthday, caird coinheringaahing"@

If the character is one of the first newline just move it to the end oftwo on the programsecond line we can swap those too.

<<@"yldetaleB ZtrahC"...../"\"Happy Birthday,yadhtriB yppaH"/@"yldetaleBChartZ ZtrahCBelatedly"@
.>"Happy Birthday,yadhtriB yppaH".........<
@"!gnihaagnirehniocChartZ driac"<Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

If theAny other character ison the second newlineline we move it after the / atto the endstart of the firstthird line.

<<@"yldetaleB ZtrahC"...../"\"Happy Birthday,yadhtriB yppaH"
/
@"yldetaleBChartZ ZtrahCBelatedly"@
>."Happy Birthday,yadhtriB yppaH".....Chart Belatedly"@
Z.>"Happy Birthday, caird coinheringaahing"@

The first two characters of the third line can also be swapped

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
>.<@"!gnihaagnirehnioc"Happy driac"<Birthday, caird coinheringaahing"@

For any otherAny character not yet mentioned,on the third line we can put it between the < andmove to the @ onfront of the samesecond line

<</@"yldetaleB ZtrahC"...../"\"Happy Birthday,yadhtriB yppaH"
@"yldetaleBChartZ ZtrahCBelatedly"@
">."Happy Birthday,yadhtriB yppaH".........<ChartZ Belatedly"@
@"!gnihaagnirehnioc.>Happy driac"<Birthday, caird coinheringaahing"@

Lastly we have two newlines. The rules above actually have already given us a way to find these since the @s in lines 1 and 2 swap with the newlines.

<<Z@"yldetaleB ZtrahC"...../"\"Happy Birthday,yadhtriB yppaH"/
@"yldetaleBChartZ trahCBelatedly"
@>."Happy Birthday,yadhtriB yppaH".........<ChartZ Belatedly"@
@"!gnihaagnirehnioc.>"Happy driac"<Birthday, caird coinheringaahing"@

and

<<i@"yldetaleB ZtrahC.\"Happy Birthday,yadhtriB yppaH".....</
@"yldetaleBChartZ ZtrahCBelatedly"@
>."Happy Birthday,yadhtriB yppaH".......<
@"!gnihaagnrehniocChartZ driacBelatedly"
@.>"Happy Birthday,yadhtriB yppaH".<caird coinheringaahing"@

Klein 000, 133 120 bytes

<<@"yldetaleB ZtrahC"...../" ,yadhtriB yppaH"/
@"yldetaleB ZtrahC ,yadhtriB yppaH".........<
@"!gnihaagnirehnioc driac"<

Try it online!

If the character is any character on the first line, other than the last character, move it to the end of the third line (or really anywhere on the third line should work)

<<@"yldetale ZtrahC"...../" ,yadhtriB yppaH"/
@"yldetaleB ZtrahC ,yadhtriB yppaH".........<
@"!gnihaagnirehnioc driac"<B

If the character is the first newline just move it to the end of the program.

<<@"yldetaleB ZtrahC"...../" ,yadhtriB yppaH"/@"yldetaleB ZtrahC ,yadhtriB yppaH".........<
@"!gnihaagnirehnioc driac"<

If the character is the second newline move it after the / at the end of the first line.

<<@"yldetaleB ZtrahC"...../" ,yadhtriB yppaH"
/
@"yldetaleB ZtrahC ,yadhtriB yppaH".........<@"!gnihaagnirehnioc driac"<

For any other character not yet mentioned, we can put it between the < and the @ on the same line

<</@"yldetaleB ZtrahC"...../" ,yadhtriB yppaH"
@"yldetaleB ZtrahC ,yadhtriB yppaH".........<
@"!gnihaagnirehnioc driac"<
<<Z@"yldetaleB ZtrahC"...../" ,yadhtriB yppaH"/
@"yldetaleB trahC ,yadhtriB yppaH".........<
@"!gnihaagnirehnioc driac"<
<<i@"yldetaleB ZtrahC ,yadhtriB yppaH".....</
@"yldetaleB ZtrahC ,yadhtriB yppaH".......<
@"!gnihaagnrehnioc driac ,yadhtriB yppaH".<

Klein 000, 133, 120, 119 bytes

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

Try it online!

The real beauty of this solution is in how symmetric it is. Just reading through you should be able to notice this.

If the character is one of the first two then we swap them

\."Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

For any other character on the first line we move it to the front of the second line.

.\"Happy Birhday, ChartZ Belatedly"@
t>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

If the character is one of the first two on the second line we can swap those too.

.\"Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

Any other character on the second line we move to the start of the third line.

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, Chart Belatedly"@
Z.>"Happy Birthday, caird coinheringaahing"@

The first two characters of the third line can also be swapped

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, caird coinheringaahing"@

Any character on the third line we can move to the front of the second line

.\"Happy Birthday, ChartZ Belatedly"@
">."Happy Birthday, ChartZ Belatedly"@
.>Happy Birthday, caird coinheringaahing"@

Lastly we have two newlines. The rules above actually have already given us a way to find these since the @s in lines 1 and 2 swap with the newlines.

.\"Happy Birthday, ChartZ Belatedly"
@>."Happy Birthday, ChartZ Belatedly"@
.>"Happy Birthday, caird coinheringaahing"@

and

.\"Happy Birthday, ChartZ Belatedly"@
>."Happy Birthday, ChartZ Belatedly"
@.>"Happy Birthday, caird coinheringaahing"@
deleted 119 characters in body
Source Link
Wheat Wizard
  • 100k
  • 22
  • 282
  • 661
Loading
deleted 198 characters in body
Source Link
Wheat Wizard
  • 100k
  • 22
  • 282
  • 661
Loading
Source Link
Wheat Wizard
  • 100k
  • 22
  • 282
  • 661
Loading