- C++
逆转裁判太没有技术含量了 所以我写了一个猜数字
- 2024-8-25 18:42:06 @
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<limits>
#include<fstream>
#include<cmath>
using namespace std;
int best[4];
void clear(){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
return;
}
const char* red(){
return "\033[1;31m";
}
const char* green(){
return "\033[1;32m";
}
const char* blue(){
return "\033[1;34m";
}
const char* purple(){
return "\033[1;35m";
}
const char* cyan(){
return "\033[1;36m";
}
const char* yellow(){
return "\033[33m";
}
const char* black(){
return "\033[1;30m";
}
int main()
{
ifstream is(".//game_record.txt");
if(is.good() == true){
is >> best[0] >> best[1] >> best[2] >> best[3];
}
cout << red() << "猜 " << green() << "数 " << blue() << "字" << endl << endl;
while(true) {
int sum = 1;
cout << purple() << "请选择难度:" << endl << cyan() << "1.简单(数字范围为0 ~ 100)" << endl << yellow() << "2.中等(数字范围为0 ~ 10000)" << endl << red() << "3.困难(数字范围为0 ~ 1000000)" << endl << black() << "4.地狱(数字范围为0 ~ 100000000)" << endl << endl << red() << "输入1~4选择难度" << endl << green();
int choose;
while(true) {
cin >> choose;
if(choose < 1 || choose > 4) {
clear();
}
else {
break;
}
}
srand(time(NULL));
unsigned long long num = pow(rand(),3);
cout << purple();
if(choose == 1) {
num %= 101;
cout << "您已选择简单难度" << endl;
}
else if(choose == 2) {
num %= 10001;
cout << "您已选择中等难度" << endl;
}
else if(choose == 3) {
num %= 1000001;
cout << "您已选择困难难度" << endl;
}
else {
num %= 100000001;
cout << "您已选择地狱难度" << endl;
}
while(true) {
int n;
cin >> n;
if(cin.fail() == true) {
clear();
cout << "请输入数字" << endl;
continue;
}
else if(n > num) {
cout << "太大了" << endl;
}
else if(n < num) {
cout << "太小了" << endl ;
}
else {
if(best[choose - 1] == 0){
best[choose - 1] = sum;
cout << "恭喜你 猜对了! 你一共猜了" << sum << "次!" << "这是你目前最好的记录!" << endl << endl;
}
else if(best[choose - 1] > sum){
cout << "恭喜你 猜对了! 你一共猜了" << sum << "次!" << "超越了你曾经的最好记录" << best[choose - 1] << "次!" << endl << endl;
best[choose - 1] = sum;
}
else{
cout << "恭喜你 猜对了! 你一共猜了" << sum << "次!" << endl << endl;
}
break;
}
sum++;
}
cout << blue() << "输入1以再玩一局 输入2以退出游戏" << endl << green();
while(true) {
int h;
cin >> h;
if(h != 1 && h != 2){
clear();
}
else if(h == 1){
break;
}
else if(h == 2){
ofstream os(".//game_record.txt");
if(os.good() == true){
os << best[0] << ' ' << best[1] << ' ' << best[2] << ' ' << best[3];
}
cout << "\033[0m" << black();
return 0;
}
}
cout << endl;
}
}
4 comments
-
陈锦润 LV 8 @ 2024-8-28 10:14:11
成就比我想象中的难写啊 累死了
-
2024-8-27 8:56:38@
没有用
-
2024-8-25 21:06:04@
现在存档会存到一个叫game_recore的文本文件里 里面存的是你的最好成绩
-
2024-8-25 18:42:41@
逆转裁判太阴间了 根本写不完
- 1