Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为C++;_C++_Cmd_Simulation - Fatal编程技术网

C++ 如何为C++;

C++ 如何为C++;,c++,cmd,simulation,C++,Cmd,Simulation,我正在研究开发一款类似于hackRUN或uplink的基于文本的网络安全游戏,但我没有GUI编程经验,我怀疑我家里的任何人都想学习如何制作和运行.cpp文件。因此,我需要创建一个GUI,它具有一个类似于Linux或windows“cmd”的自定义命令行。该区域有可用的资源吗?您可以创建一个与整个窗口大小相同的文本框控件,并对其进行自定义,使其看起来像一个控制台。例如,将背景设置为黑色,将字母的颜色设置为白色,等等 如何创建文本框取决于您使用的UI框架。对于C++,有MFC或管理的WrFrm,或者

我正在研究开发一款类似于hackRUN或uplink的基于文本的网络安全游戏,但我没有GUI编程经验,我怀疑我家里的任何人都想学习如何制作和运行.cpp文件。因此,我需要创建一个GUI,它具有一个类似于Linux或windows“cmd”的自定义命令行。该区域有可用的资源吗?

您可以创建一个与整个窗口大小相同的文本框控件,并对其进行自定义,使其看起来像一个控制台。例如,将背景设置为黑色,将字母的颜色设置为白色,等等


如何创建文本框取决于您使用的UI框架。对于C++,有MFC或管理的WrFrm,或者可以使用WPF在C语言中创建UI部分,并使用C++和CLI作为C++与C语言之间的桥梁。但是如果你想让它同时在Windows和Linux上运行,你可以使用wxWidgets或Qt。

你可以通过从用户那里读取一行并在第一个空格(Python/pseudocode*)上拆分来模拟命令行:

例如,
readbook
是带有参数
book
的命令
read

然后,您可以使用自己的逻辑处理他们发出的命令。这种方法的优点是,您可以通过桌面上的快捷方式(无论是linux还是windows)运行游戏,操作系统控制台将支持交互

有一类叫做“文本冒险”的游戏,在图形有限或不存在的时候很流行,你可能会发现它们特别相关。考虑使用现有的文本冒险引擎,这样你可以专注于游戏本身,而不是文本输入和解析的机制。


考虑用Python或类似的脚本语言编写这段代码,因为它们提供了对字符串的直接处理。对于命令行风格的家庭游戏,你不太可能需要C++的原始能力和复杂性。或者一个可以模拟GUI某些方面的命令行界面?而且,您的家人不必编译源代码来运行程序,是吗?你总是可以给他们二进制文件…是的,你可以通过Visual Studio轻松做到这一点,如果你只想使用windows,那么我想说的下一个最好的事情是GTK+,它是跨平台的,使用起来有点困难。你的实际问题是什么,你尝试了什么?你被困在哪里了?我的问题是我在编程逻辑方面很有能力,但我不知道从哪里开始使用GUI。谢谢,那是我开始的好地方。非常感谢!除非需求是提供一个看起来像控制台的GUI(而不是一个看起来像控制台的控制台),否则在任何实际工作开始之前,这将导致大量GUI混乱。以后,当你有一个有效的游戏时,一定要这样做。在你的评论我的回答中,你提到这是一个学习C++的练习;使用WINFALSE和MFC,你只会学习一些烦人的Windows API,不一定是C++本身。它们现在也不是最佳实践,在线教程也不会出现在C++11中,而C++11应该是初学者的起点。祝你好运。我很欣赏你的建议,尽管我想用C++来提高我的语言能力,因为我这学期学的是那种语言。谢谢你的邀请help@user1803796:最好在问题中包含所有相关信息;这将帮助你得到最有用的答案。通常包含较少的信息会导致人们给出更一般的答案,就像这里发生的那样。但是,建议从提示符中逐行读取命令,另一种方法是编写大量GUI垃圾,只为您提供相同的输入框。

for line in raw_input():
    command,arguments = line.split(' ',1)