0

I'm making a text based adventure game. I want to have the game name (marooned) in large or made out of lines. How can I do this?

An example of what I want is something like this:

╔═╗╔═╗───╔╗────────╔╗────╔╗─╔╗──╔╗╔╗────╔═══╦╗ ║║╚╝║║───║║────────║║────║║─║║──║║║║────╚╗╔╗║║ ║╔╗╔╗╠══╦╣║╔╦══╦╗─╔╣║╔══╗║╚═╝╠══╣║║║╔══╗─║║║║╚═╦══╦══╦══╗* ║║║║║║╔╗╠╣╚╝╣╔╗║║─║║║║╔╗║║╔═╗║║═╣║║║║╔╗║─║║║║╔╗║╔╗║╔╗║║═╣ ║║║║║║╔╗║║╔╗╣╔╗║╚═╝║╚╣╔╗║║║─║║║═╣╚╣╚╣╔╗║╔╝╚╝║║║║╚╝║╚╝║║═╣ ╚╝╚╝╚╩╝╚╩╩╝╚╩╝╚╩═╗╔╩═╩╝╚╝╚╝─╚╩══╩═╩═╩╝╚╝╚═══╩╝╚╩══╣╔═╩══╝ ───────────────╔═╝║───────────────────────────────║║ ───────────────╚══╝───────────────────────────────╚╝

but more visible. And also when this is compiled it comes out in ?'s. So I need the text to be compiler friendly.

4

2 回答 2

3

在 Windows 上,使用宽字符串文字:

wchar_t * titleStr= L"╔═╗╔═╗───╔╗────────╔╗────╔╗─╔╗──╔╗╔╗────╔═══╦╗\n"
                    L"║║╚╝║║───║║────────║║────║║─║║──║║║║────╚╗╔╗║║\n"
                    L"║╔╗╔╗╠══╦╣║╔╦══╦╗─╔╣║╔══╗║╚═╝╠══╣║║║╔══╗─║║║║╚═╦══╦══╦══╗*\n"
                    L"║║║║║║╔╗╠╣╚╝╣╔╗║║─║║║║╔╗║║╔═╗║║═╣║║║║╔╗║─║║║║╔╗║╔╗║╔╗║║═╣ \n"
                    L"║║║║║║╔╗║║╔╗╣╔╗║╚═╝║╚╣╔╗║║║─║║║═╣╚╣╚╣╔╗║╔╝╚╝║║║║╚╝║╚╝║║═╣ \n"
                    L"╚╝╚╝╚╩╝╚╩╩╝╚╩╝╚╩═╗╔╩═╩╝╚╝╚╝─╚╩══╩═╩═╩╝╚╝╚═══╩╝╚╩══╣╔═╩══╝ \n"
                    L"───────────────╔═╝║───────────────────────────────║║ \n"
                    L"───────────────╚══╝───────────────────────────────╚╝\n"
std::wcout<<titleStr;
于 2012-09-23T20:07:26.170 回答
0

有多种方法可以做到这一点。

最简单的方法是 cout (char)< ASCII character code here> 这将允许您打印这些边框字符而不是下划线和破折号。

ASCII字符及其代码列表位于http://www.cplusplus.com/doc/ascii/

您还可以尝试将所有文​​本转储到单独的文本文件中,读取并解析文件,然后将其打印到控制台。

像这样的东西:

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream reader("art.txt"); //Load the text
    std::string art = parseart(reader); //Parse the file
    std::cout << art << std::endl; //Print

    reader.close();
    return 0;
}

std::string parseart(std::ifstream& File) {
   std::string parsedfile;

   if(File) {
       while(File.good()) {
           std::string tmpline;
           std::getline(File, tmpline);
           tmpline += "\n";

           parsedfile += tmpline;
       }
       return parsedfile;
   } else {
       //Error
   }
于 2012-09-23T20:05:11.350 回答