Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Entity = function(damage, accuarcy, attackSpeed, hitPoints, isBerserk){
- this.damage = damage;
- this.accuarcy = accuarcy;
- this.attackSpeed = attackSpeed;
- this.hitPoints = hitPoints;
- this.isBerserk = isBerserk;
- this.maxHitPoints = this.hitPoints
- this.logDimension = function(){
- Logger.log(this.damage);
- Logger.log(this.accuarcy);
- Logger.log(this.attackSpeed);
- Logger.log(this.hitPoints);
- Logger.log(this.isBerserk);
- }
- this.getDamage = function(){
- if (this.isBerserk && this.hitPoints < this.maxHitPoints / 2)
- {
- Logger.log("player 2 BERSERK!!!");
- return this.damage * 2;
- }
- else
- {
- return this.damage;
- }
- }
- this.getAccuarcy = function(){
- return this.accuarcy;
- }
- this.getAttackSpeed = function(){
- return this.attackSpeed;
- }
- this.getHitPoints = function(){
- return this.hitPoints;
- }
- this.getIsBerserk = function(){
- return this.isBerserk;
- }
- this.setDamage = function(newDamage){
- this.damage = newDamage;
- }
- this.setAccuarcy = function(newAccuarcy){
- this.accuarcy = newAccuarcy;
- }
- this.setAttackSpeed = function(newAttackSpeed){
- this.attackSpeed = newAttackSpeed;
- }
- this.setHitPoints = function(newHitPoints){
- this.hitPoints = newHitPoints;
- }
- };
- function myFunction() {
- var spreadsheet = SpreadsheetApp.getActive();
- var sheet = spreadsheet.getSheetByName("1");
- var range = sheet.getRange("B2:C5")
- var numberOfP1Wins = 0;
- var numberOfP2Wins = 0;
- var numberOfBattles = 1000;
- for (var battleNumber = 1; battleNumber <= numberOfBattles; battleNumber++) {
- var player1 = new Entity(range.getCell(1, 1).getValue(), range.getCell(2, 1).getValue(), range.getCell(3, 1).getValue(), range.getCell(4, 1).getValue(), false);
- var player2 = new Entity(range.getCell(1, 2).getValue(), range.getCell(2, 2).getValue(), range.getCell(3, 2).getValue(), range.getCell(4, 2).getValue(), true);
- var currentSecond = 1;
- Logger.log("battle number = " + battleNumber);
- while (player1.getHitPoints() > 0 && player2.getHitPoints() > 0)
- {
- if (Math.random() < player1.getAccuarcy())
- {
- player2.setHitPoints(player2.getHitPoints() - player1.getDamage());
- }
- if (currentSecond % 2 == 0)
- {
- if (Math.random() < player2.getAccuarcy())
- {
- player1.setHitPoints(player1.getHitPoints() - player2.getDamage())
- }
- }
- currentSecond++;
- Logger.log("player 1 hitPoints = " + player1.getHitPoints());
- Logger.log("player 2 hitPoints = " + player2.getHitPoints());
- }
- if (player1.getHitPoints() <= 0)
- {
- numberOfP2Wins++;
- }
- else
- {
- numberOfP1Wins++;
- }
- }
- Logger.log("_________________________________");
- Logger.log("probability of win for player 1 = " + (numberOfP1Wins / numberOfBattles));
- Logger.log("probability of win for player 2 = " + (numberOfP2Wins / numberOfBattles));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement