เตือนฉันอีกครั้ง


9

บทนำ

เคยได้ยินRemind ไหม ไม่มี? ฉันก็ไม่ได้จนกว่าประมาณ 2 ปีที่ผ่านมา หลักฐานพื้นฐานสำหรับครูที่จะส่งการแจ้งเตือนและสื่อสารกับนักเรียนของพวกเขา สวยเนี๊ยบใช่มั้ย มันยังช่วยให้คุณส่ง emotes และตอบสนองต่อข้อความ! ซึ่งฉันทำอยู่ทุกวัน

แต่สิ่งหนึ่งที่เตือนใจคือครูมักจะส่ง "ทำการบ้านของคุณ!" "ถ้าคุณทำไม่ได้คุณจะได้ F!" แต่มีสิ่งที่มีประโยชน์เช่น "ทดสอบในวันอังคาร" หรือเป็นครั้งคราว "ขอให้มีความสุขมาก ๆ !" ฉันมักจะตอบว่ามีความสุขเมื่อยกนิ้วขึ้น แต่บางครั้งฉันต้องวางนิ้วโป้งลง

ท้าทาย

งานของคุณในวันนี้คือการดูว่าข้อความมีความหมายแฝงอยู่หรือไม่ หากมันมีความหมายแฝงในเชิงบวกอยู่ให้ตอบกลับด้วยการยกนิ้ว ถ้ามันมีความหมายแฝงในเชิงลบให้ตอบด้วยการยกนิ้วลง

ฉันควรตรวจจับความหมายอย่างไร

ความหมายเชิงบวกมักจะมี 3 คำอยู่ในนั้น คำทั้งสามนี้คือ: มีความสุขดีและผ่านไป

ความหมายเชิงลบจะมี 3 ด้วย ผู้ที่ 3: การทดสอบล้มเหลวและการบ้าน

ฉันกำลังทดสอบอะไรอยู่

คุณกำลังทดสอบเพื่อดูว่าข้อความมีความหมายเชิงบวกเชิงลบหรือทั้งสองอย่าง

หากข้อความมีความหมายเชิงบวกอยู่ให้ดำเนินการต่อและส่งคืนจุดโค้ดยูนิโคดเพื่อยกนิ้วให้ (U + 1F44D)

หากมันมีความหมายเชิงลบอยู่ให้คืนจุดโค้ดยูนิโคดเพื่อยกนิ้วลง (U + 1F44E)

หากข้อความมีทั้งความหมายเชิงลบและเชิงบวกให้ส่งคืนรหัสจุดสำหรับใบหน้าที่เป็นกลาง (U + 1F610)

หากด้วยเหตุผลอื่นมันไม่มีความหมายใด ๆ เลยให้คืนค่ายักไหล่ ol ดี (¯ \ _ (ツ) _ / ¯) หากยักไหล่ไม่แสดงขึ้นมานี่คือลิงค์ Emojipedia ไปยังยักไหล่

ข้อ จำกัด

  • โปรแกรมจะต้องนำข้อความเข้ามาใส่
  • ความหมายเชิงบวกต้องส่งคืนรหัสจุดยกนิ้ว (U + 1F44D)
  • ความหมายเชิงลบต้องส่งคืน Thumbs down code point (U + 1F44E)
  • หากข้อความมีความหมายแฝงอยู่ให้คืนค่ารหัสใบหน้าเป็นกลาง (U + 1F610)
  • หากข้อความนั้นไม่มีความหมายแฝงให้ส่งคืน shrug (¯ \ _ (ツ) _ / ¯)
  • นี่คือ ไบต์ที่สั้นที่สุดชนะ

กรณีทดสอบ

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

1
"หากข้อความมีความหมายแฝงให้คืนค่ารหัสใบหน้าเป็นกลาง (U + 1F610)" และไม่ไม่คำนึงถึงขนาดตัวพิมพ์
KuanHulio

หากต้องการชี้แจง: หากสตริงมีทั้งสองประเภทให้กลับเป็นกลางโดยไม่คำนึงว่ามีอีกประเภทหนึ่งมากกว่าอีกไหม?
Shaggy

@Shaggy ใช่เพียงแค่คืนเป็นกลาง
KuanHulio

คำตอบ:


2

Python 3 , 182 166 159 151 ไบต์

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

ลองออนไลน์!


คุณสามารถแทรกทั้งสองanyข้างไว้ในการพิมพ์:d[any(<positive>)+any(<negative>)*2]
Rod

1
ฉันได้รับ 182 UTF-8 bytes แทน 169
user41805

utf ทำให้ฉันลืมไบต์พิเศษเสมอฉันมักจะใช้ฟังก์ชั่น len () บนโค้ดของฉัน จะแก้ไข
Martmists

"👍👎😐"ทำงานได้ดีสำหรับฉัน คุณเป็นงูหลามรุ่นไหน?
Martmists

ฉันยังไม่ได้ทดสอบ แต่ฉันคิดว่าคุณสามารถทำได้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])แทน
James

0

JavaScript, UTF-8 เข้ารหัส, 100 ไบต์

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

กรณีทดสอบ:


0

Powershell, 190 ไบต์

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

แสดงอินพุตและเอาต์พุตถัดจาก eachother

ขอให้มีความสุขในวันศุกร์! -> 👍

ยินดีด้วยคุณเพิ่งเล่นเอง -> ¯ \ _ (ツ) _ / ¯

คุณทดสอบล้มเหลว -> 👎

ทำได้ดีในการทดสอบ -> 😐


0

PowerShell, 187 ไบต์

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]}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.