Results 1 to 9 of 9

Math Help - Help! I can't figure out the expression i need for making a videogame.

  1. #1
    Newbie
    Joined
    Dec 2010
    Posts
    4

    Help! I can't figure out the expression i need for making a videogame.

    ok, heres what needs to happen and what i got so far...
    the game starts with 6 enemies (E) and after those 6 are dead, the next round starts, but this time with 9 enemies. the enemies are multiplied by 1.5 each round. also round up for example- 9 times 1.5 is 13.5(round up to 14) all of this will go at an infinite loop, but i dont know how id even write that out. let me know if i need to provide any more info!


    its not necessarily an infinite LOOP, but an infinite CLIMB.
    Follow Math Help Forum on Facebook and Google+

  2. #2
    MHF Contributor

    Joined
    Aug 2006
    Posts
    18,803
    Thanks
    1692
    Awards
    1
    E_1=6~\&~n\ge2,~E_n=\left\lceil {1.5 \cdot E_{n - 1} } \right\rceil . That is the ceiling function.
    Follow Math Help Forum on Facebook and Google+

  3. #3
    Newbie
    Joined
    Dec 2010
    Posts
    4
    what is N?
    Follow Math Help Forum on Facebook and Google+

  4. #4
    MHF Contributor

    Joined
    Aug 2006
    Posts
    18,803
    Thanks
    1692
    Awards
    1
    That is call a recursively defined function. E_n is the number of enemies at the start of the n^{th} game.
    E_1=6,~E_2=9,~\cdots~E_{10}=243.
    Follow Math Help Forum on Facebook and Google+

  5. #5
    Newbie
    Joined
    Dec 2010
    Posts
    4
    oh ok. and i really dont understand this. sorry, can you explain all the parts? like why you subtract a 1 or have n greaterthan or = to 2
    Follow Math Help Forum on Facebook and Google+

  6. #6
    Senior Member
    Joined
    Dec 2010
    Posts
    470
    Is this a game that *you* are making? If so, why does it have to be exactly 1.5? Why not just make it even like 2? Just curious.

    Second here is some possible sudo code:

    Integer num_enemies := 6
    LOOP {
    num_enemies := ROUND_UP(num_enemies * 1.5)
    ... cool game stuff goes here
    }

    The code just describes exactly what you said.
    Last edited by snowtea; December 13th 2010 at 08:06 PM.
    Follow Math Help Forum on Facebook and Google+

  7. #7
    Newbie
    Joined
    Dec 2010
    Posts
    4
    theres one problem with setting it to 2 instead of 1.5... the game would be impossible the enemies doubling each round is too hard for the player
    Follow Math Help Forum on Facebook and Google+

  8. #8
    Senior Member
    Joined
    Dec 2010
    Posts
    470
    Actually 1.5 * 1.5 = 2.25, so your enemies would more than double every two rounds anyway.
    Anytime you multiply, you will get exponential growth.
    If you want to make it easy, perhaps you can just add 6 enemies each round:
    num_enemies := num_enemies + 6
    Follow Math Help Forum on Facebook and Google+

  9. #9
    Newbie
    Joined
    Jun 2014
    From
    United States
    Posts
    4

    Re: Help! I can't figure out the expression i need for making a videogame.

    N is the nth battle. For example, if N is 1 then that's your first battle. On your second battle it requires another formula so that's why you have the second part of the mathematical equation. Note that the En-1 is the calculated number of enemies from the last battle because the Nth battle is the current battle and the Nth - 1 is the previous battle. Because that is subscripted under E then it is the Evaluated (aka calculated) result. You multiply that number by 1.5. And you perform a ceiling function on the new result.

    I don't know what programming language is used so please excuse me if I am completely off here. I am a new member. I am also assuming that you can lose battles and then the next battles would be the same number of enemies.

    You want to declare a global variable that stores the last calculated enemy count; call it enemyCount; Initialize that to 0 because you will have a first battle. You also want to declare a boolean variable to account for loses and wins; call it something like prevBattleLost; Initialize that to false because on your first battle you never lost before.

    If a battle starts (like if your character is on a rpg type map and it just walked into a random tile that triggers battles) then call a function like battleStarted(). In that function use an if statement to check if enemyCount is 0 in which case you'd pass 6 to the enemy generator engine. There is an else statement that checks if prevBattleLost is true; If it were true then pass the enemyCount to the enemy generator engine because you did not win the previous battle so you will be fighting the same number of enemies in this battle. If not true, then send CEILING(enemyCount * 1.5) to the enemy generator engine because you won the previous battle so you will be fighting more enemies in this battle.

    When the battle ends, you want to call either battleWon() or battleLost(). In the first function you would update prevBattleLost to false to account for the possibility of having had lost a battle, then also update enemyCount to the number of enemies defeated. In the second function, where you lost the battle, update prevBattleLost to true and leave enemyCount alone.

    And please reconsider your old plan of multiplying by 1.5 because the enemies will become exponentially bigger. See:
    6 x 1.5^(n-1) where n = which battle we are on from 1 to infinity

    So that is similar to all solutions 1 x 2^0,1 x 2^1,1 x 2^2,1 x 2^3,1 x 2^4....; in other words, 1, 2, 4, 8, 16, 32, 64, 128, 256...

    This kind of growth is exponential. Meanwhile, The player is getting into battles at a linear rate such as 1 battle a minute. Once the player levels up their stats enough to win a battle then the next battles will be lost too many times because it'd take forever to level up the stats. The player satisfaction will go down. However you could fix this by making leveling up stats at a exponential rate as well! Then it'd be one messy programming project.
    Follow Math Help Forum on Facebook and Google+

Similar Math Help Forum Discussions

  1. [SOLVED] Finding the Angle in this Figure (see the figure)
    Posted in the Geometry Forum
    Replies: 1
    Last Post: December 19th 2011, 02:44 PM
  2. Replies: 6
    Last Post: October 6th 2011, 01:48 PM
  3. Replies: 3
    Last Post: October 21st 2010, 08:46 AM
  4. Replies: 2
    Last Post: June 4th 2010, 07:02 AM
  5. making function from symbolic expression
    Posted in the Algebra Forum
    Replies: 0
    Last Post: December 31st 2009, 11:10 AM

Search Tags


/mathhelpforum @mathhelpforum