Lembrar de novo?


9

Introdução

Já ouviu falar de Remind? Não? Nem eu até cerca de 2 anos atrás. A premissa básica é que os professores enviem lembretes e se comuniquem com seus alunos. Bem arrumado, certo? Ele ainda permite enviar emoticons e reagir a mensagens! O que eu faço diariamente.

Porém, uma coisa sobre o Remind é que os professores sempre enviam a mensagem "Faça sua lição de casa!" "Se não, você receberá um F!". Mas também existem coisas úteis, como "Teste na terça-feira" ou o ocasional "Tenha um bom dia!". Eu quase sempre respondo feliz com o polegar para cima, mas às vezes tenho que colocar o polegar para baixo.

Desafio

Sua tarefa hoje é descobrir se uma mensagem tem uma certa conotação. Se tiver uma conotação positiva, responda com um polegar para cima. Se tiver uma conotação negativa, responda com um polegar para baixo.

Como devo detectar conotações?

Uma conotação positiva normalmente terá três palavras. As 3 palavras são: Feliz, Bom e Aprovado .

Uma conotação negativa terá 3 também. Aqueles 3: Teste, Falha e Trabalho de Casa .

Para que estou testando?

Você está testando para ver se uma mensagem contém conotações positivas, negativas ou ambas .

Se uma mensagem tiver conotações positivas, vá em frente e retorne o ponto de código unicode para o polegar para cima (U + 1F44D).

Se ele tiver conotações negativas, retorne o ponto de código unicode para os polegares para baixo (U + 1F44E).

Se a mensagem tiver conotações negativas e positivas, retorne o ponto de código para uma face neutra (U + 1F610).

Se, por algum outro motivo, ele não tiver nenhuma das conotações, retorne um bom e velho encolher de ombros (¯ \ _ (ツ) _ / ¯). Se o encolher de ombros não aparecer direito, aqui está o link Emojipedia para o encolher de ombros

Restrições

  • O programa deve receber uma mensagem como entrada.
  • As conotações positivas devem retornar o ponto de código positivo (U + 1F44D)
  • As conotações negativas devem retornar o ponto de código negativo (U + 1F44E).
  • Se a mensagem tiver ambas as conotações, retorne o ponto neutro do código de face (U + 1F610).
  • Se a mensagem não tiver conotações, retorne o encolher de ombros (¯ \ _ (ツ) _ / ¯).
  • Isso é , bytes mais curtos ganham

Casos de teste.

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

Você precisa escapar dele #
Rod Rod

está tudo bem, o caso de teste está encolhendo os ombros
KuanHulio 26/05

11
"Se a mensagem tiver ambas as conotações, retorne o ponto neutro do código de face (U + 1F610)." E não, não diferencia maiúsculas de minúsculas.
KuanHulio

Para esclarecer: se a sequência contiver os dois tipos de palavras, retorne neutro, independentemente de haver mais de um tipo que o outro?
Shaggy

@ Shaggy sim, basta retornar neutro #
KuanHulio

Respostas:


2

Python 3 , 182 166 159 159 151 bytes

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

Experimente online!


você pode inserir os dois anys dentro da impressão:d[any(<positive>)+any(<negative>)*2]
Rod

11
Recebo 182 bytes UTF-8 em vez de 169
user41805

O utf sempre me faz esquecer bytes extras, geralmente apenas uso a função len () do python no meu código. Editará
Martmists

"👍👎😐"funciona bem para mim. em qual versão do python você está?
Martmists

Eu não testei, mas acho que você poderia fazer em 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])vez disso
James

0

JavaScript, codificado em UTF-8, 100 bytes

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

Casos de teste:


0

Powershell, 190 bytes

"$($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{"¯\_(ツ)_/¯"})"

Exibe a entrada e a saída próximas uma da outra.

Feliz sexta-feira! -> 👍

Parabéns, você acabou de se jogar -> ¯ \ _ (ツ) _ / ¯

Você falhou no teste. -> 👎

Bom trabalho no teste. -> 😐


0

PowerShell, 187 bytes

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]}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.