本帖最後由 葉桔良 於 2022-10-29 16:58 編輯
備註:若課堂上未能完成,當作業!
設計遊戲 "超級金頭腦",
讓使用者計算兩個範圍介於51~99之隨機亂數的和.
參考作法如下:
1. 要有一個起始畫面, 顯示標題與遊戲規則
2. 參賽人數
3. 參賽者姓名
4. 請就位的訊息
5. 測驗中畫面
6. 排名
- #include<iostream>
- #include<cstdlib>
- #include<ctime>
- using namespace std;
- int main()
- {
- int people; //設定人數
- srand(time(NULL));
- cout<<"*** 超級金頭腦 v1.0 ***"<<endl<<endl;
- cout<<"遊戲規則: 電腦隨機出題, 比賽誰能在最短的時間內算對三題!"<<endl<<endl;
- cout<<"有幾位挑戰者? ";
- cin>>people;
- string name[people];
- int time[people];
- for(int i=0;i<people;i++)
- {
- system("cls");
- cout<<"第 "<<i+1<<" 位挑戰者你好, 請輸入你的大名: ";
- cin>>name[i];
- cout<<name[i]<<"同學請就位!";
- system("pause");
- system("cls");
- int right=0;
- int answer; // 使用者輸入的答案
- time[i] = 0;
- while(right<3)
- {
- int x=rand()%49+51; // 設定題目_被加數
- int y=rand()%49+51; // 設定題目_加數
- int ans_c=x+y; // 正確答案
- cout<<x<<" + "<<y<<" = "; // 顯示題目
- int t1=clock();
- cin>>answer;
- int t2=clock();
- int pass=t2-t1;
- if(answer==ans_c)
- {
- cout<<"答對了! 本題花了"<<pass<<"毫秒思考!"<<endl;
- right = right + 1;
- }
- else
- cout<<"答錯了! "<<"正確答案是. "<<ans_c<<"本題花了"<<pass<<"毫秒思考!"<<endl;
- time[i] = time[i] + pass;
- cout<<endl;
- }
- cout<<name[i]<<"同學總共花了"<<time[i]<<"秒!"<<endl;
- }
- for(int i=0;i<people-1;i++)
- {
- for(int j=i+1;j<people;j++)
- {
- if(time[i]>time[j])
- {
- string tmp1 = name[i];
- name[i] = name[j];
- name[j] = tmp1;
- int tmp2 = time[i];
- time[i] = time[j];
- time[j] = tmp2;
- }
- }
- }
- for(int i=0; i<people; i++)
- cout<<"第"<<i+1<<"名\t"<<name[i]<<"\t"<<time[i]<<"毫秒"<<endl;
- cout<<endl;
- system("pause");
- return 0;
- }
複製代碼本帖隱藏的內容需要回復才可以瀏覽 |