疯狂猜颜色小游戏C++个人项目

@疯狂猜颜色小游戏

欢迎浏览

这是一个使用C++语言编写的控制台小游戏,详细代码如下,敬请参考,不足之处还请提出,我的联系方式:1207787189@qq.com

1、交互界面和功能

玩家进入游戏后可以选择游戏难度,选择成功后,系统将会显示相应个数的彩色汉字,玩家需要输入汉字的背景颜色编号,而不是汉字本身。
游戏主要有:
1.难度模式选择
2.汉字模块
3.系统工具模块
4.UI界面模块
在这里插入图片描述在这里插入图片描述
//游戏模式代码.h(GameModes.h)
#pragma once
class GameModes
{
public:
// 该变量用于表示不同难度下生成的颜色序号列表
int ColorNumList[MaxNum];
// 该变量用于表示某个模式下的字符长度
int modesLen;

void SimpleModes();  // 简单模式 1个
void NormalModes();  // 普通模式 3个
void HardModes();    // 难度模式 5个
void HellModes();    // 地狱模式 7个

private:
// 该函数根据选择的难度模式不同,生成对应不同的字符数据
void getModesData(int mIndex);
public:
GameModes();
~GameModes();
};

//游戏模式代码.cpp(GameModes.cpp)
#include “stdafx.h”
#include “GameModes.h”
#include “GameModes.h”
#include"SystemUI.h"

GameModes::GameModes()
{
//初始化颜色序号数组
for (int i = 0; i <= MaxNum; i++) {
ColorNumList[i] = 0;
}
this->modesLen = 0;
}

GameModes::~GameModes()
{
}
void GameModes::SimpleModes() {
this->modesLen = 1;
getModesData(this->modesLen);
}
void GameModes::NormalModes() {
this->modesLen = 3;
getModesData(this->modesLen);
}
void GameModes::HardModes() {
this->modesLen = 5;
getModesData(this->modesLen);
}
void GameModes::HellModes() {
this->modesLen = 7;
getModesData(this->modesLen);
}
void GameModes::getModesData(int mIndex) {
ColorCharset *cc = new ColorCharset();
for (int i = 0; i < mIndex; i++) {
this->ColorNumList[i] = cc->getColorOneCharset();
}
// 停顿1秒
Sleep(1000);
system(“CLS”);
}
//汉字模式.h
#pragma once
class ColorCharset
{
public:
int colorIndex[5]; // 该变量用于表示字体颜色序号(有默认值)

					// 该函数用于表示随机生成一个有背景颜色的汉字
					// 返回值:该字符的颜色序号
int getColorOneCharset();

private:
string charsetName[5]; // 该变量用于表示字符文字(有默认值)

						/* 该函数用于给字符串str添加序号为i(C++默认)的背景颜色
						4 - 红
						6 - 黄
						3 - 蓝
						2 - 绿
						7 - 白
						*/
void addColor(string str, int i);

// 该函数用于获取一个(0-4)的随机数(通过当前时间设置随机数)
int getRand();

public:
ColorCharset();
~ColorCharset();
};
//汉字模式.cpp
#include “stdafx.h”
#include “ColorCharset.h”

ColorCharset::ColorCharset()
{
this->colorIndex[0] = Red;
this->colorIndex[1] = Yellow;
this->colorIndex[2] = Blue;
this->colorIndex[3] = Green;
this->colorIndex[4] = White;

this->charsetName[0] = "红";
this->charsetName[1] = "黄";
this->charsetName[2] = "蓝";
this->charsetName[3] = "绿";
this->charsetName[4] = "白";

}

ColorCharset::~ColorCharset()
{
}
int ColorCharset::getRand()
{
SYSTEMTIME sys;
GetLocalTime(&sys);
Sleep(500);
int temp = (int)sys.wMilliseconds;
return (temp % 5);
}
void ColorCharset::addColor(string str, int i) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i);
cout << str << endl;
}
int ColorCharset::getColorOneCharset() {
// 从字符数组中随机获取一个汉字
string str = this->charsetName[this->getRand()];
// 从颜色数组中随机获取一个颜色序号
int i = this->colorIndex[this->getRand()];
// 按照随机生成的str和i获取一个有背景颜色的汉字
this->addColor(str, i);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
return i;
}
//系统工具.h
#pragma once
class SystemTool
{
public:
int CheckPlayerCinIndex();
void ClearUI();
public:
SystemTool();
~SystemTool();
};
//系统工具.cpp
#include “stdafx.h”
#include “SystemTool.h”

SystemTool::SystemTool()
{
}

SystemTool::~SystemTool()
{
}
int SystemTool::CheckPlayerCinIndex() {
int index = 0;
cin >> index;
if (!cin) {
cin.clear();
cin.sync();
return -1;
}
return index;
}
void SystemTool::ClearUI() {
system(“PAUSE”);
system(“CLS”);
system(“PAUSE”);
}
//系统UI.cpp
#include “stdafx.h”
#include “SystemTool.h”

SystemTool::SystemTool()
{
}

SystemTool::~SystemTool()
{
}
int SystemTool::CheckPlayerCinIndex() {
int index = 0;
cin >> index;
if (!cin) {
cin.clear();
cin.sync();
return -1;
}
return index;
}
void SystemTool::ClearUI() {
system(“PAUSE”);
system(“CLS”);
system(“PAUSE”);
}
//系统UI.h
#pragma once
#include"ColorCharset.h"
#include"GameModes.h"
#include"SystemTool.h"
class SystemUI
{
public:
GameModes g; // 该指针变量用于指向具体的游戏模式对象
SystemTool tool; // 该指针变量用于指向具体的系统辅助工具
ColorCharset cc; // 该指针变量用于指向具体的颜色字符对象

int resultList[MaxNum + 1]; // 该数组用于保存用户输入的游戏结果,最后一位用于保存用户输入的实际长度

string name;
void StartGame();

private:
int ChoiceModesIndex(); // 用于返回用户选择的游戏难度模式序号
bool CheckResult(); // 用于返回用户输入的结果与游戏结果是否一致
bool GetPlayerResult(); // 用于获取用户输入的颜色序号结果,返回是否成功获取结果
public:
SystemUI();
~SystemUI();
};
// 登陆.h
#pragma once
class DengLuGame
{
public:
string name;
void SetName();
string GetName(string name);
public:
DengLuGame();
~DengLuGame();
};
//登陆.cpp
#include “stdafx.h”
#include “DengLuGame.h”

DengLuGame::DengLuGame()
{
cout << “请为自己设置一个游戏昵称:” << endl;
SetName();
cout << “欢迎” << this->GetName(name) << “进入游戏” << endl;
cout << “请勿沉迷于游戏!!适度游戏!” << endl;
PAUSE;
}

DengLuGame::~DengLuGame()
{
}
void DengLuGame::SetName()
{
cin >> name;
this->name = name;
}
string DengLuGame::GetName(string name)
{
return name;
}
//主函数
#include “stdafx.h”

#include"SystemUI.h"
#include"DengLuGame.h"

int main()
{
string name;
DengLuGame d;
d.GetName(name);
int iround;
SystemUI s;
s.StartGame();
cout << “游戏已结束” << endl;
return 0;
}
//stdafx.h(必须包含的头文件等)
#include
#include
#include
#include<windows.h>
using namespace std;
#define PAUSE system(“pause”)
#define CLS system(“cls”)
#define PC PAUSE;CLS
const int MaxNum = 7; // 该常量表示最大难度时的颜色个数

const int SimpleModes = 1; // 简单模式序号
const int NormalModes = 2; // 普通模式序号
const int HardModes = 3; // 困难模式序号
const int HellModes = 4; // 地狱模式序号
const int ExitIndex = 5; // 退出系统序号

const int Red = 4; // 红
const int Yellow = 6; // 黄
const int Blue = 3; // 蓝
const int Green = 2; // 绿
const int White = 7; // 白

发布了2 篇原创文章 · 获赞 2 · 访问量 67
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览