[問題] 選擇攻擊方式
總覺得是基本的問題,
然而想了一個周末想不出答案XD <== 嫩咖新手
我寫了一個戰棋遊戲、想為戰場上不同敵人設計不同的攻擊方式
(例如有些敵人是挑場上最弱的玩家角色攻擊,有些是攻擊玩家全體等等)
換言之,依據敵人不同的攻擊模式,所執行的方法也會跟著不同
目前txt檔的欄位像是:
角色編號 攻擊力 攻擊模式(attackMode)
0 20 1
1 25 2
2 23 1 <= attackMode[i]
3 24 3
目前想出的寫法是:
switch(attackMode[i]){ //根據不同的attackMode(攻擊模式),該值為1~N
case 1: attackMethod1(); break; //執行不同的(攻擊)方法
case 2: attackMethod2(); break;
case 3: attackMethod3(); break;
...
}
但稍微想遠一點,這樣的寫法有點好笑,倘若我有100種敵人
那麼我不就得從 case 1 列到case 100?
(感覺上不用寫那麼多行才對)
因此想請教有沒有更簡易的寫法?
像是設法讓字串成為method
例如: 正要成為方法的字串 = "attackMethod" + attackMode[i]
接著執行 正要成為方法的字串();
(不曉得有沒有傳達到意思?)
但總覺得這不是個可行的方法XD
於是上來請教: 請問有沒有能夠簡化上面那個switch的辦法?
或是其實有更好的做法,去作出: 根據敵人不同的攻擊模式(的值),
執行不同的方法?
感謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.88.43
推
12/16 12:03, , 1F
12/16 12:03, 1F
→
12/16 14:02, , 2F
12/16 14:02, 2F
→
12/16 17:41, , 3F
12/16 17:41, 3F
→
12/16 19:17, , 4F
12/16 19:17, 4F
推
12/16 21:50, , 5F
12/16 21:50, 5F
→
12/17 01:01, , 6F
12/17 01:01, 6F
→
12/17 01:03, , 7F
12/17 01:03, 7F
推
12/17 02:01, , 8F
12/17 02:01, 8F
推
12/20 23:56, , 9F
12/20 23:56, 9F