#include<iostream>
#include<cstdlib>
#include<windows.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
string n,l,p;
int m;
int num;
string s[12] = {
"kedaoi",
"GESP",
"iostream",
"bits/stdc++.h",
"return",
"BUG",
"desmos",
"using",
"namespace",
"std",
"Hello keda!",
"Bye luogu!"
};
string oj[5] = {
"I'm from the China.",
"How old are you?",
"Keda is my god!",
"Do you have any friends?",
"What's your favorite stalk?"
};
string o[6] = {
"你好",
"兴安岭",
"可达",
"中华人民共和国",
"小日子" ,
"笔记本电脑"
};
string k[6] = {
"123",
"456",
"54198",
"1145141919810",
"000001",
"1235678"
};
void kso(string s,int n){//逐字输出函数,s是逐字输出文段,n是输出间隔
for(int i = 0;i<s.size();i++){
cout << s[i];
Sleep(n);
}
}
void ppp(int n,int m){
for(int i = 1;i<=n;i++){
cout << "\n";
}
for(int i = 1;i<=m;i++){
cout << "\t";
}
}
int main(){
system("title 打字练习机");
system("color 1C");
system("CLS");
ppp(10,5);
kso("是否跳过教程A、是 B、否\n",20);
ppp(1,5);
cin >> n;
if(n=="B" || n=="b"){
system("CLS");
ppp(10,0);
kso("很简单,就是打字练习。开局输入选项按回车或空格就行了。打字环节照着它上面给的示例来打字。如果连续5次打字失败,就会提醒你好好打。",20);
Sleep(6000);
}
system("CLS");
ppp(10,5);
kso("欢迎来到打字练习机1.3.7版",20);
Sleep(1500);
ppp(1,4);
kso("请问您要做什么?a、打字练习 b、退出 c、查看更新日志",30);
ppp(1,5);
cin >> n;
if(n=="A" || n=="a"){//开始打字
system("CLS");
ppp(10,5);
kso("进行什么打字?a、英文 b、中文 c、数字",15);
ppp(1,5);
cin >> n;
if(n=="a" || n=="A"){
system("CLS");
ppp(10,5);
kso("进行什么样式打字?a、词汇 b、句子",15);
ppp(1,5);
cin >>n;
if(n=="a" || n=="A"){//英文单词打字
double start=clock();
for(int i = 0;i<=11;i++){
system("CLS");
ppp(10,7);
kso(s[i],10);
ppp(1,7);
getline(cin,l);
if(l==s[i]){
num=0;
continue;
}
else{
if(num==5){
system("CLS");
ppp(10,7);
kso("好好打,不打就退出",15);
Sleep(2000);
i--;
num=0;
system("CLS");
continue;
}else{
i--;
num++;
continue;
}
}
}
double end=clock()/1000;
system("CLS");
ppp(10,5);
kso("您一共耗时了",20);
cout << end;
kso("秒",20);
Sleep(2000);
ppp(1,5);
kso("平均每个单词耗时",20);
printf("%.1lf",end*1.0/12);
kso("秒",20);
Sleep(4000);
}else if(n=="B" || n=="b"){//英文句子打字
double start=clock();
for(int i = 0;i<=4;i++){
system("CLS");
ppp(10,7);
kso(oj[i],10);
ppp(1,7);
getline(cin,l);
if(l==oj[i]){
num=0;
continue;
}
else{
if(num==5){
system("CLS");
ppp(10,7);
kso("好好打,不打就退出",15);
Sleep(2000);
i--;
num=0;
system("CLS");
continue;
}else{
i--;
num++;
continue;
}
}
}
double end=clock()/1000;
system("CLS");
ppp(10,5);
kso("您一共耗时了",20);
cout << end;
kso("秒",20);
Sleep(2000);
ppp(1,5);
kso("平均每个句子耗时",20);
printf("%.1lf",end*1.0/5);
kso("秒",20);
Sleep(4000);
}
}else if(n=="b" || n=="B"){//词汇打字
double start=clock();
for(int i = 0;i<=5;i++){
system("CLS");
ppp(10,7);
kso(o[i],10);
ppp(1,7);
getline(cin,l);
if(l==o[i]){
num=0;
continue;
}
else{
if(num==5){
system("CLS");
ppp(10,7);
kso("好好打,不打就退出",15);
Sleep(2000);
i--;
num=0;
system("CLS");
continue;
}else{
i--;
num++;
continue;
}
}
}
double end=clock()/1000;
system("CLS");
ppp(10,5);
kso("您一共耗时了",20);
cout << end;
kso("秒",20);
Sleep(2000);
ppp(1,5);
kso("平均每个单词汇耗时",20);
printf("%.1lf",end*1.0/6);
kso("秒",20);
Sleep(4000);
}else if(n=="c" || n=="C"){//数字打字
double start=clock();
for(int i = 0;i<=5;i++){
system("CLS");
ppp(10,7);
kso(k[i],10);
ppp(1,7);
getline(cin,l);
if(l==k[i]){
num=0;
continue;
}
else{
if(num==5){
system("CLS");
ppp(10,7);
kso("好好打,不打就退出",15);
Sleep(2000);
i--;
num=0;
system("CLS");
continue;
}else{
i--;
num++;
continue;
}
}
}
double end=clock()/1000;
system("CLS");
ppp(10,5);
kso("您一共耗时了",20);
cout << end;
kso("秒",20);
Sleep(2000);
ppp(1,5);
kso("平均每组数耗时",20);
printf("%.1lf",end*1.0/6);
kso("秒",20);
Sleep(4000);
}
system("CLS");
ppp(10,5);//彩蛋环节
system("color 3D");
kso("是否查看彩蛋?A、是 B、否",20);
ppp(1,5);
cin >> n;
if(n=="A" || n=="a"){
system("CLS");
ppp(10,5);
kso("参与本作品的有:lhz2111(hydro账号)",20);
Sleep(4000);
system("CLS");
ppp(10,5);
kso("本人keda账号:李昊泽1",20);
Sleep(4000);
system("CLS");
ppp(10,5);
kso("作品制作不易,整整334行",20);
Sleep(4000);
system("CLS");
ppp(10,5);
kso("求大佬一个支持呗",20);
Sleep(4000);
system("CLS");
ppp(10,5);
kso("奥,对了。我建了一个域,加域的话用这个网址:",20);
ppp(1,5);
kso("https://hydro.ac/d/rwqjqj/domain/join?code=rwq21o。我们欢迎您的到来",20);
Sleep(8000);
system("CLS");
ppp(10,5);
kso("圆周率前100位:3.141592653589793238462643383279502384197169399375105",20);
ppp(1,5);
kso("820974944592307816406286208998628034875342117068",20);
Sleep(4000);
system("CLS");
ppp(10,7);
kso("感谢游玩!",20);
Sleep(2000);
}else{
system("CLS");
ppp(10,5);
kso("欢迎下次光临",20);
Sleep(4000);
}
}else if(n=="b" || n=="B"){//开局B选项
system("CLS");
ppp(10,5);
kso("欢迎下次光临",20);
Sleep(4000);
}else if(n=="c" || n=="C"){//开局C选项
system("color 5A");
system("CLS");
ppp(10,5);
kso("2024年1月22日首个版本发布103行(1.0版)",20);
ppp(1,5);
Sleep(2000);
kso("2024年1月23日更新中文打字(1.1版)",20);
Sleep(2000);
ppp(1,5);
kso("2024年1月23日更新打字时间和打字速度180行(1.2版)",20);
Sleep(2000);
ppp(1,5);
kso("2024年1月23日更新数字打字248行(1.3版)",20);
Sleep(2000);
ppp(1,5);
kso("2024年1月24日更新教程,改进了彩蛋 271行(1.3.5版)",20);
Sleep(2000);
ppp(1,5);
kso("2024年1月24日更新英文句子打字 334行(1.3.7版)",20);
Sleep(2000);
ppp(2,5);
kso("更新日志查看完毕,请重新开始。",20);
Sleep(2000);
}
}