Der seltsame Fall von Steve Ballmer

46

Steve Ballmer ist der Ex-CEO von Microsoft und behauptete in einem kürzlich erschienenen Artikel , dass er "immer noch nicht weiß, was er mit dem Handy falsch gemacht hat".

Wie der Newsletter von CodeProject hervorhob , "könnte der Titel dieses Artikels an so vielen Stellen enden und trotzdem korrekt sein".

Wenn keine Eingabe erfolgt, geben Sie Folgendes aus:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

Dies muss genau wie gezeigt ausgegeben werden und muss die einzige Ausgabe Ihres Programms sein. Sie können eine einzelne nachgestellte Zeile einfügen.

Dies ist so dass die wenigsten Bytes in jeder Sprache gewinnen

Skidsdev
quelle
59
Als ich den Titel / die Tags sah, dachte ich, dass die Ausgabedevelopers developers ...
Rod
15
tcl, 25 - while 1 {puts developers}- Demo
Sergiol
8
braingolf, 23 - 1"developers "[!@11 1>]: P
Skidsdev
16
Und ich dachte an
xkcds
5
ja, 14 -yes developers
Sergiol

Antworten:

26

Python 3 , 100 99 99 97 Bytes

-1 Byte dank Ovs
-1 Byte dank Jonathan Allan
-1 Byte dank Dennis

for i in b'!-3?':print('Steve Ballmer still does not know what he did wrong with mobile'[:i]+'.')

Probieren Sie es online!

Stange
quelle
17

Haskell, 96 Bytes

(++".\n")=<<scanl(++)"Steve Ballmer still does not know"[" what he did"," wrong"," with mobile"]

Probieren Sie es online!

scanlist wie foldl(oder reduzieren, wie es in anderen Sprachen genannt wird), außer dass es eine Liste aller Zwischenergebnisse anstelle nur des letzten zurückgibt. Jedes Zwischenergebnis wird angehängt ".\n"und alle werden zu einer einzigen Zeichenfolge verkettet.

nimi
quelle
17

05AB1E , 50 49 45 44 Bytes

4 Bytes gespeichert mit Inspiration von Kevins Java-Antwort

„€Ž†©'–Ñ…€À€½ƒ§“mer„â‚à€–ƒ€“”™¸ïß”[Žì'.«=¨ð«

Probieren Sie es online!

Erläuterung

„€Ž†©                                         # push "with mobile"
     '–Ñ                                      # push "wrong"
        …€À€½ƒ§                               # push "what he did"
               “mer„â‚à€–ƒ€“                  # push "mer still does not know"
                            ”™¸ïß”            # push "Steve Ball"
                                  [Ž          # loop until stack is empty
                                    ì         # prepend the top string to the 2nd top string
                                     '.«      # append a dot
                                        =     # print without popping
                                         ¨    # remove the dot
                                          ð«  # append a space
Emigna
quelle
Oh schön, ist es gelungen, die Wörterbuchkomprimierung für alles andere als zu verwenden Ballmer?
Skidsdev
@ Mayube: Ja. Ich habe es jetzt teilweise geschafft (Ball), ein Byte zu retten, indem ich die ursprüngliche Zeichenfolge umstrukturierte :)
Emigna
sieht jetzt viel besser aus, wenn du das nur komprimieren mer
könntest
@ Mayube: Ich könnte es durch Komprimieren verbergen, meaber leider würde das keine Bytes speichern: /
Emigna
2
@StigHemmer: Es ist 44 Bytes in der 05AB1E-Codepage
Emigna
15

Retina , 82 bis 75 Bytes

Vielen Dank an Neil für das Speichern von 7 Bytes.

Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.


Steve Ballmer still does not know what he did wrong with mobile.
 w
.¶$`$&

Probieren Sie es online!

Erläuterung


Steve Ballmer still does not know what he did wrong with mobile.

Initialisieren Sie den Arbeitsstring bis zur vollständigen Überschrift.

 w
.¶$`$&

Wie Neil betont hat, werden alle drei Kürzungen vor einem Wort vorgenommen, das mit "" beginnt w, und es gibt keine anderen Wörter, die mit "" beginnen w. Also passen wir ein Leerzeichen gefolgt von einem wan, um die Trunkierungspunkte zu finden. An diesen Stellen fügen wir Folgendes ein:

  • , ein Punkt und ein Zeilenvorschub, um den Satz abzuschneiden und einen neuen zu beginnen.
  • $`wird die gesamte Zeichenfolge vor dem Spiel angezeigt, so dass der nächste Satz von vorne beginnt.
  • $&, der Raum und wwieder, damit sie auch Teil des nächsten Satzes sind.

Wir brauchen das nicht mobileexplizit zuzuordnen, denn das wird einfach das sein, was beim dritten Spiel übrig bleibt.

Martin Ender
quelle
3
Sie müssen nur auf <Leerzeichen> w zutreffen und durch ersetzen .¶$`$&.
Neil
@Neil Oh, das ist wirklich ordentlich, danke. :)
Martin Ender
9

PHP, 104 95 94 Bytes

<?=$a="Steve Ballmer still does not know",$a=".
$a what he did",$a.=" wrong",$a?> with mobile.
user63956
quelle
1
Vermissen Sie "was"?
TheLethalCoder
8

/// 88 Bytes

8 Bytes von @MartinEnder gespeichert!

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong/1.
2.
3.
3 with mobile.

Probieren Sie es online!

steenbergh
quelle
1
Sie können ein bisschen mehr sparen, indem Sie das vorherige Präfix in jede Substitution verschieben: tio.run/…
Martin Ender
@MartinEnder Das ist besonders clever. Vielen Dank!
steenbergh
1
Oh, und noch 5, indem Sie alles löschen4 : tio.run/##DcLRDcMgDAXA/…
Martin Ender
5
@MartinEnder "Ja, ich habe Nr. 3 mit Handy, bitte."
steenbergh
7

05AB1E , 46 Bytes

”™¸ïßme”“r„â‚à€–ƒ€“«…€À€½ƒ§'–Ñ„€Ž†©).pvyðý'.«»

Probieren Sie es online!

Erik der Outgolfer
quelle
Das sind nach meiner Zählung 98 Bytes.
Stig Hemmer
@StigHemmer 05AB1E verwendet eine eigene Codepage mit 256 Bytes, die jedes Zeichen in ein einzelnes Byte codiert. Daher die 46 Bytes, obwohl es in der UTF-8-Basiscodierung viel mehr Bytes sind.
Kevin Cruijssen
7

Java 8, 127 126 Bytes

()->{String t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile.";}

-1 Byte dank @KonstantinCh .

Probieren Sie es hier aus.

Kevin Cruijssen
quelle
1
Hoffe es macht dir nichts aus, dass ich deine Idee gestohlen habe, es ist viel besser als mein Looping-Ansatz.
TheLethalCoder
@TheLethalCoder Kein Problem, da ich sehe, dass du mir das gutgeschrieben hast. :) Übrigens, stringkann nicht varin Ihrem C # Lambda sein?
Kevin Cruijssen
Nein, weil ich mehrere auf einmal deklariere.
TheLethalCoder
@TheLethalCoder Ah natürlich meine schlechte .. und ()=>{var t="Steve Ballmer still does not know";return t+".\n"+(t+=" what he did")+".\n"+(t+=" wrong")+".\n"+t+" with mobile"+".";};ist leider drei Bytes länger.
Kevin Cruijssen
1
Konstantin Ch schlägt vor, das "+dam Ende zu ändern .", um ein Byte zu speichern, da der letzte Zeilenvorschub optional ist.
Martin Ender
6

Jelly , 52 46 Bytes

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»;\p”.Y

Credits für ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓgehen an @EriktheOutgolfer, der es in seiner Antwort verwendet hat .

Probieren Sie es online!

Wie es funktioniert

Der Löwenanteil der Arbeit wird hier durch Jellys Wörterbuchkomprimierung erledigt.

ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ

codiert

Steve| Ball|mer| still| do|es| no|t| know

es |gibt Grenzen zwischen den Wörtern , die dem geholten aus dem Wörterbuch und Zeichenfolgen , die Zeichen für Zeichen codiert wurden ( mer, es, und t).

In ähnlicher Weise £Ṿ⁴'Þḣ~ẉkodiert  what| he| did( überraschend, heist nicht kommt aus dem Wörterbuch), ¥Ị)codiert  wrong, und Ṡ8gÐ/codiert  with| mobile.

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»

ergibt somit das String-Array

“Steve Ballmer still does not know“ what he did“ wrong“ with mobile”

;\ Reduziert sich kumulativ durch Verkettung, wobei die Phrasen in jeder Zeile gebildet werden.

Schließlich p”.berechnet die cartesianischen Produkt dieser Phrasen und dem Punktzeichen und Ytrennt die resultierenden Sätze von Zeilenumbrüche.

Dennis
quelle
Nach meiner Zählung sind das 97 Bytes.
Stig Hemmer
@StigHemmer In UTF-8 wäre es. Jelly unterstützt jedoch auch diesen Einzelbyte-Zeichensatz .
Dennis
6

JavaScript (ES6), 102 Byte

_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`

Versuch es

o.innerText=(
_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`
)()
<pre id=o>

Zottelig
quelle
Netter Ansatz Ich habe es für meine C # -Antwort "ausgeliehen".
TheLethalCoder
1
Vielleicht verstehe ich die Spielregeln nicht, aber diese Funktion funktioniert nur dann richtig, wenn Sie sich in einem Browser befinden und den Innertext des Pre-Tags verwenden, wie Sie es getan haben. Also sind das nicht mehr als 102 Bytes, da es von o.innerText = und <pre id = "o"> abhängt und tatsächlich das Element in den Griff bekommt?
Paul
@Paul Ich weiß, dass dies alt ist, aber eine anonyme Funktion ist eine akzeptable Form von E / A als Eintrag. Solange die erwarteten Daten zurückgegeben werden, muss sie nicht direkt angezeigt werden.
Dom Hastings
5

C (GCC) , 124 122 Bytes

#define A"Steve Ballmer still does not know"
#define B".\n"A" what he did"
f(){puts(A B B" wrong"B" wrong with mobile.");}

Probieren Sie es online!

Giacomo Garabello
quelle
Sie können die Leerzeichen zwischen Aund Bund die Zeichenfolgen, die sie definieren, entfernen .
Dennis
4

Retina , 95 86 Bytes

:`
Steve Ballmer still does not know.
:`.$
 what he did.
:`.$
 wrong.
.$
 with mobile.

Probieren Sie es online! Bearbeiten: 9 Bytes gespart, indem von der Ausgabe von Teilen des gesamten Strings zum Aufbau des Strings in Stücken gewechselt wurde. Das :`wird in den ersten drei Stufen benötigt, um sie auszugeben.

Neil
quelle
Oh, das ist klug, alles zwischen wund elöschen, dann alles zwischen wrund e, dann wiund löschen e. Aufgrund von Retinas Newline-Neigung nicht besonders golfen, aber auf jeden Fall cool
Skidsdev,
@ Mayube Es stellte sich heraus, dass ich überhaupt nicht sehr golfen konnte, also habe ich die Methoden gewechselt. (Immer noch nicht so cool wie die Antwort von Martin Ender.)
Neil
3

C #, 158 128 120 114 Bytes

()=>{var s="Steve Ballmer still does not know";return s+$@".
{s+=" what he did"}.
{s+=" wrong"}.
 with mobile.";};

30 Bytes dank @KevinCruijssen eingespart.
6 Bytes gespart dank @Shaggy.


Version mit Sub-Stringing für 120 Bytes:

s=n=>"Steve Ballmer still does not know what he did wrong with mobile".Substring(0,n)+".\n";()=>s(33)+s(45)+s(51)+s(63);

Von @KevinCruijssen ausgeliehene Version für 128 Bytes:

()=>{string t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile"+d;};

Version mit Schleife für 158 Bytes:

()=>{var r="";for(int i=0;++i<5;)r+=$"Steve Ballmer still does not know{(i>1?$" what he did{(i>2?$" wrong{(i>3?" with mobile":"")}":"")}":"")}.\n";return r;};

Einfacher Ansatz mit ternären Anweisungen, um in einer Schleife die neuen Teile jedes Mal an die Zeichenfolge anzuhängen.

TheLethalCoder
quelle
Im C# >= 6
Übrigen
@Mayube Das stimmt, aber ich Golf spielen diese im Moment Kevin Ansatz zu verwenden , wie das viel besser ist als ich haha
TheLethalCoder
Muss 2 weitere Bytes Golf, so dass Sie die Java-Antwort D schlagen können:
Skidsdev
@Mayube Die Java-Antworten schlagen normalerweise C #, da sie kein abschließendes Semikolon enthalten. Ist immer nervig!
TheLethalCoder
@ Mayube Fertig, vorerst zumindest ...
TheLethalCoder
3

Bash, 111 109 107 Bytes

a=(Steve Ballmer still does not know "what he did" wrong with\ mobile)
for i in {6..9};{ echo ${a[@]::i}.;}

Probieren Sie es online!

DrnglVrgs
quelle
3

Vim, 79 Tastenanschläge

iSteve Ballmer still does not know.<CR><C-x><C-l><Backspace> what he did.<CR><C-x><C-l><Backspace> wrong.<CR><C-x><C-l><Left> with mobile

<C-x><C-l>Vervollständigt sich automatisch mit der vorherigen Zeile. Alternativ können Sie jedes Vorkommen von <CR><C-x><C-l>durch ersetzen<Esc>o<C-a>

BlackCap
quelle
3

CJam , 79 Bytes

4{)"Steve Ballmer still does not know
hat he did
rong
ith mobile"N/<" w"*'.+N}%

Probieren Sie es online!

Erik der Outgolfer
quelle
Wow, interessanter Musterfund
Destructible Lemon
3

Ruby, 94 Bytes

"!-3Z".bytes{|i|puts"Steve Ballmer still does not know what he did wrong with mobile"[0,i]+?.}

Durchläuft die 4 Zeichen in der ersten Zeichenfolge, konvertiert jedes Zeichen in seinen ASCII-Wert nund gibt njedes Mal die ersten Zeichen der zweiten Zeichenfolge aus. Es spielt keine Rolle, wie das letzte Zeichen der ersten Zeichenfolge lautet, solange der ASCII-Wert gleich oder größer als die Länge der zweiten Zeichenfolge ist.

Level River St
quelle
3

Fission, 299 291 269 ​​Bytes

MN"."                             ]              ]        ]
                                  W$]            W$$]     W$$$]
R"Steve Ballmer still does not know"%[" what he did"%[" wrong"%[" with mobile.";
                                    [W              [W        [W

Probieren Sie es online!

Endlich eine 2D-Sprache, die ich verstehe!

Erläuterung

Das Programm erzeugt ein Atom mit 1 Masse und 0 Energie (ein 1:0Atom) in RZeile 3 und beginnt, sich nach rechts zu bewegen.

"Steve Ballmer still does not know" druckt jedes Zeichen.

% Bewegt das Atom nach oben, wenn es 0 Energie hat, oder dekrementiert seine Energie und bewegt es nach unten.

]Bewegt das Atom nach links, $erhöht die Energie Wdes Atoms und bewegt das Atom nach oben.

Befindet sich das Atom in der obersten Reihe, bewegt es sich nach links, bis es erreicht ".", was einen Punkt, Neine neue Zeile und schließlich Mdas Atom nach unten und Rdas Atom nach rechts druckt .

In jeder Schleife ist die Energie des Atoms um eins höher, was bedeutet, dass es eine weitere Schleife durchläuft %. Nach der 4. Schleife erreicht es ;das Ende der dritten Zeile, wodurch das Atom zerstört wird. Das Programm endet, sobald alle Atome zerstört sind.

Skidsdev
quelle
Könnten Sie eine Erklärung hinzufügen?
Shaggy
@ Shaggy wird tun
Skidsdev
Sie können die Spitze viel mehr komprimieren: 209 Bytes .
KSmarts
3

Japt , 70 68 65 61 60 59 Bytes

Enthält einige Zeichen, die hier nicht angezeigt werden. Folgen Sie dem Link unten, um den vollständigen Code zu sehen.

`Sve Ba¥´r Ð]l º not know
 Ø  ¹d
 Ùg
 ØP ¶ßè`£'.iP±X}R

Probieren Sie es online aus

  • 3 Dank ETH 4 Bytes gespart , plus weitere 4 mit etwas Aufforderung.

Erläuterung

Alles zwischen den beiden Backticks ist eine komprimierte Zeichenfolge mit den folgenden Eigenschaften:

Steve Ballmer still does not know
 what he did
 wrong
 with mobile
`...`             :Decompress the string.
     £       }R   :Map over the each line X in the string
         P±X      :   Append X to P (initially the empty string)
      '.i         :   Prepend that to the string "."
Zottelig
quelle
1
Nett. Sie können einige Bytes einsparen, indem Sie Folgendes tun [`Sve Ba¥´r Ð]l º not know`` Ø ¹d`` Ùg`` ØP ¶ßè.`]m@P+=X}, und dann noch ein paar Bytes, bei denen das [und entfernt wird ](ich werde Sie das herausfinden lassen).
ETHproductions
Schön, @ETHproductions. Es hat ein paar Minuten gedauert, bis ich festgestellt habe, dass zwischen der Komprimierung und den Zeichen SE nichts angezeigt wird, aber ich bin dort angekommen, und jetzt denke ich, dass ich die anderen Einsparungen sehe, auf die Sie auch hinweisen.
Shaggy
1
Sie können besser dran sein, wenn Sie das Spalten und Verbinden entfernen und stattdessen £P±X +'.}Ram Ende
ETHproductions
@ETHproductions, es kommt immer noch bei 61 Bytes an, aber es ist definitiv ordentlicher; macht den nachgestellten Zeilenumbruch überflüssig. EDIT: Oh, warte, nein, ich kann mit diesem Ansatz 1 Byte sparen :)
Shaggy
2

Gelee , 49 Bytes

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“¡=~Ṃ©N|ȯ“¡ṭṂ“CṬṀWỌ»ḣJK;¥€”.Y

Probieren Sie es online!

Erik der Outgolfer
quelle
2

PHP, 116 Bytes

for(;$i<4;)echo"Steve Ballmer still does not know",["",$t=" what he did",$t.=" wrong","$t with mobile"][+$i++],".

";

Probieren Sie es online!

Jörg Hülsermann
quelle
2

SOGL , 42 Bytes

⁹⁴<>‘υG‘Γω/w¹‘O‛Æw▓½0H(æ█◄K∆2Ξgh‘4{Tļ.@+;+

Erläuterung:

..‘                    push "with mobile"
   ..‘                 push "wrong"
      ..‘              push "what he did"
         ..‘           push "Steve Ballmer still does not know"
            4{         4 times do
              T          output, not popping the top of stack
               ļ.        output "."
                 @+      append a space to the top thing in stack
                   ;+    reverse add (adding the next part to the top thing in stack)
dzaima
quelle
Wie benutzt man SOGL? Ich habe Processing und alle Versionen installiert, obwohl ich nicht herausfinden kann, wie Sie es ausführen würden.
Erik der Outgolfer
Öffnen Sie den "P5Parser" ohne Versionsbezeichnungen und data/p.soglfügen Sie den Code in dessen Ordner ein . Führen Sie dann den Verarbeitungscode aus, und die Ausgabe sollte in der Konsole erfolgen
dzaima
Versucht, Ihren Code auszuführen, aber es hat keine Ausgabe ..../processing-java --sketch=../SOGL/P5Parser --run p.sogl ""
Erik the Outgolfer
Für mich geht das. Geben Sie stattdessen den vollständigen Pfad ein p.sogl. ob es nichts in STDOUT oder gibt P5Parser/output.txt, weiß ich nicht.
Dzaima
Dies ist die Ausgabe für mich, getrennt in STDOUT und STDERR.
Erik der Outgolfer
2

Sed, 96

s/^/Steve Ballmer still does not know./p
s/\./ what he did./p
s/\./ wrong./p
s/\./ with mobile./

Probieren Sie es online aus .

Implizite Eingabe von Zeilenumbrüchen gemäß dieser Meta-Frage .

Digitales Trauma
quelle
Sie können 92 Bytes erhalten, indem Sie die zweiten beiden \.s
H.PWiz
2

Go , 140 127 Bytes

import."fmt"
func f(){for _,i:=range"!-3?"{Println("Steve Ballmer still does not know what he did wrong with mobile"[:i]+".")}}

Probieren Sie es online!

total menschlich
quelle
2

Nim , 100 Bytes

for i in " ,2>":echo "Steve Ballmer still does not know what he did wrong with mobile"[0..i.int],"."

hier das gleiche in besser lesbarem Code:

const str = "Steve Ballmer still does not know what he did wrong with mobile"

for i in [32, 44, 50, 62]:
  echo(str[0..i], ".")

Die Sprache hat ein String-Slicing und inklusive Obergrenzen. Der Rest sollte sich von selbst erklären, wenn Sie mit Programmieren vertraut sind.

Arne
quelle
1

Kohle , 71 69 Bytes

A⟦⟧βF⪪”↓/‘ZQ≔'Wε}÷&’/↗∧μ~⎇²~ηρπ‖¢β\`σuσI⌀δ#″:§▶¬QγγQZ–” w⁺⪫⊞Oβι w¦.¶

Probieren Sie es online! Der Link ist eine ausführliche Codeversion, bei der einige Trennzeichen weggelassen werden, da deverbosifier dies nicht automatisch ausführen kann. Dies ist im Grunde eine Portierung der Antwort von @ KevinCruijssen.

Neil
quelle
1

> <> 135 Bytes

".wonk ton seod llits remllaB evetS"\
l?!\o99+2*1./"h tahw  "32p10pao     \
52p\".did e"/"   "53p33p
  /\".gnorw"/
1p/\".elibom htiw;"3

Dies geht im Grunde genommen durch die Zeichenkette, druckt und ersetzt dann den Punkt und die Bedingungen durch Leerzeichen, um sich weiter entlang des Codes zu bewegen.

Am besten visualisieren Sie dies mit dem folgenden> <> Teich-Link.

> <> Teich!

Probieren Sie es online!

Blaugrüner Pelikan
quelle
1
Mir knowist nie aufgefallen, dass rückwärts geschrieben ist wonk.
Digital Trauma
8
@DigitalTrauma Nun, jetzt hast du gewonnen
ETHproductions
1

Mathematica, 108 104 Bytes

"Steve Ballmer still does not know what he did wrong with mobile"~StringTake~#~Print~"."&/@{33,45,51,63}


Probieren Sie es online!

-4 Bytes von Martin

J42161217
quelle
1

> <> 126 Bytes

 \"elibom htiw \"10p";"15p
  "gnorw  "10p
  "did eh tahw \"11p
 \"wonk ton seod llits remllaB evetS\"12p04.
  l?!vo
oo00.>a"."
AGourd
quelle