ทำนายชีวิตด้วย 8 ball บน JavaScript กัน

Isa
2 min readApr 15, 2020

พาทำเกมส์ 8 ball โดยใช้ Switch Statement

source: https://www.mattelgames.com/en-us/kids/magic-8-ball

สวัสดีครับผม ซา คนเดิม วันนี้จะพาทำเกมส์ 8 ball โดย JavaScript ถ้าใครไม่รู้จัก
8 ball คือของเล่นที่ถูกประดิษฐ์ขึ้นมาในปี 1950 โดย Albert Carter และ Abe Bookman โดยเป็นของเล่นที่ทำหน้าที่เหมือนกับลูกแก้วแห่งคำทำนายที่มีรูปทรงเหมือนกับลูกบิลเลียดนั่นเอง โดยวิธีการเล่นของมันก็คือการให้ผู้เล่นนึกคำถามๆ หนึ่งขึ้นมาในใจและทำการเขย่าลูกบอลนั้น สามารถอ่านต่อได้ที่นี่ครับ โดยครั้งนี้เราจะนำ Switch Statement เข้ามาใช้ด้วย โดยให้ user ถามคำถามปิด ในตัวอย่างข้างล่างจะใช้คำถามว่า “จากวันนี้ถึงวันวาเลนไทน์ปีหน้าจะมีแฟนหรือเปล่า”

เริ่มต้นโดยการสร้าง variable ชื่อ userName ให้เท่ากับชื่อของเรา

let userName = "ซา";

ต่อมาเราจะมาทักทาย user โดยมี condition ว่าถ้า user ได้กำหนดค่า userName ก็จะ console log ออกมาเป็น สวัสดี ซา! โดยใช้การ interpolate แต่ถ้าไม่ได้เขียนชื่อก็จะแค่ทักทายว่า สวัสดี!

userName ? console.log(`สวัสดี, ${userName} !`) : console.log('สวัสดี!');

สร้าง variable ชื่อ userQuestion โดยเท่ากับสตริงคำถามที่เราอยากจะให้ 8 ball ทำนายออกมา โดย console log ออกมาเป็น คำถามของคุณคือ: ….

let userQuestion = "จากวันนี้ถึงวันวาเลนไทน์ปีหน้าจะมีแฟนหรือเปล่า"
console.log(`คำถามของคุณคือ: ${userQuestion}`);

มาถึง core ของ 8 ball คือการทำ random ตัวแลก 1–7 (เพื่อที่จะทำนายคำตอบ)โดยให้ expression นี้เท่ากับ randomNumber

let randomNumber = Math.floor(Math.random()*8);

ขั้นตอนต่อมาคือการสร้าง control flow โดยการนำ random number ที่เราสร้างข้างบนมาใช้ โดยให้ 8 ball (eightฺBall) เท่ากับ สำนวนคำทำนาย ในที่นี้คือคำตอบที่เราอยากให้มันทำนายออกมานั้นเอง ในขั้นตอนนี้ผมจะทำแบบ switch case ให้ดูนะครับ ถ้าใครอยากลองสามารถนำโค้ดไปเปลี่ยนเป็น if/else statement ได้

let eightBall = "";switch (randomNumber){
case 0:
eightBall = 'แน่นอน!';
break;
case 1:
eightBall = 'สวรรค์กำหนดมาให้เป็นอย่างนั้นอยู่แล้ว';
break;
case 2:
eightBall = 'สัญญาณมันลางๆไม่สามารถบอกได้';
break;
case 3:
eightBall = 'ยังไม่สามารถคาดการณ์ได้';
break;
case 4:
eightBall = 'ปล่อยว่างเหอะ';
break;
case 5:
eightBall = 'ไม่หรอกจากแหล่งข้อมูลที่ฉันได้ยินมา';
break;
case 6:
eightBall = 'แนวโน้มไม่ค่อยดี';
break;
case 7:
eightBall = 'มีสัญญาณที่บ่งบอกว่าใช่';
break;
}

อย่าลืม console log คำทำนายของ 8 ball ออกมานะครับ

console.log(eightBall)

สรุป

8 ball เป็นเกมส์ที่เล่นง่ายไม่ยืดเยื้อแถมยังได้ใช้ control flow อย่าง Switch Statement ให้ execute ตาม case ที่มีเลขที่ random ออกมาเหมือนกันใน JavaScript อีก เพื่อน ๆ สามารถทำความเข้าใจ Switch Statement ได้ที่นี้นะครับ ถ้าใครอยากลองเล่นเกมส์ข้างบน สามารถนำโค้ดไปวางที่ https://playcode.io/ เพื่อลองเล่นได้นะครับ ได้ผลลัพธ์อะไรมาแชร์กันด้วยนะครับ

สุดท้ายแล้ว…การรักเขา แต่เขาไม่รู้ “ยังดีกว่าเขารับรู้แต่เขาไม่รัก” นะครัชชชช

--

--

Isa

Detail-Data oriented with skills in Web Development