遊戲體力值計算(位運算 模擬)

2021-09-11 04:14:43 字數 1078 閱讀 2115

某遊戲規則中,甲乙雙方每個回合的戰鬥總是有一方勝利,一方失敗。遊戲規定:失敗的一方要把自己的體力值

的1/4加給勝利的一方。例如:如果雙方體力值當前都是4,則經過一輪戰鬥後,雙方的體力值會變為:5,3。

現在已知:雙方開始時的體力值甲:1000,乙:2000。

假設戰鬥中,甲乙獲勝的概率都是50%

求解:雙方經過4個回合的戰鬥,體力值之差小於1000的理論概率。

以小數形式表示概率,保留到小數點後3位。

假如概率是50%,程式應該輸出0.500

#includeusing namespace std;

int main(){

double x=1000,y=2000;

int i,j,temp,count=0;

for(i=0;i<16;i++){//從0000遍歷到1111 即討論16種情況 這裡預設1為甲勝

x=1000,y=2000;

for(j=0;j<4;j++){

temp=1;

temp=temp《關於位運算:

(i&temp)==temp的意思:比如i=0010 則temp首先為0001 (i&temp) !=temp,因為第一次是乙獲勝,所以乙加分,接下來temp=0010 則(i&temp)==temp,因為第二次是甲獲勝,所以甲加分,接下來的0100和1000都是(i&temp) !=temp,所以都是乙加分。

模擬一部分過程:

i                                               temp

0000(表示甲每次都輸)            0001 0010 0100 1000 這四種情況都是乙得分

0001(甲贏了第一回合)            0001 0010 0100 1000 這四種情況temp=0001時是甲得分

1110(甲贏了第二三四回合)     0001 0010 0100 1000這四種情況temp=0010,0100,1000時甲得分

1111(甲全贏)                           0001 0010 0100 1000這四種情況下都是甲得分

本質就是16種情況都討論一遍

劇情體力值恢復

遊戲劇情接取任務時,以及領取獎勵時,涉及到體力值的加減 除此之外,體力值還有定時恢復,每十分鐘恢復一點 體力值走貨幣 重新整理跟貨幣重新整理一樣 倒計時顯示 十分鐘倒計時結束漲一點體力值 倒計時的計算 countdown 600 當前時間 上線時後端傳過來的開始計時的時間 600 每次漲體力值的時候...

面試OR筆試14 最小體力值

乙個戰棋類遊戲,角色只能向右和下兩個方向移動且移動需要消耗體力。遊戲地圖上被分為 m n個格仔,當角色移動到某個格仔上時,行動力就會加上格仔上的值 k 100 100 當行動力 0 時遊戲失敗。求從地圖左上角移動到地圖右下角至少需要多少起始行動力。玩家初始化到起始的左上角格仔時也需要行動體力 1 輸...

計算機 加減乘除原理 二進位制運算 PHP 位運算

位運算 加法實現 核心 逢二進一 param int a 被加數 param int b 加數 return int 和 function add int a,int b int if xor return add and 1,xor 位運算 減法實現 核心 加法逆運算 param int a 被減...