คิดจะ "สุ่ม" คิดถึง Chance.js
โจทย์ง่ายๆ ของวันนี้คือ อยาก Random เลขเพื่อทำ Item Drop Chance พบว่าไม่ชอบ Random Code ปกติบน Javascript เลยลองค้นหาดู พบกับของดีเข้า นั่นคือ Chance.js
ผมทำงานบน Node.js Platform วิธีการลงก็ง่ายมาก เพราะมีอยู่ที่ npm อยู่แล้ว
วิธีการใช้งานก็ง่ายมากเลย ขั้นแรกต้องสร้าง Generator Object ด้วย Chance Module ก่อน
มาดูการใช้งานเบื้องต้นกันก่อน เช่น ผมจะสุ่ม Floating Point ให้มีค่าตั้งแต่ 0.001 - 0.100 โดยกำหนดทศนิยมหลังจุด 3 ตำแหน่ง
ซึ่งถ้าเขียนด้วยวิธีปกติ นี่ผมยังคิดท่าเท่ๆ ไม่ออกเลย = =' แต่มาดูการใช้งาน Chance.js นะครับ
เท่านี้เอง ใช้ง่ายมากเลย :) และอีกเหตุผลที่ผมแนะนำให้ใช้ Library ตัวนี้อีกเรื่องคือการแกว่งของการ Random น้อยมาก
ผมทดสอบสุ่มค่า Integer ระหว่าง 1 - 100 จำนวน 100 รอบและทดสอบค่า 70/30 เงื่อนไขง่ายๆ คือดูจากค่าที่ถูกสุ่มออกมา อยู่ในระหว่าง 0 - 70 และค่าที่อยู่ระหว่าง 71 - 100
ซึ่งในการทดสอบมีค่า T และ F โดยถ้าตก 70% จะให้ค่า T + 1 และถ้าไม่ ให้ค่า F + 1
ผมทำงานบน 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)
- ข้อมูลทางการเงิน (บัตรเครดิต, ค่าเงิน)
ลองนำไปใช้กันดูนะ ... ใช้ง่ายมากกกกก :)
Comments
Post a Comment