โดยคร่าวๆ เกมนี้จะให้อักษรภาษาอังกฤษเรามี 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