[課業] 骰子和撲克牌
還在為期末考奮鬥的孩子們
之前跟你們說他去年考了什麼 大家練習的還順利嗎?
我給大家一些提示吧~
再來回憶一下老師要考的重點
1. 遊戲父類別: 儲存姓名跟分數
2. 遊戲子類別繼承父類別
3. "選擇遊戲"的畫面
4. 兩個遊戲的內容
5. 存檔
遊戲父類別
這是基本題
這一題的重點是物件封裝 沒有封裝就沒有分數了
class game
{
protected:
char name[100]; // 姓名和分數 要符合資料封裝
int point; // 必須是私有的 但又要給下面繼承 所以用protected
public:
void inputname()
{
cout<<"請輸入你的名子:";
cin>>name; // 有些人會寫成 name[100]
// 那代表把名字寫到第100格 這是不對的喔
}
char* getname() // 把它丟給 cout 就會顯示名子
{
return name;
}
void setpoint(int p) // 設定分數
{
point = p;
}
void addpoint(int p) // 增加分數 應題目要求
{ // 像是題目說贏了可以+10分就呼叫 addpoint(10);
point += p;
}
int getpoint()
{
return point;
}
};
第一關PASS
繼承
第二關也很簡單
繼承有三種 : public , private, protected
不知道怎麼用的時候 用public就對了(除非題目指定)
class game1 : public game { };
class game2 : public game { };
這樣就寫完了XD ( 這是個bug 題目說若有需求再增加成員 所以這樣寫就有第二題分數
遊戲內容等下後面再說 )
選關畫面
建議是類別 但也可以不是類別
如果不是類別應該你們就會了吧~
int main()
{
cout<<"哈囉王老大, 您今天想玩什麼XD?"<<endl;
cout<<"[1] 擲骰子比大 [2] 抽撲克牌比大 [其他] 離開";
int choose;
cin>>choose;
game1 g1;
game2 g2; // google說 switch裡面不可以宣告變數@@
switch(choose)
{
case 1:
g1.play();
break;
case 2:
g2.play();
break;
default:
cout<<"老師掰~";
break;
}
}
耶有一半的分數囉
下集待續..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.74.9
※ 編輯: yantchen 來自: 114.42.74.9 (06/07 01:27)
推
06/07 19:08, , 1F
06/07 19:08, 1F
※ 編輯: yantchen 來自: 203.68.15.209 (06/07 21:51)
討論串 (同標題文章)