0

私はテキストベースのアドベンチャーゲームを作っています。ゲーム名(マルーン)を大きくしたり、線で作ったりしたい。これどうやってするの?

私が欲しいものの例は次のようなものです:

╔=╗╔=╗───╔╗────────╔╗────╔╗─╔╗──╔╗╔╗────╔===╦╗║║╚ ║║───║║────────║║────║║─║║──║║║║────╚╗╔╗║║║╔╗╔ ╦╣║╔╦==╦╗─╔╣║╔==╗║╚=╝╠==╣║║║╔==╗─║║║║╚= ║║║║║║╔╗╠╣╚╝╣╔╗║║─║║║║╔╗║║╔=╗║║=╣║ ║╔╗║║=╣║║║║║║╔╗║║╔╗╣╔╗║╚=╝║╚╣╔╗║╚╣╔╗║ ╝║║║║╚╝║╚╝║║=╣╚╝╚╝╚╩╝╚╩╩╝╚╩╝╚╩=╗ ╩╝╚╝╚===╩╝╚╩==╣╔=╩==╝───────────────╔=╝║─────────── ─────────────────────║║───────────────╚==╝──────── ───────────────────────╚╝

しかし、より目に見えます。また、これをコンパイルすると、?'sで出力されます。したがって、テキストはコンパイラに対応している必要があります。

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文字コードここ>を使用することです。これにより、アンダースコアやダッシュの代わりにこれらの境界文字を印刷できます。

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 に答える