游戏开发日志支线4
2026-02-13 11:59:48
发布于:香港
接上回
游戏:Typing Game
更新版本:0.4
代码:李伙子ia
美术:也没美术啊
翻译:Artificial Intelligence
团队:新手团
这次主要更新的是繁体中文
· 切换:
std::string language="e"; //语言识别变量(c: 繁体中文, e: 英文)
/*大概逻辑*/
if(language=="c") std::cout<<"語言設置"<<std::endl;
else std::cout<<"Language setting"<<std::endl;
std::cout<<"- c: 繁體中文"<<std::endl;
std::cout<<"- e: English"<<std::endl;
if(language=="c") std::cout<<"切换成";
else std::cout<<"Change to";
std::cout<<" (c, e): ";
do{
std::cin>>language;
if(language=="c"||language=="e")break;
if(language=="c"){
std::cout<<"設置失敗"<<std::endl;
std::cout<<"請重新設置: "<<std::endl;
}else{
std::cout<<"Setup failed"<<std::endl;
std::cout<<"Please try again";
}
std::cout<<" (c, e): ";
}while(language!="c"||language!="e");
if(language=="c"){
std::cout<<"設置成功!"<<std::endl; //DEV-C++的功亂碼了
std::cout<<"按任意按鍵繼續 . . . ";
}else{
std::cout<<"Setting saved!"<<std::endl;
std::cout<<"Press any keys to contiune . . . ";
}
做到這裏我就累了,不是格式,而是亂碼
其實上面的繁體字是我重新打的,原本是這樣的:
if(language=="c") std::cout<<"粂ē砞竚"<<std::endl;
else std::cout<<"Language setting"<<std::endl;
std::cout<<"- c: 羉砰いゅ"<<std::endl;
std::cout<<"- e: English"<<std::endl;
if(language=="c") std::cout<<"ち传Θ";
else std::cout<<"Change to";
std::cout<<" (c, e): ";
do{
std::cin>>language;
if(language=="c"||language=="e")break;
if(language=="c"){
std::cout<<"砞竚ア毖"<<std::endl;
std::cout<<"叫穝砞竚: "<<std::endl;
}else{
std::cout<<"Setup failed"<<std::endl;
std::cout<<"Please try again";
}
std::cout<<" (c, e): ";
}while(language!="c"||language!="e");
if(language=="c"){
std::cout<<"砞竚Θ功!"<<std::endl; //砞竚Θ(gong)
std::cout<<"ヴ種龄膥尿 . . . ";
}else{
std::cout<<"Setting saved!"<<std::endl;
std::cout<<"Press any keys to contiune . . . ";
}
跟依托答辯似的
所以,窝会暂时出无繁体中文版暂时替代普通版
另外,还有一些小更新
std::string show(const std::string& str){
std::string result=str;
result=std::regex_replace(result,std::regex("\r")," [Enter]");
result=std::regex_replace(result,std::regex(" "),"Tab]"); //Tab]显示
return result;
}
std::vector<std::string> levels[]={ //主线关卡逻辑与地狱模式同步
{"Typing Game"},
{"fj"},
{"f f j j f j f j f f f j j j f j j j j f"},
{"ffff jjjj fff jjj ff jj fjfj jfjf fjjf jffj"},
{"dk"},
{"d d k k d k d k d d d k k k d k k k k d"},
{"dddd kkkk ddd kkk dd kk dkdk kdkd dkkd kddk"},
{"ff jj fj dd kk dk jf jjff kd kkdd fjdk kdjf fkjd kfdj ffffjjjjddddkkkk"},
{"sl"},
{"s s l l s l s l s s s l l l s l l l l s"},
{"ssss llll sss lll ss ll slsl lsls slls lssl"},
{"a;"},
{"a a ; ; a ; a ; a a a ; ; ; a ; ; ; ; a"},
{"aaaa ;;;; aaa ;;; aa ;; a;a; ;a;a a;;a ;aa;"},
{"ss ll sl aa ;; a; sl ssll a; aa;; sla; ;als s;la ;sal ssssllllaaaa;;;;"},
{"gh"},
{"g g h h g h g h g g g h h h g h h h h g"},
{"gggg hhhh ggg hhh gg hh ghgh hghg ghhg hggh"},
{"glad dad had half a glass as salad; dad shall ask glass flags had glass ask shall flask had slash jaff"}, //18
{"ru"},
{"r r u u r u r u r r r u u u r u u u u r"},
{"rrrr uuuu rrr uuu rr uu ruru urur ruur urru"},
{"ei"},
{"e e i i e i e i e e e i i i e i i i i e"},
{"eeee iiii eee iii ee ii eiei ieie eiie ieei"},
{"rr uu ru ee ii ei ru rruu ei eeii ruei ieur riue ireu rrrruuuueeeeiiii"},
};
const int32_t L=1,R=24;
int32_t typing_level(int32_t level){
int32_t wrong=0;
if(level<_L_||level>R)return -1;
std::vector<std::string> typing_words_lines=levels[level];
size_t lines=typing_words_lines.size();
for(size_t i=0;i<lines;i++){
std::string typing_words=typing_words_lines.at(i);
size_t len=typing_words.size();
std::cout<<show(typing_words)<<std::endl;
for(size_t j=0;j<len;){
unsigned char typing_key=_getch();
if(typing_key==27)return -27; //新增退出关卡选项
if(typing_key==typing_words.at(j)){
if(typing_words.at(j)==' ') std::cout<<"___"; //Tab]判断
std::cout<<"_";
j++;
}
else wrong++;
type_word_cnt++;
}
std::cout<<std::endl;
}
return wrong;
}
成品(无繁体中文版):
#include<iostream>
#include<string>
#include<conio.h>
#include<windows.h>
#include<chrono>
#include<vector>
#include<regex>
#include<stdint.h>
#include<cstdlib>
std::string show(const std::string& str){
std::string result=str;
result=std::regex_replace(result,std::regex("\r")," [Enter]");
result=std::regex_replace(result,std::regex(" "),"Tab]");
return result;
}
unsigned char main_menu_key,game_setting_key;
std::string timing_unit="s";
std::string name="";
int32_t type_word_cnt=0,pass_level_cnt=0;
std::vector<std::string> levels[]={
{"Typing Game"},
{"fj"},
{"f f j j f j f j f f f j j j f j j j j f"},
{"ffff jjjj fff jjj ff jj fjfj jfjf fjjf jffj"},
{"dk"},
{"d d k k d k d k d d d k k k d k k k k d"},
{"dddd kkkk ddd kkk dd kk dkdk kdkd dkkd kddk"},
{"ff jj fj dd kk dk jf jjff kd kkdd fjdk kdjf fkjd kfdj ffffjjjjddddkkkk"},
{"sl"},
{"s s l l s l s l s s s l l l s l l l l s"},
{"ssss llll sss lll ss ll slsl lsls slls lssl"},
{"a;"},
{"a a ; ; a ; a ; a a a ; ; ; a ; ; ; ; a"},
{"aaaa ;;;; aaa ;;; aa ;; a;a; ;a;a a;;a ;aa;"},
{"ss ll sl aa ;; a; sl ssll a; aa;; sla; ;als s;la ;sal ssssllllaaaa;;;;"},
{"gh"},
{"g g h h g h g h g g g h h h g h h h h g"},
{"gggg hhhh ggg hhh gg hh ghgh hghg ghhg hggh"},
{"glad dad had half a glass as salad; dad shall ask glass flags had glass ask shall flask had slash jaff"}, //18
{"ru"},
{"r r u u r u r u r r r u u u r u u u u r"},
{"rrrr uuuu rrr uuu rr uu ruru urur ruur urru"},
{"ei"},
{"e e i i e i e i e e e i i i e i i i i e"},
{"eeee iiii eee iii ee ii eiei ieie eiie ieei"},
{"rr uu ru ee ii ei ru rruu ei eeii ruei ieur riue ireu rrrruuuueeeeiiii"},
};
const int32_t L=1,R=24;
std::vector<std::string> _levels_[]={
{"Typing Game"},
{
"//cpp\r",
"#include<iostream>\r",
"using namespace std;\r",
"int main(){\r",
" cout<<\"Hello World!\"<<endl;\r",
" return 0;\r",
"}\r"
},
{
"#py\r",
"# -*- coding: utf-8 -*-\r",
"#welcome message\r",
"def welcome_message():\r",
" print(\"************************\")\r",
" print(\"* *\")\r",
" print(\"* Welcome to Typing! *\")\r",
" print(\"* *\")\r",
" print(\"************************\")\r",
"if __name__==\"__main__\":\r",
" welcome_message()\r"
}
};
const int32_t _L_=1,_R_=2;
int32_t typing_level(int32_t level){
int32_t wrong=0;
if(level<_L_||level>R)return -1;
std::vector<std::string> typing_words_lines=levels[level];
size_t lines=typing_words_lines.size();
for(size_t i=0;i<lines;i++){
std::string typing_words=typing_words_lines.at(i);
size_t len=typing_words.size();
std::cout<<show(typing_words)<<std::endl;
for(size_t j=0;j<len;){
unsigned char typing_key=_getch();
if(typing_key==27)return -27;
if(typing_key==typing_words.at(j)){
if(typing_words.at(j)==' ') std::cout<<"___";
std::cout<<"_";
j++;
}
else wrong++;
type_word_cnt++;
}
std::cout<<std::endl;
}
return wrong;
}
int32_t _typing_level_(int32_t _level_){
int32_t _wrong_=0;
if(_level_<_L_||_level_>R)return -1;
std::vector<std::string> _typing_words_lines_=_levels_[_level_];
size_t _lines_=_typing_words_lines_.size();
for(size_t i=0;i<_lines_;i++){
std::string _typing_words_=_typing_words_lines_.at(i);
size_t _len_=_typing_words_.size();
std::cout<<show(_typing_words_)<<std::endl;
for(size_t j=0;j<_len_;){
unsigned char _typing_key_=_getch();
if(_typing_key_==27)return -27;
if(_typing_key_==_typing_words_.at(j)){
if(_typing_words_.at(j)==' ') std::cout<<"___";
std::cout<<"_";
j++;
}
else _wrong_++;
type_word_cnt++;
}
std::cout<<std::endl;
}
return _wrong_;
}
int main(){
auto main_start=std::chrono::high_resolution_clock::now();
std::cout<<"What is your name?"<<std::endl;
std::cout<<"Your answer: ";
std::getline(std::cin,name);
system("cls");
while(1){
std::cout<<"Typing Game"<<std::endl;
std::cout<<"Version: 0.4"<<std::endl;
std::cout<<"ID: 001"<<std::endl;
std::cout<<"Name: "<<name<<std::endl;
std::cout<<"Main Menu"<<std::endl;
std::cout<<"Press [space] start the game"<<std::endl;
std::cout<<"Press 'x' go to hell mode"<<std::endl;
std::cout<<"Press [Esc] exit the game"<<std::endl;
std::cout<<"Press 's' change game settings"<<std::endl;
main_menu_key=_getch();
system("cls");
switch(main_menu_key){
case ' ':{
std::cout<<"Please choose a level"<<std::endl;
std::cout<<"Level "<<L<<"~"<<R<<": ";
int32_t level;
std::cin>>level;
std::cin.ignore();
system("cls");
std::cout<<"level "<<level<<std::endl;
auto start=std::chrono::high_resolution_clock::now();
int32_t wrong=typing_level(level);
auto end=std::chrono::high_resolution_clock::now();
if(wrong==-27){
system("cls");
break;
}
if(wrong==-1) std::cout<<"Level cannot be find it"<<std::endl;
else{
std::cout<<std::endl<<"Congratulation on pass the level!"<<std::endl;
int64_t use_time;
if(timing_unit=="s"){
use_time=std::chrono::duration_cast<std::chrono::seconds>(end-start).count();
}else if(timing_unit=="ms"){
use_time=std::chrono::duration_cast<std::chrono::milliseconds>(end-start).count();
}else if(timing_unit=="mus"){
use_time=std::chrono::duration_cast<std::chrono::microseconds>(end-start).count();
}else if(timing_unit=="ns"){
use_time=std::chrono::duration_cast<std::chrono::nanoseconds>(end-start).count();
}else{
use_time=std::chrono::duration_cast<std::chrono::seconds>(end-start).count();
}
std::cout<<"Used time: "<<use_time<<timing_unit<<", Wrong words: "<<wrong<<std::endl;
pass_level_cnt++;
}
std::cout<<"Press any keys to contiune . . . ";
_getch();
system("cls");
break;
}
case 'X':
case 'x':{
std::cout<<"Please choose a level"<<std::endl;
std::cout<<"Level "<<_L_<<"~"<<_R_<<": ";
int32_t _level_;
std::cin>>_level_;
std::cin.ignore();
system("cls");
std::cout<<"level "<<_level_<<std::endl;
auto _start_=std::chrono::high_resolution_clock::now();
int32_t _wrong_=_typing_level_(_level_);
auto _end_=std::chrono::high_resolution_clock::now();
if(_wrong_==-27){
system("cls");
break;
}
if(_wrong_==-1)std::cout<<"Level cannot be find it"<<std::endl;
else{
std::cout<<std::endl<<"Congratulation on pass the level!"<<std::endl;
int64_t _use_time_;
if(timing_unit=="s"){
_use_time_=std::chrono::duration_cast<std::chrono::seconds>(_end_-_start_).count();
}else if(timing_unit=="ms"){
_use_time_=std::chrono::duration_cast<std::chrono::milliseconds>(_end_-_start_).count();
}else if(timing_unit=="mus"){
_use_time_=std::chrono::duration_cast<std::chrono::microseconds>(_end_-_start_).count();
}else if(timing_unit=="ns"){
_use_time_=std::chrono::duration_cast<std::chrono::nanoseconds>(_end_-_start_).count();
}else{
_use_time_=std::chrono::duration_cast<std::chrono::seconds>(_end_-_start_).count();
}
std::cout<<"Used time: "<<_use_time_<<timing_unit<<", Wrong words: "<<_wrong_<<std::endl;
pass_level_cnt++;
}
std::cout<<"Press any keys to contiune . . . ";
_getch();
system("cls");
break;
}
case 'S':
case 's':{
std::cout<<"Game Settings"<<std::endl;
std::cout<<"Credits"<<std::endl;
std::cout<<"Author: ルia"<<std::endl;
std::cout<<"Art: No"<<std::endl;
std::cout<<"English translation: Artificial Intelligence"<<std::endl;
std::cout<<std::endl;
std::cout<<"Change setting"<<std::endl;
std::cout<<"Press 't' change the timing unit"<<std::endl;
std::cout<<"Press 'l' change the language"<<std::endl;
std::cout<<"Press [Esc] exit the game setting"<<std::endl;
std::cout<<std::endl;
std::cout<<"Suffer"<<std::endl;
std::cout<<"Typed Words: "<<type_word_cnt<<std::endl;
std::cout<<"Passed Levels: "<<pass_level_cnt<<std::endl;
game_setting_key=_getch();
system("cls");
switch(game_setting_key){
case 'T':
case 't':{
std::cout<<"Using timing unit: "<<timing_unit<<std::endl;
std::cout<<"Support units"<<std::endl;
std::cout<<"- s: second"<<std::endl;
std::cout<<"- ms: millisecond (1/1,000s)"<<std::endl;
std::cout<<"- mus: microsecond (1/1,000,000s)"<<std::endl;
std::cout<<"- ns: nanosecond (1/1,000,000,000s)"<<std::endl;
std::cout<<"Change to";
std::cout<<" (s, ms, mus, ns): ";
do{
std::cin>>timing_unit;
if(timing_unit=="s"||timing_unit=="ms"||timing_unit=="mus"||timing_unit=="ns")break;
std::cout<<"Setup failed"<<std::endl;
std::cout<<"Please try again";
std::cout<<" (s, ms, mus, ns): ";
}while(timing_unit!="s"||timing_unit!="ms"||timing_unit!="mus"||timing_unit!="ns");
std::cout<<"Setting saved!"<<std::endl;
std::cout<<"Press any keys to contiune . . . ";
_getch();
system("cls");
break;
}
case 27:{break;}
}
case 27:{
std::cout<<"Goodbye!"<<std::endl;
auto main_end=std::chrono::high_resolution_clock::now();
auto _cnt_time=std::chrono::duration_cast<std::chrono::seconds>(main_end-main_start).count();
std::cout<<"--------------------------------"<<std::endl;
std::cout<<"Process exited after "<<_cnt_time<<" seconds with return value 0"<<std::endl;
std::cout<<"Press any key to continue . . . ";
while(1) _getch();
}
}
}
}
}
最后,
bool @=...;
bool 关注=...;
bool 点赞=...;
bool 新手团团员=...;
int main(){
int key=_getch();
if(@||关注||点赞||!新手团团员){
新手团团员=true;
}else{
新手团团员=true;
}
}
这里空空如也



















有帮助,赞一个