低水平內容,有待指正,還請大家看完.
我們在注冊游戲時,有些用戶名游戲可以自動生成,下面帶大家來實作一下這一功能.
思路:
用三個可以容納字串的陣列(這里以string為例)存放一些字串,然后輸出他們,
舉個栗子:二次元世界的神奇小姐姐
二次元世界 → Where陣列
的 → 用cout輸出
神奇 → describe陣列
小姐姐 → Who陣列
這里如果使用string字串陣列,就是這句代碼:
cout<<Where[rand()]<<"的"<<Describe[rand()]<<Who[rand()];
Where陣列: 哪里
Describe陣列: 怎么樣(形容)
Who陣列: 誰
看到這里,很多猿和媛就要發話了,rand()重復怎么辦?
很簡單,用這句代碼放main里:
srand(time(0));
到此,思路差不多了,給大家放個例程,給個更完善的思路:
#include <iostream> #include <cstring> #include <string> #include <ctime> #include <cstdlib> #include <cstdio> #include <conio.h> using namespace std; string Where[]={"外星","宇宙","二次元","中國","美國","泰國","越南","澳洲","北極","南極","印度","韓國","日本","上海","東京","北京","南京","天津","湖南","湖北","河北","陜西","山西","河南","內蒙古","中國臺灣","大阪","名古屋","尼泊爾","四川","武漢","英國","巴基斯坦","伊朗","土耳其","海南","葡萄牙","西班牙","法國","瑞士","瑞典","荷蘭","釘釘","四維空間","三次元","四次元","五維空間","主世界","異世界"}; string describe[]={"神奇","無敵","超級","厲害","幽默","搞笑","膩害","好玩","","","","","","","","","隱忍","高興","流弊","軟萌","可愛","小小","好玩","炒雞可愛"}; string Who[]={"史蒂夫","史蒂夫大叔","牛仔","史萊姆","牛牛","羊羊","貓咪","狗狗","玩家","玩家","玩家","客人","騎士","TNT","紅鯉魚和綠鯉魚","紅鯉魚與綠鯉魚與驢","戰馬","小可愛","妹子"}; int main() { while(1) { cout<<"你的昵稱:"<<Where[rand()%(49-1)]<<"的"<<describe[rand()%(24-1)]<<Who[rand()%(19-1)]<<endl; cout<<"不滿意?按任意鍵以換一個昵稱"; getch(); system("cls"); } return 0; }
下面是我通過這個東東實作的玩家昵稱生成器plus:
/*各個函式的使用: 系統自帶的函式: rand() 亂數 sysytem(命令) 呼叫cmd命令 system("cls") 清屏 system("title 標題") 更改在視窗最上面的名字,一言難盡,自己開個程式試一hà吧 system("color *1*2") *1 代表背景 *2代表字體顏色(前景),*1*2中間不用加空格 Sleep(時間) 顧名思義,讓程式”休息“一小會,自己可以試一下,時間處填1000為1秒,以此類推 getch() 讓程式無需回車錄入一個字符,有點像system("pause"),只不過把按哪個鍵記錄下來了 goto 地點 用法:goto where;就會跳轉到寫有where:(沒有分號)的地方 自己搞的函式(當然都定義了): Enter(數量) 數量處填\n的數量,比如我填3程式就會換行三行 Space(數量) 數量處填3就會輸出三個空格 Tab(數量) 數量處 填3就會輸出三個Tab(\t) run(時間,提示語(string),回車數,空格數) 比如我填run(3,正在加載中,3,3)就會先輸出 3個換行再輸出3個空格再顯示3秒“正在加載中”的影片,自己可以復制粘貼試試看 conformity(換行數,空格數) 排版的一個工具,集合了Enter和Space,比如我填3和3就會 換3行再輸出3個空格 */ #include <algorithm> #include <iostream> #include <cstring> #include <string> #include <stack> #include <queue> #include <cmath> #include <windows.h> #include <cstdlib> #include <conio.h> #include <ctime> using namespace std; HWND hwnd=GetForegroundWindow();//讓hwnd代表最前端的視窗 void Enter(int x)//回車函式 { for(int i=1;i<=x;i++) cout<<endl; } void Space(int x)//空格函式 { for(int i=1;i<=x;i++) cout<<" "; } void Tab(int x)//制表符函式 { for(int i=1;i<=x;i++) cout<<"\t"; } void conformity(int a,int b)//排版函式 { Enter(a); Space(b); } void run(int x,string a,int enter,int space)//開始影片 { for(int i=1;i<=x;i++) { system("cls"); conformity(enter,space); cout<<a; if(i%3==1) cout<<"."; if(i%3==2) cout<<".."; if(i%3==0) cout<<"..."; Sleep(500); } } string Where[]={"外星","宇宙","二次元","中國","美國","泰國","越南","澳洲","北極","南極","印度","韓國","日本","上海","東京","北京","南京","天津","湖南","湖北","河北","陜西","山西","河南","內蒙古","中國臺灣","大阪","名古屋","尼泊爾","四川","武漢","英國","巴基斯坦","伊朗","土耳其","海南","葡萄牙","西班牙","法國","瑞士","瑞典","荷蘭","釘釘","四維空間","三次元","四次元","五維空間","主世界","異世界"}; string describe[]={"神奇","無敵","超級","厲害","幽默","搞笑","膩害","好玩","","","","","","","","","隱忍","高興","流弊","軟萌","可愛","小小","好玩","炒雞可愛"}; string Who[]={"史蒂夫","史蒂夫大叔","牛仔","史萊姆","牛牛","羊羊","貓咪","狗狗","玩家","玩家","玩家","客人","騎士","TNT","紅鯉魚和綠鯉魚","紅鯉魚與綠鯉魚與驢","戰馬","小可愛","妹子"}; string area;//存放地區 bool flag; char cheek,t; int main() { system("cls"); //清屏的好習慣 system("color 07");//顏色初始化 ShowWindow(hwnd,SW_MAXIMIZE);//視窗初始化 srand(time(0));//選取亂數種子 system("title 玩家昵稱生成器1.0");//設定標題 conformity(20,85);//排版 cout<<"玩家昵稱生成器"<<endl; Space(65);//空格 cout<<"你 愿意透露你的地區嗎?這將關乎到你的昵稱(昵稱始終是中文的)"<<endl; Space(78);//空格 cout<<"什么,我不愿透露我所在的地區?"<<endl<<endl; Space(78);//空格 cout<<"輸入Y以確認,N以不愿透露地區"; cheek=getch();//存放Y和N if(cheek=='n') {flag=true;cout<<cheek;goto there;}//如果不愿透露地區,就傳送到there: system("cls");//清屏 conformity(20,83);//排版 cout<<"請輸入你的地區(城市):"<<endl; Space(83);//空格 cin>>area;//輸入地區 there://傳送門 system("cls");//清屏 conformity(20,85);//排版 cout<<"玩家昵稱生成器"<<endl; Space(85);//空格 cout<<"按任意鍵以生成:"; getch();//實作按任意鍵 system("cls");//清屏 run(3,"in run",20,85);//"加載中"影片 here://傳送門 int ttt=rand()%31;//生成類似于抽獎機的字體滾動效果,什么效果見運行的exe for(int i=1;i<=ttt;i++) { system("cls");//清屏 conformity(20,85);//排版 if(flag==true) cout<<"你的昵稱:"<<Where[rand()%(49-1)]<<"的"<<describe[rand()%(24-1)]<<Who[rand()%(19-1)]; else cout<<"你的昵稱:"<<area<<"的"<<describe[rand()%(24-1)]<<Who[rand()%(19-1)]; } Enter(5);//回車 Space(85);//空格 cout<<"什么,我不滿意?按Tab鍵以換一個名字"<<endl; Space(85);//空格 cout<<"什么,我滿意了?按空格鍵以退出"; //排除法 t=getch(); if(t==' ') return 0;//退出 goto here;//傳送門 return 0; }
本人小學生,難怪有這么低水平的內容,還請各位前輩指正.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/54944.html
標籤:C++
下一篇:C++ PRIMER問題
