2013-08-22 129 views
-1

說我有回合制遊戲20攻擊變成與玩家攻擊速度決定他們得到多長時間攻擊,你將如何計算和或圖形的表「誰攻擊時,」當一個人有攻擊速度5和另一個8的速度? (這些測試值,我將使用的值會有所不同。20個攻擊輪流將瓶蓋,但是,每個玩家將能夠在自己的攻擊速度投入與他們的技能點高達10的值)平均分配

我用C編程了約2年,我目前正在對象 - 我的第一印地玩遊戲,任何意見或知識將有很大的幫助。

+0

究竟是什麼攻擊速度呢? – Jeremy

+0

@Jeremy由於我玩(ED)寵物小精靈,基本上誰的攻擊速度較高時,他們將有去第一的最好機會。而且它可以使他們攻擊不止一次(如果他們的攻擊速度足夠高的話)。 (我只是猜測這是他的應用程序的情況下,糾正我,如果我錯了) –

+0

這正是我基於它。攻擊速度越高,他們越有機會離開,所以如果你的攻擊速度爲5,並且攻擊速度爲10,那麼我爲你們每個人提供兩招,但是你可以花費你所有的技能傷害點數是我的兩倍。所以它或多或少的取消 –

回答

0
if (playerTwoWent == 0) 
    { 
     difference = difference - player_twos_speed; 
    } 
    else if (playerTwoWent == 1) 
    { 
     difference  = player_ones_speed + difference; 
     playerTwoWent = 0; 
    } 

    if (difference >= 0) 
    { 
     printf("player 1s turn: %d\n", difference); 
    } 
    else if (difference < 0) 
    { 
     if (playerTwoWent == 0) 
     { 
      printf("player 2s turn: %d\n", difference); 

      playerTwoWent = 1; 
     } 
    } 
0

如果我理解正確的問題:

搶先出擊將min(a,b),其中ab是你最初的「攻擊速度」,5和8,然後減去兩者的最小值,如果結果是0或更少再次添加攻擊者的原始值。因此,經過第一次進攻,a=5一遍,但現在b=8-5=3。然後,它是B的依次是:

a = 5 - 8 = -3 
b = 3 - 8 = -5 
大於零

都不到,所以再次加5和8:

a = 2 
b = 3 

一個攻擊:

a = -3 -> a = 2 
b = -2 -> b = 6 

,並因此獲得得分另一個打擊。依此類推,直到你得到平局 - 你肯定會遇到這樣或那樣的情況。你可以返回一個「領帶」的結果,還是讓最後的攻擊者或最後一名後衛「贏」的那一個。想一想,因爲如果兩個玩家有相同的「攻擊」價值呢?

+0

神奇的方式來看看它。就統計數字而言,今晚我有幾個朋友可以通過筆和紙來玩戰鬥系統,看看系統是否平衡。我正在仔細考慮這一點,我感謝你的建議。 –

+0

你的解決方案非常簡單,我覺得自己很混亂。在我測試了一下之後,它很好用,謝謝。 –

0

這道數學題告訴我,誰是轉向時 -

例如: 有11次攻擊 你攻擊8次,你的敵人的攻擊3 確定的攻擊順序,多數民衆贊成分佈均勻一致的可重複。

在這種情況下: 1.播放器1次攻擊 2.播放器1次攻擊 3.播放器2次攻擊 4.播放器1次攻擊 5.播放器1次攻擊 6.播放器1次攻擊 7.播放器2的攻擊 8.播放器1次攻擊 9.播放器1次攻擊 10.播放器1次攻擊 11.播放器2次攻擊 (重複這些11個步驟,只要需要)

我首先想到的解決辦法是用最好的分割完成直到我碰到了20面牆壁,所以

我選擇減法bc它可以被複制並以編程方式更好地工作,而不是通過劃分創建一個攻擊序列並將其作爲一個數組存儲並在每次需要確定一個人轉向時索引數組。

所以我的代碼要做到這一點是: