公测版:
#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
using namespace std;
string val;int ans;
int money=0,sz1,time2;
bool isout=false;
bool Black;
void Color(int a){
if(Black==1) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0);return;}
if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);
if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}
void tab(int a,bool b)
{
for(int i=1;i<=a;i++)
cout<<'-';
if(b)cout<<'\n';
return ;
}
void csz()
{
while(!isout)
{
system("cls");
Color(2);
tab(8,1);
cout<<"游戏猜数字:\nmoney:"<<money<<"\n0:你猜\n1:computer猜(暂不支持)\n2:退出\n请选择(0~2)----";
cin>>val;
if(val=="0")
{
if(time(0)!=time2)
{
unsigned long long seed=time(0);
srand(seed);
time2=seed;
}
sz1=abs(rand())%100+1;
cout<<"7次机会,把握好吧!\n";
for(int i=1;i<=7;i++)
{
tab(8,1);
cout<<"还剩"<<7-i+1<<"次机会,请输入(1-100)----";
cin>>ans;
if(ans<=0||ans>101)
{
Color(4);
cout<<"\t错误:#001\n";
Color(2);
system("pause");
exit(1);
}
if(ans==101)
{
Color(4);
cout<<"确定退出吗?(0否,1是)";
tab(4,0);
cin>>val;
Color(2);
if(val=="1")
break;
else
i--;
}
if(ans<sz1)
cout<<"It's too small!\n";
else if(ans==sz1)
{
Color(11);
cout<<"恭喜你,猜到了"<<sz1<<'\n',money+=7-i+1;
Sleep(500);
break;
}
else if(ans>sz1&&ans!=101)
cout<<"It's too big!\n";
}
Sleep(500);
}
else if(val=="2")
isout=true;
}
}
int main()
{
while(!isout)
{
Color(2);
tab(8,1);
cout<<"money:"<<money<<"\n0:退出游戏\n1:游戏猜数字\n2:读取存档\n3:查看版本信息\n4:存档\n请选择(0~4)----";
cin>>val;
if(val=="0")
{
Color(4);
cout<<"是否存档?会覆盖原来的。(0否,1是)----";
cin>>val;
Color(2);
isout=true;
if(val=="1")
{
Color(5);
cout<<"正在存档中...\n";
ofstream out("游戏存档.out");
out<<money;
Sleep(500);
cout<<"存档完毕!\n";
Color(2);
}
}
else if(val=="1")
{
csz();
isout=false;
}
else if(val=="2")
{
Color(5);
cout<<"正在打开存档中...\n";
ifstream in("游戏存档.out");
in>>money;
Sleep(500);
cout<<"打开存档完毕!\n";
Color(2);
}
else if(val=="3")
{
Color(5);
cout<<"版本:1.0.10.3公测版\n作者:wbw121124\n邮箱:wbw121124@163.com wbw121124@qq.com\n错误信息:\n\t#001:输入错误\n";
Color(2);
system("pause");
}
else if(val=="4")
{
Color(4);
cout<<"是否存档?会覆盖原来的。(0否,1是)----";
cin>>val;
Color(2);
if(val=="1")
{
Color(5);
cout<<"正在存档中...\n";
ofstream out("游戏存档.out");
out<<money;
Sleep(500);
cout<<"存档完毕!\n";
Color(2);
}
}
system("cls");
}
tab(8,1);
system("pause");
return 0;
}
AI改编版:
#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
using namespace std;
const int MAX_CHANCE = 7; // 最大的猜测次数
const int MAX_NUMBER = 100; // 最大的随机数
const string SAVE_FILE = "游戏存档.out"; // 存档文件名
const string ERROR_INPUT = "输入错误,请重新输入!"; // 输入错误提示
int money = 0; // 当前剩余金钱
bool isout = false; // 是否退出游戏
bool Black = false; // 是否黑屏
unsigned int time2; // 用于随机数种子的时间戳
int random_number() {
// 随机生成数字
if (time(0) != time2) {
unsigned int seed = time(0);
srand(seed);
time2 = seed;
}
return abs(rand()) % MAX_NUMBER + 1;
}
bool is_file_exist(const string& file_name) {
// 判断文件是否存在
ifstream fin(file_name.c_str());
return fin;
}
void show_main_menu() {
// 显示主菜单
system("cls"); // 清屏
cout << "money:" << money << endl;
cout << "0:退出游戏\n1:游戏猜数字\n2:读取存档\n3:查看版本信息\n4:存档\n请选择(0~4)----";
}
void show_guessmenu() {
// 显示猜数字菜单
system("cls"); // 清屏
cout << "游戏猜数字:\nmoney:" << money << endl;
cout << "0:你猜\n1:computer猜(暂不支持)\n2:退出\n请选择(0~2)----";
}
void save_game() {
// 存档
cout << "是否存档?会覆盖原来的。(0否,1是)----";
string val;
cin >> val;
if (val == "1") {
cout << "正在存档中......\n";
ofstream fout(SAVE_FILE.c_str());
if (fout) {
fout << money;
cout << "存档完毕!" << endl;
} else {
cout << "存档失败!无法写入文件!" << endl;
}
}
}
void load_game() {
// 读取存档
if (is_file_exist(SAVE_FILE)) {
cout << "正在打开存档中......" << endl;
ifstream fin(SAVE_FILE.c_str());
if (fin) {
fin >> money;
cout << "打开存档完毕!" << endl;
} else {
cout << "无法打开存档文件!" << endl;
}
} else {
cout << "无法找到存档文件!" << endl;
}
}
void guess_number() {
// 猜数字游戏
int number = random_number();
cout << "7次机会,把握好吧!\n";
for (int i = 1; i <= MAX_CHANCE; i++) {
cout << "还剩" << MAX_CHANCE - i + 1 << "次机会,请输入(1-100)----";
int ans;
cin >> ans;
if (ans <= 0 || ans > MAX_NUMBER) {
cout << ERROR_INPUT << endl;
i--;
continue;
}
if (ans < number) {
cout << "It's too small!" << endl;
} else if (ans == number) {
int gain = MAX_CHANCE - i + 1;
cout << "恭喜你,猜到了" << number << ",获得" << gain << "个金币!" << endl;
money += gain;
break;
} else {
cout << "It's too big!" << endl;
}
}
system("pause");
}
void set_window() {
// 设置窗口大小和边框
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &SMALL_RECT({0, 0, 50, 20}));
SetWindowLong(GetConsoleWindow(), GWL_STYLE,
GetWindowLong(GetConsoleWindow(), GWL_STYLE) & ~(WS_MINIMIZEBOX | WS_SYSMENU));
}
void hide_cursor() {
// 隐藏光标
CONSOLE_CURSOR_INFO cursor_info;
cursor_info.dwSize = 1;
cursor_info.bVisible = false;
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void set_black() {
// 黑屏
Black = true;
system("color 00");
}
void set_white() {
// 白屏
Black = false;
system("color 07");
}
int main() {
set_window(); // 设置窗口
hide_cursor(); // 隐藏光标
set_white(); // 设置背景为白色
while (!isout) {
show_main_menu(); // 显示主菜单
cin >> val;
if (val == "0") {
save_game(); // 保存游戏
isout = true;
} else if (val == "1") {
show_guessmenu(); // 显示猜数字菜单
cin >> val;
if (val == "0") {
guess_number(); // 猜数字游戏
} else if (val == "2") {
isout = true;
} else {
cout << ERROR_INPUT << endl;
system("pause");
}
} else if (val == "2") {
load_game(); // 读取存档
system("pause");
} else if (val == "3") {
cout << "作者:wbw121124\n邮箱:wbw121124@163.com wbw121124@qq.com\n错误信息:\n\t#001:输入错误\n";
system("pause");
} else if (val == "4") {
save_game(); // 存档
} else {
cout << ERROR_INPUT << endl;
system("pause");
}
}
return 0;
}
普通版:
// 游戏1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
string val; int ans;
int money = 0, sz1;
unsigned int time2;
bool isout = false;
bool Black;
void set_window()
{
SetWindowPos(GetConsoleWindow(), HWND_TOPMOST, 0, 0, 400, 200, SWP_NOMOVE);
}
void Color(int a) {
if (Black == 1) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0); return; }
if (a == 0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
if (a == 3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
if (a == 4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
if (a == 5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
if (a == 6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
if (a == 7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
if (a == 9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE);
if (a == 10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
if (a == 11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN);
if (a == 12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
void tab(int a, bool b)
{
for (int i = 1; i <= a; i++)
cout << '-';
if (b)cout << '\n';
return;
}
void csz()
{
while (!isout)
{
system("cls");
Color(2);
tab(8, 1);
cout << "游戏猜数字:\nmoney:" << money << "\n0:你猜\n1:computer猜(暂不支持)\n2:退出\n请选择(0~2)----";
cin >> val;
if (val == "0")
{
if (time(0) != time2)
{
unsigned int seed = time(0);
srand(seed);
time2 = seed;
}
sz1 = abs(rand()) % 100 + 1;
cout << "7次机会,把握好吧!\n";
for (int i = 1; i <= 7; i++)
{
tab(8, 1);
cout << "还剩" << 7 - i + 1 << "次机会,请输入(1-100)----";
cin >> ans ;
// cout << ans << '\n';
if (ans <= 0||ans>100)
{
Color(4);
cout << "\t错误:#001\n";
Color(2);
system("pause");
exit(1);
}
if (ans < sz1)
cout << "It's too small!\n";
else if (ans == sz1)
{
Color(11);
cout << "恭喜你,猜到了" << sz1 << '\n', money += 7 - i + 1;
Sleep(500);
break;
}
else
cout << "It's too big!\n";
}
Sleep(500);
}
else if (val == "2")
isout = true;
}
}
int main()
{
set_window();
SetWindowLongPtrA(
GetConsoleWindow(),
GWL_STYLE,
GetWindowLongPtrA(GetConsoleWindow(), GWL_STYLE) & ~WS_SIZEBOX & ~WS_MINIMIZEBOX);
SetWindowLongPtrA(
GetConsoleWindow(),
GWL_STYLE,
GetWindowLongPtrA(GetConsoleWindow(), GWL_STYLE) & ~WS_SIZEBOX & ~WS_MAXIMIZEBOX & ~WS_CAPTION);
while (!isout)
{
Color(2);
tab(8, 1);
cout << "money:" << money << "\n0:退出游戏\n1:游戏猜数字\n2:读取存档\n3:查看版本信息\n4:存档\n请选择(0~4)----";
cin >> val;
if (val == "0")
{
Color(4);
cout << "是否存档?会覆盖原来的。(0否,1是)----";
cin >> val;
Color(2);
isout = true;
if (val == "1")
{
Color(5);
cout << "正在存档中...\n";
ofstream out("游戏存档.out");
out << money;
Sleep(500);
cout << "存档完毕!\n";
Color(2);
}
}
else if (val == "1")
{
csz();
isout = false;
}
else if (val == "2")
{
Color(5);
cout << "正在打开存档中...\n";
ifstream in("游戏存档.out");
in >> money;
Sleep(500);
cout << "打开存档完毕!\n";
Color(2);
}
else if (val == "3")
{
Color(5);
cout << "作者:wbw121124\n邮箱:wbw121124@163.com wbw121124@qq.com\n错误信息:\n\t#001:输入错误\n";
Color(2);
system("pause");
}
else if (val == "4")
{
Color(4);
cout << "是否存档?会覆盖原来的。(0否,1是)----";
cin >> val;
Color(2);
if (val == "1")
{
Color(5);
cout << "正在存档中...\n";
ofstream out("游戏存档.out");
out << money;
Sleep(500);
cout << "存档完毕!\n";
Color(2);
}
}
system("cls");
}
tab(8, 1);
system("pause");
return 0;
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件