java面試題:英雄PK(無答案)

2014年6月,即將面臨畢業找工作,無意間在網上看到這道題,並且附有招聘信息及郵箱,因爲自己也是個愛玩遊戲的仔,就抱着試一試的態度,花了半小時寫了個代碼,簡單的測試了一下就發送到了招聘郵箱,對方也回覆郵件指明瞭其中的bug,經過修改再次發送過去,因此找到了畢業後第一份工作。

特此記錄一下該題目,如下

三個英雄角色參與PK

每個英雄具有以下幾個屬性:生命值(爲0時英雄倒下)、攻擊力(每次攻擊時扣除對方的生命值點數)、攻擊間隔(每次攻擊過後都要等待間隔時間才能進行下次攻擊,首次攻擊之前也要先等待間隔時間)

另外,每個英雄都擁有兩個技能:攻擊技能和防禦技能,攻擊技能在攻擊對方時有一定概率發動,防禦技能在被對方攻擊時有一定概率發動,具體參數如下

BM:
生命650 攻擊力40 攻擊間隔1.5s
攻擊技能(跳劈):每次攻擊時有30%機率造成雙倍傷害
防禦技能(反彈):每次被攻擊時有30%機率把我方受到的傷害反彈給對方,例如我方被攻擊,對方攻擊力30,扣除我方30點生命值,如果技能發動,則對方也要扣除30點生命值,傷害只能反彈一次(兩個BM相互PK的時候不出現連續反彈)

DH:生命600 攻擊力30 攻擊間隔1s
攻擊技能(吸血):每次攻擊時有30%機率把造成的傷害轉變爲自己的生命值(對被攻擊者造成傷害,並且將攻擊傷害轉變成自己的生命值),但不能超過上限,例如我方攻擊,扣除對方30的生命值,同時給自己增加30點生命值
防禦技能(閃避):每次被攻擊時有30%機率閃避不受傷害

MK:
生命700 攻擊力50 攻擊間隔2.5s
攻擊技能(重擊):每次攻擊時有30%機率造成對方眩暈3s的效果(對方受到傷害後附加眩暈),對方英雄眩暈期間不能發起攻擊,只能捱打,被攻擊時也不能發起防禦技能,且眩暈結束後對方英雄要重新等待攻擊間隔,眩暈時間不能疊加,如果對方已經處於眩暈,我方又發動攻擊技能,那麼對方眩暈時間重新開始計算
防禦技能(天神):每次被攻擊時有60%的機率防禦一半傷害,例如我方被攻擊,對方攻擊力爲40,如果技能發動,則只扣除我方20點生命值

1.程序啓動後,監聽控制檯輸入
2.輸入任意兩個英雄名稱(逗號分隔)發起PK,格式:BM,DH
3.系統輸出PK詳細過程,直到有一方勝出,格式如下:
BM攻擊DH,BM發動攻擊技能,DH未發動防禦技能,BM:350->350,DH:280->200
....
BM勝出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章