標題:
[專題實作] 超級金頭腦 (二)
[打印本頁]
作者:
方浩葦
時間:
2024-8-9 20:13
標題:
[專題實作] 超級金頭腦 (二)
本帖最後由 方浩葦 於 2024-8-17 15:13 編輯
設計遊戲 "超級金頭腦",
讓使用者計算兩個範圍介於101~999之隨機亂數的和.
參考作法如下:
1. 要有一個起始畫面, 顯示標題與遊戲規則
2. 參賽人數
3. 參賽者姓名
4. 請就位的訊息
5. 測驗中畫面
6. 排名
本帖隱藏的內容需要回復才可以瀏覽
作者:
李唯銘
時間:
2024-8-17 15:28
本帖最後由 李唯銘 於 2024-8-17 15:34 編輯
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(NULL));
int n[2], ans, player, start, startin, tmp1, tmp2;
int name[99], score[99];
cout<<"***超級金頭腦***"<<endl;
cout<<"由電腦隨機出題,比誰能最快答完三題"<<endl;
cout<<"有幾位挑戰者"<<endl;
cin>>player;
for(int i=1; i<=player; i++){
cout<<"第"<<i<<"位挑戰者請輸入姓名"<<endl;
cin>>name[i-1];
cout<<"準備就緒"<<endl;
system("pause");
system("cls");
start=clock();
for(int a=1; a<=3; a++){
startin=clock();
for(int j=0; j<2; j++)
{
n[j]=rand()%899+101;
for(int k=0; k<j; k++)
{
if(n[j]==n[k])
{
j--;
break;
}
}
}
cout<<n[0]<<"+";
cout<<n[1]<<"=";
cin>>ans;
if(ans==n[0]+n[1]){
cout<<"答對了,用了"<<clock()-startin<<"毫秒"<<endl;
}
else{
cout<<"答錯了,用了"<<clock()-startin<<"毫秒"<<endl;
a--;
}
}
score[i-1]=clock()-start;
}
for(int i=0; i<player-1; i++)
{
for(int j=i+1; j<player; j++)
{
if(score[j]<score[i])
{
tmp1=name[j];
name[j]=name[i];
name[i]=tmp1;
tmp2=score[j];
score[j]=score[i];
score[i]=tmp2;
}
}
}
system("cls");
cout<<"***金頭腦最終排名***"<<endl;
for(int i=0; i<player; i++)
cout<<"第"<<i+1<<"名"<<name[i]<<"\t"<<"花了"<<score[i]<<"毫秒"<<endl;
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
劉奕劭
時間:
2024-8-17 15:44
本帖最後由 劉奕劭 於 2024-8-17 15:52 編輯
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
int main()
{
float a,b,c,people,d,tmp;
string name[9999];
srand(time(NULL));
int e=1,x=1;
int right=3;
int n[2],o[9999],p[9999];
cout<<"**超級金頭腦**"<<endl;
cout<<"遊戲規則:由電腦出題,看誰能在最短時間內連續答對三題"<<endl;
cout<<"有幾位挑戰者:";
cin>>people;
for(int j=1; j<=people; j++){
cout<<"第"<<e<<"位挑戰者的大名:";
cin>>name[j-1];
cout<<name[j-1]<<"同學請就位!!";
for(int k=1; k<=right; k++){
for(int i=0; i<2; i++)
{
n[i]=rand()%49+51;
}
cout<<n[0]<<"+"<<n[1]<<"=?";
cin>>a;
b=clock()-c;
if(a==n[0]+n[1]){
cout<<"答對了! 本題花了"<<b<<"毫秒思考"<<endl;
}else
{
cout<<"答錯了! 本題花了"<<b<<"毫秒思考"<<endl;
right++;
}
c=clock();
d=b+d;
}
o[j-1]=d;
e++;
}for(int l=0; l<9999; l++)
{
for(int m=l+1; m<people; m++)
{
if(o[m]<o[l])
{
tmp=o[m];
o[m]=o[l];
o[l]=tmp;
}
}
}
system("pause");
cout<<"***風雲榜***"<<endl;
for(int i=0; i<=9; i++)
{
cout<<"第"<<x<<"名 ";
cout<<name[i]<<" ";
cout<<o[i]<<"毫秒"<<endl;
x++;
}
system("pause");
return 0;
}
複製代碼
作者:
李偈睿
時間:
2024-8-17 15:48
本帖最後由 李偈睿 於 2024-8-17 15:51 編輯
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
int x;
long t1,t2;
srand(time(NULL));
cout<<"*** 超級金頭腦 v1.0 ***"<<endl<<endl;
cout<<"遊戲規則: 電腦隨機出題, 比賽誰能在最短的時間內算對三題!"<<endl<<endl;
cout<<"有幾位挑戰者? ";
cin>>x;
string name[x];
long score[x];
for(int i=0; i<x; i++)
{
system("cls");
score[i]=0;
cout<<"第"<<i+1<<"位挑戰者你好, 請輸入你的大名: ";
cin>>name[i];
cout<<name[i]<<"同學請就位!"<<endl<<endl;
system("pause");
system("cls");
int n=0;
int ans;
while(n<3)
{
int a=rand()%9+1;
int b=rand()%9+1;
cout<<a<<" + "<<b<<" = ";
t1=clock();
cin>>ans;
t2=clock();
if(ans==a+b)
{
cout<<"答對了! ";
n++;
}
else
cout<<"答錯了! 正確答案是"<<a+b<<". ";
cout<<"本題花了"<<t2-t1<<"毫秒思考!"<<endl;
score[i]+=(t2-t1);
}
cout<<endl<<name[i]<<"同學總共花了"<<score[i]<<"毫秒!"<<endl;
system("pause");
}
system("cls");
cout<<"*** 金頭腦風雲榜 ***"<<endl<<endl;
string tmp1;
long tmp2;
for(int i=0; i<x-1; i++)
{
for(int j=i+1; j<x; j++)
{
if(score[j]<score[i])
{
tmp1=name[i];
name[i]=name[j];
name[j]=tmp1;
tmp2=score[i];
score[i]=score[j];
score[j]=tmp2;
}
}
}
for(int i=0; i<x; i++)
cout<<"第"<<i+1<<"名\t"<<name[i]<<"\t"<<score[i]<<"毫秒"<<endl;
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
林少謙
時間:
2024-8-17 16:04
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
re:
int a,b,c,p,n=1;
float t,t1=0,t2=0,t_sum=0;
string x[10];
int y[10];
system("cls");
cout<<"***超級金頭腦***"<<endl<<endl;
cout<<"遊戲規則: 電腦隨機出題,比賽誰能在最短的時間內算完3題!"<<endl<<endl;
system("pause");
re2:
system("cls");
cout<<"有幾位參賽者: ";
cin>>p;
if(p<1)
{
cout<<"輸入錯誤"<<endl;
_sleep(1500);
goto re2;
}
for(int i=1; i<=p; i++)
{
system("cls");
cout<<"第"<<n<<"位參賽者你好,請輸入你的大名: ";
cin>>x[n-1];
system("cls");
cout<<x[n-1]<<"同學請就位!"<<endl;
system("pause");
system("cls");
t2=0;
int q=0;
while(q!=3)
{
t1=clock();
a=rand()%899+101;
b=rand()%899+101;
cout<<a<<" + "<<b<<" = ";
cin>>c;
t2=clock()-t1;
if(c==a+b)
{
cout<<"答對了! 本題花了"<<t2<<"毫秒思考"<<endl;
q++;
}
else
{
cout<<"答錯了! 正確答案是"<<+a+b<<", 本題花了"<<t2<<"毫秒思考"<<endl;
}
t_sum+=t2;
}
y[n-1]=t_sum;
cout<<endl<<x[n-1]<<"同學總共花了"<<y[n-1]<<"毫秒!"<<endl<<endl;
n++;
t_sum=0;
system("pause");
}
system("cls");
for(int i=0; i<=(p-1); i++)
{
for(int j=0; j<=(p-1); j++)
{
int z;
string z1;
if(y[i]<y[j])
{
z=y[j];
y[j]=y[i];
y[i]=z;
z1=x[j];
x[j]=x[i];
x[i]=z1;
}
}
}
cout<<"***金頭腦風雲榜***"<<endl<<endl;
for(int i=0; i<=p-1; i++)
{
cout<<"第"<<i+1<<"名 "<<x[i]<<"\t"<<y[i]<<"毫秒"<<endl;
}
system("pause");
goto re;
return 0;
}
複製代碼
作者:
陳妍蓁
時間:
2024-8-17 16:17
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
string name,tmp2;
float t1,t2,t3,t4,pass,tmp1;
int x,y,answer,answer_c,people;
srand(time(NULL));
cout<<"***超級金頭腦 1.0***"<<endl<<endl;
cout<<"遊戲規則:電腦隨機出題,比賽誰能在最短的時間算對3題"<<endl<<endl;
cout<<"有幾位參賽者:"<<endl;
cin>>people;
string n[people];
int score[people];
for(int i=1;i<=people;i++){
cout<<"第"<<i<<"位挑戰者你好,請輸入你的大名";
cin>>name;
n[i-1]=name;
system("cls");
}
for(int i=0;i<people;i++){
cout<<n[i]<<"同學請就位!"<<endl;
system("pause");
t3=clock();
for(int j=1;j<=3;j++){
while(true){
x=rand()%10;
y=rand()%10;
answer_c=x+y;
cout<<x<<"+"<<y<<"=";
t1=clock();
cin>>answer;
t2=clock();
pass=t2-t1;
if(answer==answer_c){
cout<<"答對了!本題花"<<pass<<"毫秒思考"<<endl;
break;
}
else {
cout<<"答錯了!本題花"<<pass<<"毫秒思考"<<endl;
j--;
break;
}
}
}
t4=clock();
cout<<"總共花"<<t4-t3<<"毫秒"<<endl;
score[i]=t4-t3;
system("pause");
system("cls");
}
cout<<"***金頭腦風雲榜***"<<endl<<endl;
for(int k=0;k<people-1;k++){
for(int p=k+1;p<people;p++){
if(score[k]>score[p]){
tmp1=score[k];
score[k]=score[p];
score[p]=tmp1;
tmp2=n[k];
n[k]=n[p];
n[p]=tmp2;
}
}
}
for(int i=0;i<people;i++){
cout<<"第"<<i+1<<"名"<<" "<<n[i]<<"\t"<<score[i]<<"毫秒"<<endl;
}
system ("pause");
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2