- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在通过深入研究一个项目(一个简单的 2d 游戏)来学习 C++。我试图实现一组作弊,但我在字符串操作方面是个新手。我确信会有比下面的代码更优雅的方式来实现我想要的。
根据要求,stringBuffer
只是一个包含最后 12 个按下字符的字符串。我把它放在前面是因为它在最后调整大小后被修剪,因此我的秘籍必须倒退。我在字符串操作方面非常菜鸟,我知道这里有问题,这就是为什么我要求对其进行查看并可能进行改进的原因。
//The following code is in my keyPressed function
cheatBuffer = (char)key + cheatBuffer;
cheatBuffer.resize(12);
string tempBuffer;
string cheats[3] = {"1taehc","2taehc","3taehc"};
for(int i = 0;i < 3;i++){
tempBuffer = cheatBuffer;
tempBuffer.resize(cheats[i].size());
if(cheats[i] == tempBuffer){
switch(i){
case 1:
//activate cheat 1
break;
case 2:
//active cheat 2
break;
case 3:
//active cheat 3
break;
}
}
}
代码分别为“cheat1”、“cheat2”和“cheat3”。我不禁想到这可能会好很多。任何见解将不胜感激。
最佳答案
您可能要考虑使用:
std::map<std::string, std::function<void ()>>
(如果你可以使用C++0x)
std::map<std::string, std::tr1::function<void ()>>
(如果可以使用TR1)
std::map<std::string, boost::function<void ()>>
(如果你可以使用 Boost)
(当然,函数的签名可以不同)
使用 C++0x 的例子
#include <map>
#include <functional>
#include <string>
#include <iostream>
typedef std::map<std::string, std::function<void ()>> cheat_map;
inline void cheat1()
{
std::cout << "cheat 1 used!" << std::endl;
}
inline void cheat2()
{
std::cout << "cheat 2 used!" << std::endl;
}
int main()
{
cheat_map myCheats;
myCheats.insert(std::pair<std::string, std::function<void ()>>("cheat1", std::function<void ()>(cheat1)));
myCheats.insert(std::pair<std::string, std::function<void ()>>("cheat2", std::function<void ()>(cheat2)));
std::string buffer;
while (std::getline(std::cin, buffer)) {
if (!std::cin.good()) {
break;
}
cheat_map::iterator itr = myCheats.find(buffer);
if (itr != myCheats.end()) {
myCheats[buffer]();
}
}
}
输入:
notourcheat
cheat1
cheat2
cheat1
输出:
cheat 1 used!
cheat 2 used!
cheat 1 used!
关于c++ - 有没有更优雅的方法来实现 C++ 游戏的 "cheat code"实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651959/
我的一个 friend 提示说,SQL managment studio express 被他的系统管理员设置的一些安全设置禁止了。我推荐使用 OSQL 我的问题是 我需要一些基本命令,例如附加、分离
在 NLP 中,有一个 Gazetteer 的概念,它对于创建注释非常有用。据我了解, 地名词典由一组列表组成,其中包含城市、组织、星期几等实体名称。这些列表用于查找这些名称在文本中的出现情况,例如用
我正在尝试分析一些方法以查看哪些实现速度更快。我遇到了一个障碍,因为 java 似乎在每次请求时都不处理所有信息来欺骗配置文件。 public void Profile() { double[
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 个月前。 Improve this q
如果您正在编写游戏,您应该考虑作弊者以及如何防止他们作弊。 我认为不仅是 MMO 多人游戏,还包括单人游戏或“自制”p2p mp 游戏。 当游戏完全基于服务器-客户端架构时,我认为工作几乎完成,但也存
我找到了一个内存地址并使用 Cheat Engine 的指针扫描来获取引用指针。要在脚本中使用它,我需要一个基址,即 [game.exe+009274]。如何将其转换为在 AutoIt 脚本中使用的地
我几个月前开始编程。我正在 Animate CC 中制作一个完整的客户端游戏,因此我正在尝试一种针对内存扫描软件的简单措施。 我试图避免人们改变我的 money 变量。 var canMoneyCha
我怎样才能把我的按钮放在中间而不用任何类型的“margin cheat”(例如设置 margin-left: 525px;)? HTML H1 tag Pr
如何在不设置 padding 的情况下将我的 h1 标签置于 banner 的 middle 中心? HTML Group Title CSS .banner
我正在制作一个将分数发送到服务器的 C++11 游戏。我将分数存储为一个简单的 float ,因此人们使用像 Cheat Engine 这样的软件可以在将分数发送到服务器之前轻松更改分数的值。 如何保
是否可以避免在 Cheat Engine 中搜索值并设置它们(我在下面解释过,我需要什么)?我知道你可以找到地址指针并创建培训师,但问题是我使用 Cheat Engine 的应用程序被我的公司更新了很
我又回来了,沮丧并拼命寻求帮助:D。 我正在尝试为一个简单的程序创建一个作弊程序,它基本上是一个 .dll 文件,当它使用基地址注入(inject)主程序时,它将更改主程序中的整数值。问题是,我无法使
询问后this question (C++: Can I get out of the bounds of my app’s memory with a pointer?) , 我决定接受无法使用指针
关于计划 我有一个程序可以写入我正在试验的游戏的内存。当我使用常规静态地址时,代码对我来说很好,但由于某种原因,一旦找到工作指针,我似乎就无法做到这一点。例如,我在指针扫描几次后在 Cheat Eng
简而言之,如何在 Linux 中搜索、查看和修改内存中的值,最好尽可能轻松/简单。 Like this . 最佳答案 最接近的是 scanmem sudo apt-get install scanme
我有一个程序,在那个程序中有一些变量(用户名和“特权级别”)只有在用户登录时才会改变。有没有办法在程序运行时“保护”这些变量免受内存编辑等的影响,但如果用户使用其他用户名登录,程序仍然能够更改它们。
我正在编写一个策划游戏,这是我的代码: import java.util.*; public class mm { public static void main(String[] args)
我一直在通过深入研究一个项目(一个简单的 2d 游戏)来学习 C++。我试图实现一组作弊,但我在字符串操作方面是个新手。我确信会有比下面的代码更优雅的方式来实现我想要的。 根据要求,stringBuf
我想使用像 text-indent:-9999em 或负边距这样的技术来用更漂亮的图片替换我的文本,但我想知道搜索引擎是否会将此视为一种作弊? 我想它要知道这一点,它必须读取我的 CSS 文件,所以我
我最近学习了如何使用 Cheat Engine 查找进程的基地址。我在 Windows XP 上用 Solitaire 做到了这一点,我找到了分数的基地址(类似于 000AABBC)并且该地址从未改变
我是一名优秀的程序员,十分优秀!