Przypomnij mi jeszcze raz?

9

Wprowadzenie

Słyszałeś kiedyś o Przypomnieniu? Nie? Nie zrobiłem tego jeszcze około 2 lata temu. Podstawowym założeniem jest wysyłanie przypomnień przez nauczycieli i komunikowanie się z uczniami. Całkiem nieźle, prawda? Pozwala nawet wysyłać emotikony i reagować na wiadomości! Co robię na codzień.

Ale jedną rzeczą w Przypomnij jest to, że nauczyciele zawsze wysyłają „Odrób pracę domową!” „Jeśli nie, dostaniesz literę F!”. Ale są też przydatne rzeczy, takie jak „Test we wtorek” lub okazjonalnie „Miłego dnia!”. Prawie zawsze odpowiadam zadowolony z kciukami w górę, ale czasami muszę kciuk w dół.

Wyzwanie

Twoim zadaniem dzisiaj jest sprawdzenie, czy wiadomość ma z tym określoną konotację. Jeśli ma to pozytywną konotację, odpowiedz kciukiem do góry. Jeśli ma negatywne znaczenie, odpowiedz kciukiem w dół.

Jak mam wykryć konotacje?

Pozytywna konotacja zwykle zawiera 3 słowa. Te 3 słowa to: szczęśliwy, dobry i zdany .

Negatywna konotacja będzie miała również 3. Te 3: Test, Niepowodzenie i zadanie domowe .

Do czego testuję?

Testujesz, czy wiadomość zawiera pozytywne, negatywne lub oba skojarzenia.

Jeśli wiadomość ma pozytywne konotacje, śmiało i zwróć punkt kodu Unicode za kciuki w górę (U + 1F44D).

Jeśli ma negatywne konotacje, zwróć punkt kodu Unicode za kciuk w dół (U + 1F44E).

Jeśli komunikat ma konotacje zarówno ujemne, jak i dodatnie, zwróć punkt kodowy neutralnej powierzchni (U + 1F610).

Jeśli z jakiegoś innego powodu nie ma żadnej konotacji, zwróć miłe wzruszenie ramion (¯ \ _ (ツ) _ / ¯). Jeśli wzruszenie ramion nie pojawi się poprawnie, oto link Emojipedia do wzruszenia ramion

Ograniczenia

  • Program musi przyjąć komunikat jako dane wejściowe.
  • Pozytywne konotacje muszą zwrócić kciuki do góry kod (U + 1F44D)
  • Negatywne konotacje muszą zwracać kciuki w dół punktu kodu (U + 1F44E).
  • Jeśli komunikat ma obie konotacje, zwróć punkt neutralnego kodu twarzy (U + 1F610).
  • Jeśli komunikat nie ma żadnych konotacji, zwróć wzruszenie ramion (¯ \ _ (ツ) _ / ¯).
  • To jest Najkrótsze bajty wygrywają

Przypadki testowe.

Input -> Output
Happy Good Friday! -> U+1F44D
Congrats, you just played yourself -> ¯\_(ツ)_/¯
You failed the test. -> U+1F44E
Good job on the test. -> U+1F610
KuanHulio
źródło
Musisz uciec
Rod
w porządku, przypadek testowy wzruszył ramionami
KuanHulio
1
„Jeśli wiadomość ma obie konotacje, zwróć punkt neutralnego kodu twarzy (U + 1F610).” I nie, nie rozróżnia wielkości liter.
KuanHulio
Aby wyjaśnić: jeśli ciąg zawiera oba typy słów, zwróć neutralny, niezależnie od tego, czy jest więcej jednego rodzaju niż drugiego?
Kudłaty
@ Shaggy tak, po prostu wróć neutralny
KuanHulio

Odpowiedzi:

2

Python 3 , 182 166 159 151 bajtów

c=input().lower().count
print((["¯\_(ツ)_/¯"]+list("👍👎😐"))[any(map(c,["good","happy","passed"]))+any(map(c,["fail","test","homework"]))*2])

Wypróbuj online!

Martmists
źródło
możesz wstawić obie anylitery do wydruku:d[any(<positive>)+any(<negative>)*2]
Rod
1
Dostaję 182 bajty UTF-8 zamiast 169
user41805
utf zawsze sprawia, że ​​zapominam o dodatkowych bajtach, zwykle po prostu używam funkcji len () Pythona w moim kodzie. Będzie zmieniać
Martmists
"👍👎😐"działa dobrze dla mnie. w jakiej wersji Pythona jesteś?
Martmists
Nie testowałem tego, ale myślę, że możesz to zrobić print(d[("good"in m or"happy"in m or"passed"in m)+("bad"in m or"test"in m or"homework"in m)*2])zamiast tego
James
0

JavaScript, kodowany UTF-8, 100 bajtów

s=>['¯\_(ツ)_/¯',...'👎👍😐'][2*/happy|good|passed/i.test(s)+/test|fail|homework/i.test(s)]

Przypadki testowe:

GOTO 0
źródło
0

PowerShell, 190 bajtów

"$($s=Read-host;"$s ->";$1=("Test","Fail","Homework"|?{$s-match$_});$2=("Happy","Good","Passed"|?{$s-match$_});if($1-and$2){"😐"}elseif($1){"👎"}elseif($2){"👍"}else{"¯\_(ツ)_/¯"})"

Wyświetla wejście i wyjście obok siebie.

Szczęśliwy Wielki Piątek! -> 👍

Gratulacje, właśnie grałeś sam -> ¯ \ _ (ツ) _ / ¯

Nie zdałeś testu. -> 👎

Dobra robota na teście. -> 😐

Mikrofon
źródło
0

PowerShell, 187 bajtów

read-host|%{$s=$_;$f=0;0..5|?{$s.indexof((-split'Happy Good Passed Test Fail Homework')[$_],0,$s.length,3)+1}|%{$f=$f-bor(1,2)[$_/3]};$s+' -> '+('¯\_(ツ)_/¯','👍','👎','😐')[$f]}
Andrei Odegov
źródło