本帖最後由 tonyh 於 2012-1-7 16:56 編輯
將今天課堂上寫的猜拳遊戲, 加以改良,
使程式結束時, 電腦能回應玩家, 總共贏了幾次, 輸了幾次, 平手幾次.- #include<iostream> //當用到標準輸入與輸出時,需插入此標題檔
- #include<cstdlib> //當用到亂數函數時,需插入此標題檔
- #include<ctime> //當用到時間函數時,需插入此標題檔
- using namespace std;
- int main()
- {
- int computer; //電腦出的拳
- int player; //玩家出的拳
- int tryagain; //是否再玩一次
- int win=0, lose=0, draw=0; //用來累計輸贏或平手的次數
- start:
- srand(time(NULL)); //設定亂數種子
- computer=rand()%3+1; //產生介於1~3的隨機亂數, 以決定電腦出的拳
- cout<<"請輸入你要出的拳 1=剪刀 2=石頭 3=布"<<endl;
- cin>>player;
- if(computer==1)
- {
- if(player==1)
- {
- cout<<"你出剪刀, 電腦也出剪刀!"<<endl<<"平手!";
- draw++;
- }else if(player==2)
- {
- cout<<"你出石頭, 電腦出剪刀!"<<endl<<"你贏了!";
- win++;
- }else if(player==3)
- {
- cout<<"你出布, 電腦出剪刀!"<<endl<<"你輸了!";
- lose++;
- }else
- {
- cout<<"輸入錯誤!";
- }
- }
- if(computer==2)
- {
- if(player==1)
- {
- cout<<"你出剪刀, 電腦出石頭!"<<endl<<"你輸了!";
- lose++;
- }else if(player==2)
- {
- cout<<"你出石頭, 電腦也出石頭!"<<endl<<"平手!";
- draw++;
- }else if(player==3)
- {
- cout<<"你出布, 電腦出石頭!"<<endl<<"你贏了!";
- win++;
- }else
- {
- cout<<"輸入錯誤!";
- }
-
- }
- if(computer==3)
- {
- if(player==1)
- {
- cout<<"你出剪刀, 電腦出布!"<<endl<<"你贏了!";
- win++;
- }else if(player==2)
- {
- cout<<"你出石頭, 電腦出布!"<<endl<<"你輸了!";
- lose++;
- }else if(player==3)
- {
- cout<<"你出布, 電腦也出布!"<<endl<<"平手!";
- draw++;
- }else
- {
- cout<<"輸入錯誤!";
- }
-
- }
- cout<<endl;
- cout<<"再玩一次嗎? 1=是 2=否"<<endl;
- cin>>tryagain;
- if(tryagain==1)
- {
- goto start;
- }else
- {
- goto end;
- }
- end:
- cout<<"總共贏了"<<win<<"次, 輸了"<<lose<<"次, 平手"<<draw<<"次!"<<endl;
- system("pause");
- return 0;
- }
複製代碼 |