返回列表 發帖

[隨堂測驗] 賽馬程式 (五)

本帖最後由 鄭繼威 於 2023-4-1 13:52 編輯

1. 完成主選單的功能((1)買入 (2)下注 (3)離開 請選擇: ) (運用if...else if...else判斷式)
2. 處理以下bug

  • 處理 買入 時可能出現的bug: 當輸入0以下的數字, 顯示 "輸入錯誤!"
  • 處理 下注 時可能出現的bug: 當輸入0以下的數字, 顯示 "輸入錯誤!"
  • 處理 下注 時可能出現的bug: 當下注金額超過可用餘額, 顯示 "可用餘額不足,請先買入!"

3. 錯誤提示訊息顯示 1.5秒 後自動消失, 並回到輸入畫面(goto re), 使能重新輸入


  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.         int round=1;        //局數
  8.         int balance=0;        //餘額
  9.         int option;        //選項
  10.         int buy, bet, player;
  11.         // 買入 下注 賭哪隻馬

  12.     re:
  13.     system("cls");
  14.     srand(time(NULL));
  15.     int s[]={0,0,0,0};        //存放進度用的
  16.     string p[]={"◆","★","▲","●"};        //存放馬用的
  17.     int r=0;
  18.     cout<<"「好事成雙」賽馬場 第"<<round<<"局"<<endl;
  19.     cout<<"-------------------------------------------------------------------------| 終點"<<endl;
  20.     for(int i=0; i<4; i++)
  21.         cout<<p[i]<<endl;        //把馬印出來
  22.    
  23.         cout<<endl<<"可用餘額: "<<balance<<"元"<<endl<<endl;
  24.     cout<<"(1)買入 (2)下注 (3)離開 請選擇: ";
  25.     cin>>option;
  26.     //輸入等於1執行買入(儲值)
  27.         if(option==1){
  28.             //買入
  29.             cout<<"買入: ";
  30.             cin>>buy;
  31.             if(buy<=0){
  32.                     //如果買入小於0
  33.                         cout<<"輸入錯誤!";
  34.             _sleep(1500);        //顯示1.5秒
  35.             goto re;
  36.                 }
  37.             balance=balance+buy;        //儲值
  38.             goto re;
  39.         }
  40.         //輸入等於2執行下注
  41.     else if(option==2)
  42.     {
  43.         cout<<"下注: ";
  44.         cin>>bet;
  45.         if(bet<=0)
  46.         {
  47.                 //如果小於0
  48.             cout<<"輸入錯誤!";
  49.             _sleep(1500);
  50.             goto re;     
  51.         }
  52.         if(bet>balance)
  53.         {
  54.                 //下注錢大於可用餘額代表錢不夠
  55.             cout<<"可用餘額不足,請先買入!";
  56.             _sleep(1500);
  57.             goto re;     
  58.         }
  59.         //OK選馬
  60.         cout<<endl<<"(1)◆ (2)★ (3)▲ (4)● 請選擇: ";
  61.         cin>>player;
  62.         cout<<"比賽即將開始..."<<endl<<endl;         
  63.     }
  64.     //輸入等於3結束
  65.     else if(option==3)
  66.     {
  67.         goto end;         
  68.     }
  69.     else
  70.     {
  71.         cout<<"輸入錯誤!";
  72.         _sleep(1500);
  73.         goto re;
  74.     }
  75.         system("pause");
  76.     system("cls");        //清空畫面
  77.     while(s[r]<=73)        //開始賽馬
  78.     {
  79.         r=rand()%4;   //0~3        (抽馬)
  80.         s[r]++;        //看電腦抽到哪隻馬就+1
  81.         cout<<"比賽進行中"<<endl;
  82.         cout<<"-------------------------------------------------------------------------| 終點"<<endl;
  83.         for(int i=0; i<4; i++)
  84.         {
  85.             for(int j=0; j<s[i]; j++)
  86.                 cout<<" ";        //印空格(看進度是多少就印多少空格)
  87.             cout<<p[i]<<endl;        //把馬印出來
  88.         }
  89.         _sleep(50);
  90.         system("cls");
  91.     }
  92.     cout<<"比賽結束!  由 "<<p[r]<<" 先馳得點!"<<endl;
  93.     cout<<"-------------------------------------------------------------------------| 終點"<<endl;
  94.     for(int i=0; i<4; i++)
  95.     {
  96.            
  97.         for(int j=0; j<s[i]; j++)
  98.             cout<<" ";
  99.         cout<<p[i]<<endl;
  100.     }
  101.     system("pause");
  102.     round++;        //局數+1
  103.     goto re;
  104.    
  105.     end:
  106.     cout<<endl<<"不玩了? 88~"<<endl;
  107.     _sleep(1500);
  108.    
  109.     return 0;
  110. }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表