โดยคร่าวๆ เกมนี้จะให้อักษรภาษาอังกฤษเรามี 6 ตัว แล้วก็จัดเรียงเป็นคำศัพท์ภาษาอังกฤษ ที่มีความยาวตั้งแต่ 3-6 ตัวอักษร และแข่งกับเวลาด้วย ดังนั้นถ้าพิมพ์คำศัพท์ได้เยอะหรือรู้คำศัพท์มากๆก็จะดี ด้วยเหตุนี้ผู้เขียนจึงนำเอาคำสั่ง SendKeys ใน C# มาประยุกต์ใช้ให้พิมพ์คำศัพท์แบบ Auto รวมกับการหา Database ที่รวบรวมคำศัพท์เอาไว้มากๆ (ก็หาจากกูเกิ้ลนั่นแหละ -.-")
รูปร่างหน้าตาของบอทของผู้เขียน
ผู้เขียนไม่ใช่คนแรกที่เป็นคนทำบอทตัวนี้ แต่ที่ผู้เขียนทำขึ้นมานั้นก็เพราะอยากพัฒนาทักษะการเขียนโปรแกรมเท่านั้นเอง วิธีการใช้บอทตัวนี้ก็คือ เมื่อเราได้อักษรภาษาอังกฤษมา 6 ตัวแล้ว ให้เราพิมพ์ใส่ลงไปในช่องว่างในโปรแกรมจากนั้นกดปุ่ม LET GO รอนับถอยหลัง 3 วินาที โปรแกรมจะทำการ Search คำศัพท์ที่ประกอบไปด้วยตัวอักษรอย่างน้อย 3 ตัวใน 6 ตัวนั้นใน Database จากนั้นก็ใช้คำสั่ง SendKeys ในการพิมพ์แบบ auto ซึ่งในแต่ละชุดตัวอักษรจะใช้เวลาไม่เกิน 5 วินาที แค่นี้เราก็สามารถทำคะแนนสูงๆได้อย่างสบายๆแล้วล่ะ
หลังจากที่ใช้บอทเล่นดู ก็เป็นแบบนี้
คะแนนห่างจากที่สองเยอะเหมือนกันนะ
ล่าสุดเข้าไปเล่น ก็เจอภาพนี้ น่าเศร้าใจ T T
ตัวอย่าง Code ของการเขียนบอท
ส่วนหัวของโปรแกรมที่จำเป็น :
using System.IO; using System.Collections; using System.Threading;การประกาศตัวแปรภายใน Class :
public string[] dic = new string[44943]; // 44943 is a number of data in database public string s; public ArrayList print = new ArrayList();ส่วนเริ่มต้น เมื่อทำการ Load Form :
StreamReader data;
data = File.OpenText(@".\data.txt"); //data.txt is database file
string st = data.ReadLine();
int i = 0;
while (st != null)
{
dic[i] = st;
st = data.ReadLine();
i++;
}
data.Close();action หลังจากกดปุ่มเริ่มต้นทำงาน :s = textBox1.Text; //textBox1.Text is an area to input 6 alphabets.
if (s.Length == 6)
{
for (int k = 0; k < dic.Length; k++)
{
int temp = 0;
for (int i = 0; i < dic[k].Length; i++)
if (s.Contains(Char.ToLower(dic[k][i])))
temp += 1;
if (temp == dic[k].Length)
{
print.Add(dic[k]);
}
}
Thread.Sleep(3000);
foreach (string i in print)
{
SendKeys.Send(i);
SendKeys.Send("{ENTER}");
}
print.Clear();
textBox1.Text = "";
}
หมายเหตุ : algorithm ที่ใช้ในการ search ยังมีบัคอยู่เล็กน้อย แต่สามารถอนุโลมได้ :P


No comments:
Post a Comment