cách tốt nhất để triển khai loại mã lừa đảo nói chung là gì? Tôi có ứng dụng WinForms trong tâm trí, nơi một mã cheat sẽ mở khóa một quả trứng Phục sinh, nhưng các chi tiết thực hiện không có liên quan.Làm cách nào để triển khai đúng mã cheat?
Cách tiếp cận tốt nhất mà tôi nghĩ là giữ chỉ mục cho từng mã - hãy xem xét mã DOOM nổi tiếng - IDDQD và IDKFA, trong ứng dụng C# hư cấu.
string[] CheatCodes = { "IDDQD", "IDKFA"};
int[] CheatIndexes = { 0, 0 };
const int CHEAT_COUNT = 2;
void KeyPress(char c)
{
for (int i = 0; i < CHEAT_COUNT; i++) //for each cheat code
{
if (CheatCodes[i][CheatIndexes[i]] == c)
{ //we have hit the next key in sequence
if (++CheatIndexes[i] == CheatCodes[i].Length) //are we in the end?
{
//Do cheat work
MessageBox.Show(CheatCodes[i]);
//reset cheat index so we can enter it next time
CheatIndexes[i] = 0;
}
}
else //mistyped, reset cheat index
CheatIndexes[i] = 0;
}
}
Đây có phải là cách phù hợp để thực hiện không?
Chỉnh sửa: Có lẽ điều tồi tệ nhất tôi nên làm là bao gồm các mã lừa đảo đầu tiên xuất phát từ đỉnh đầu của tôi làm ví dụ. Tôi thực sự đã không muốn xem mã nguồn của Doom hoặc thực hiện của họ, nhưng giải pháp chung cho vấn đề này.
nhưng mã của bạn có thể sẽ không hoạt động với các mã có độ dài thay đổi, phải không? – Axarydax
@Axarydax: Chắc chắn nó hoạt động. Kiểm tra lại :) –
xấu của tôi. Tôi không thấy phần "EndsWith";) – Axarydax