本帖最後由 陳品肇 於 2019-3-30 18:17 編輯
設計遊戲 "超級金頭腦",
讓使用者計算兩個範圍介於111~999之隨機亂數的和.
參考作法如下:
1. 要有一個起始畫面, 顯示標題與遊戲規則
2. 參賽人數
3. 參賽者姓名
4. 請就位的訊息
5. 測驗中畫面
6. 排名
- #include<iostream>
- #include<cstdlib>
- #include<ctime>
- using namespace std;
- int main()
- {
- int n; //n幾位
- cout<<"***超腦金頭腦 v1.0 ***"<<endl;
- cout<<endl;
- cout<<"遊戲規則: 電腦隨機出題,比賽誰能在最短時間內算對三題!"<<endl;
- system("pause");
- system("cls"); //畫面清空
-
- cout<<"有幾位挑戰者:";
- cin>>n;
- system("pause");
- system("cls"); //畫面清空
-
- string name[n]; //宣告姓名陣列
- double sum[n]; //宣告個別總秒數陣列
- srand(time(NULL));
-
- for(int i=0;i<n;i++) //幾位要挑戰
- {
- cout<<"第"<<i+1<<"位挑戰者您好,請輸入你的大名:";
- cin>>name[i]; //姓名存進陣列裡
- system("pause");
- system("cls"); //畫面清空
-
- cout<<name[i]<<"同學請就位!"<<endl;
- system("pause");
- system("cls"); //畫面清空
-
- int count =0; //儲存對的題數
- while(count <3) //還沒答對三題前,持續產生題目
- {
- int a=rand()%889+ 111; //產生第一個亂數
- int b=rand()%889+ 111; //產生第二個亂數
- double start,end,pass;
-
- int ans; //回答的答案
- start = clock(); //產生題目的時間
- cout<<a<<" + "<<b<<" = ";
- cin>>ans; //回答的時間+題目的時間
- end = clock();
- pass = end - start; //實際思考的時間
-
- if(ans ==(a+b)) //答對的話!
- {
- cout<<"答對了!. 本題花了"<<pass<<"毫秒思考!"<<endl;
- sum[i] = sum[i]+ pass; //時間累計
- count++;
- }else //答錯執行下面的結果
- {
- cout<<"答錯了!正確答案是"<<a+b<<". 本題花了"<<pass<<"毫秒思考!"<<endl;
- sum[i] = sum[i]+ pass; //時間累計
- }
-
- }
- cout<<name[i]<<"同學總共花了"<<sum[i]<<"毫秒!" <<endl;
-
- system("pause");
- system("cls"); //畫面清空
-
- }
-
-
-
- system("pause");
- return 0;
- }
複製代碼 |