2013-08-22 131 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它可以被复制并以编程方式更好地工作,而不是通过划分创建一个攻击序列并将其作为一个数组存储并在每次需要确定一个人转向时索引数组。

所以我的代码要做到这一点是: