成语接龙带颜色

#include<iostream>
#include<string>
#include<fstream>
#include<Windows.h>
using namespace std;

class Game {
private:
    string firstword;
    string secondword;
    bool first = true;
    ofstream fout;
public :
    void Begin();
};
void Game::Begin() {
    fout.open("info.txt");
    if (!fout.is_open()) {
        cout << "open info.txt error" << endl;
    }
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
    cout << "请输入成语:" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
    
    cin >> firstword;
    fout << firstword << "\n";
    int length = 0;
    while (true) {
        if (!first) {
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
            cout << "输入接龙成语" << endl;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
            cin >> secondword;
            if (secondword == "exit") {
                system("pause");
                exit(0);
            }
        }
        length = firstword.length();
        string firstend;
        string secondbegin;
        /*如果是utf-8需要加下面这句
        firstend += firstword[length - 3];
        */
        firstend += firstword[length - 2];
        firstend += firstword[length - 1];
        if (!first) {
            secondbegin += secondword[0];
            secondbegin += secondword[1];
            /*如果是utf-8需要加下面这句
            secondbegin += secondword[2];
            */
            if (firstend == secondbegin) {
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
                cout << "<|接龙成功|>" << endl;
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
                fout << secondword << "\n";
            }
            else {
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
                cout << "[接龙失败],上个成语为  \"" << firstword<<"\"" << endl;
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
                continue;
            }
            firstword = secondword;
            fout.flush();
        }
        first = false;
    }
}
int main() {
    Game *a =new Game ;
    a->Begin();
    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值