คิดจะ "สุ่ม" คิดถึง Chance.js

โจทย์ง่ายๆ ของวันนี้คือ อยาก Random เลขเพื่อทำ Item Drop Chance พบว่าไม่ชอบ Random Code ปกติบน Javascript เลยลองค้นหาดู พบกับของดีเข้า นั่นคือ Chance.js

ผมทำงานบน Node.js Platform วิธีการลงก็ง่ายมาก เพราะมีอยู่ที่ npm อยู่แล้ว
$ npm install chance
ซึ่งหากใช้บน Platform อื่น ผมทิ้ง Link ไว้ให้ที่นี่นะ --> http://chancejs.com

วิธีการใช้งานก็ง่ายมากเลย ขั้นแรกต้องสร้าง Generator Object ด้วย Chance Module ก่อน


var Chance = require('chance'),
    chance = new Chance();

มาดูการใช้งานเบื้องต้นกันก่อน เช่น ผมจะสุ่ม Floating Point ให้มีค่าตั้งแต่ 0.001 - 0.100 โดยกำหนดทศนิยมหลังจุด 3 ตำแหน่ง
ซึ่งถ้าเขียนด้วยวิธีปกติ นี่ผมยังคิดท่าเท่ๆ ไม่ออกเลย = =' แต่มาดูการใช้งาน Chance.js นะครับ

var random = chance.floating({min: 0.001, max: 0.100, fixed: 3});
  console.log(random);

เท่านี้เอง ใช้ง่ายมากเลย :) และอีกเหตุผลที่ผมแนะนำให้ใช้ Library ตัวนี้อีกเรื่องคือการแกว่งของการ Random น้อยมาก
ผมทดสอบสุ่มค่า Integer ระหว่าง 1 - 100 จำนวน 100 รอบและทดสอบค่า 70/30 เงื่อนไขง่ายๆ คือดูจากค่าที่ถูกสุ่มออกมา อยู่ในระหว่าง 0 - 70 และค่าที่อยู่ระหว่าง 71 - 100
ซึ่งในการทดสอบมีค่า T และ F โดยถ้าตก 70% จะให้ค่า T + 1 และถ้าไม่ ให้ค่า F + 1

จะเห็นได้ว่าค่าที่ได้ออกมา แกว่งน้อยมาก :) 
และอีกเหตุผลหนึ่งที่แนะนำให้ใช้ Module ตัวนี้คือ "Random Almost Everything" 
ไม่ผิดครับ เกือบทุกอย่างจริงๆ (เพื่อนผมให้ Random อาหาร แม่งดันไม่มี = =' จึงต้องใช้คำว่าเกือบ)
  • ข้อมูลพื้นฐาน (ตัวเลขทุกชนิด)
  • ข้อความ (ประโยค, คำ)
  • ชื่อ
  • ข้อมูลใน Interner (Facebook ID, Email)
  • ที่อยู่ (ถนน, เมือง, Latitude, Longitude บนโลกใบนี้)
  • เวลา (เวลาทั่วไป, UNIX Timestamp)
  • ข้อมูลทางการเงิน (บัตรเครดิต, ค่าเงิน)
ลองนำไปใช้กันดูนะ ... ใช้ง่ายมากกกกก :)

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android