CYOF Battle Calculator
As any of you who played the early rounds of the CYOF role play games (anything before 6) , one of the biggest difficulties was the lag time in resolving battles and other events. Since admins had to do everything by hand, players often had to wait several days for results, causing a great deal of chaos. As the game progressed, several solutions were tried but none of them every really felt satisfactory.
I have been working for some time now to develop a simple program that would allow players to quickly and easily resolve battles without having to wait for an admin or judge. I'm happy to report that I have made some significant progress and am close to having a completed prototype.
Before I code much further I have to make a major decision about how the unique characteristics of bombers and gunboats will be resolved. I would really like your thoughts on this, especially from players like ww2jacob and bretbretonian who helped get the game started in the first place.
Here is how the program currently stands: Each player has a fleet containing all thier ships. Each ship is classified as either a capital ship or a fighter, with bombers falling under the fighters category and gunboats as capital ships. Each battle has three phases. In the first phase each player's fighters go against each other. Phase 2 does the same thing with the capital ships. If neither fleet is entirely wiped out after the first two phases, phase 3 begins in which any remaining ships clash regardless of type.
During each phase there are a set number of rounds based on the numberof ships each player has. Each round consists of the program selecting a ship at random from each players fleet (fighters or caps only in the first two phases). Each player rolls a random number which is added to the basic stats of the ship. The attack power of the attacking player is compared to the defense of the defending player and the higher number wins (ties goe to the defender). If the attacker is unsucessful, the defending ship has an opportunity to fire back. if neither player sucessfully attacks, neither ship is destroyed and the next round begins.
The problem of course is what to do with bombers and gunships. Obviously bombers would not attack fighters and gunboats wouldn't take on capital ships unless they were they only type of ship remaining. As it stands now, the attacker's bomber's and gunships do not participate in thier respective phases unless all the attacker's other ships of that type have been wiped out. The problem is that the defender never gets a chance to attack these special ships giving the attacker an unreasonable advantage.
I have several ideas for how to solve this:
1) Keep phase 1 and 2 as is but allow any ship to attack any other ship in phase 3
This would be the easiest from a coding point of view but it may produce battle results that give one side or the other too much of an advantage.
2) Change phase 1 and 2 so that rather than just having the attacker fire and the defender return fire, the defender actually gets a chance to counter attack with each player selecting a new ship and the defending player acting as the attacker and vis versa. This would take more work but might result in a better outcome.
Please let me know what you think. Suggestions beyond the ideas I have here are welcome, just remeber I actually have to turn the idea into working code in my very limited free time
I have been working for some time now to develop a simple program that would allow players to quickly and easily resolve battles without having to wait for an admin or judge. I'm happy to report that I have made some significant progress and am close to having a completed prototype.
Before I code much further I have to make a major decision about how the unique characteristics of bombers and gunboats will be resolved. I would really like your thoughts on this, especially from players like ww2jacob and bretbretonian who helped get the game started in the first place.
Here is how the program currently stands: Each player has a fleet containing all thier ships. Each ship is classified as either a capital ship or a fighter, with bombers falling under the fighters category and gunboats as capital ships. Each battle has three phases. In the first phase each player's fighters go against each other. Phase 2 does the same thing with the capital ships. If neither fleet is entirely wiped out after the first two phases, phase 3 begins in which any remaining ships clash regardless of type.
During each phase there are a set number of rounds based on the numberof ships each player has. Each round consists of the program selecting a ship at random from each players fleet (fighters or caps only in the first two phases). Each player rolls a random number which is added to the basic stats of the ship. The attack power of the attacking player is compared to the defense of the defending player and the higher number wins (ties goe to the defender). If the attacker is unsucessful, the defending ship has an opportunity to fire back. if neither player sucessfully attacks, neither ship is destroyed and the next round begins.
The problem of course is what to do with bombers and gunships. Obviously bombers would not attack fighters and gunboats wouldn't take on capital ships unless they were they only type of ship remaining. As it stands now, the attacker's bomber's and gunships do not participate in thier respective phases unless all the attacker's other ships of that type have been wiped out. The problem is that the defender never gets a chance to attack these special ships giving the attacker an unreasonable advantage.
I have several ideas for how to solve this:
1) Keep phase 1 and 2 as is but allow any ship to attack any other ship in phase 3
This would be the easiest from a coding point of view but it may produce battle results that give one side or the other too much of an advantage.
2) Change phase 1 and 2 so that rather than just having the attacker fire and the defender return fire, the defender actually gets a chance to counter attack with each player selecting a new ship and the defending player acting as the attacker and vis versa. This would take more work but might result in a better outcome.
Please let me know what you think. Suggestions beyond the ideas I have here are welcome, just remeber I actually have to turn the idea into working code in my very limited free time