MCPcopy Create free account
hub / github.com/catabriga/graphwar / processRK42Range

Method processRK42Range

src/Graphwar/Function.java:482–675  ·  view source on GitHub ↗
(Obstacle obstacle, Player players[], int numPlayers, int currentTurn, double angle ,boolean inverted)

Source from the content-addressed store, hash-verified

480 }
481
482 public void processRK42Range(Obstacle obstacle, Player players[], int numPlayers, int currentTurn, double angle ,boolean inverted)
483 {
484 playersHit = new int[numPlayers*Constants.MAX_SOLDIERS_PER_PLAYER];
485 soldiersHit = new int[numPlayers*Constants.MAX_SOLDIERS_PER_PLAYER];
486 soldierHitPosition = new int[numPlayers*Constants.MAX_SOLDIERS_PER_PLAYER];
487 numPlayersHit = 0;
488
489
490 valuesX = new double[Constants.FUNC_MAX_STEPS];
491 valuesY = new double[Constants.FUNC_MAX_STEPS];
492 valuesDY = new double[Constants.FUNC_MAX_STEPS];
493
494 double stepSize = Constants.STEP_SIZE;
495
496 Soldier currentTurnSoldier = players[currentTurn].getCurrentTurnSoldier();
497
498 valuesX[0] = currentTurnSoldier.getX();
499
500 if(inverted)
501 {
502 valuesX[0] = Constants.PLANE_LENGTH - valuesX[0];
503 }
504
505 valuesX[0] = valuesX[0] + Constants.SOLDIER_RADIUS*Math.cos(angle);
506
507
508 valuesY[0] = currentTurnSoldier.getY();
509 valuesY[0] = valuesY[0] - Constants.SOLDIER_RADIUS*Math.sin(angle);
510
511
512 valuesX[0] = (Constants.PLANE_GAME_LENGTH*(valuesX[0] - Constants.PLANE_LENGTH/2))/Constants.PLANE_LENGTH;
513 valuesY[0] = (Constants.PLANE_GAME_LENGTH*(-valuesY[0] + Constants.PLANE_HEIGHT/2))/Constants.PLANE_LENGTH;
514 valuesDY[0] = Math.tan(angle);
515
516 fireAngle = angle;
517
518 numSteps = Constants.FUNC_MAX_STEPS;
519 for(int i=1; i<Constants.FUNC_MAX_STEPS; i++)
520 {
521 double tempStepSize = stepSize;
522
523
524 double x1 = valuesX[i-1];
525 double y1 = valuesY[i-1];
526 double y2 = valuesDY[i-1];
527
528 double k11 = y2;
529 double k12 = polishFunc.evaluateFunction( x1, y1, y2);
530
531 x1 = valuesX[i-1] + tempStepSize/2;
532 y1 = valuesY[i-1] + (tempStepSize/2)*k11;
533 y2 = valuesDY[i-1] + (tempStepSize/2)*k12;
534
535 double k21 = y2;
536 double k22 = polishFunc.evaluateFunction( x1, y1, y2);
537
538 y1 = valuesY[i-1] + (tempStepSize/2)*k21;
539 y2 = valuesDY[i-1] + (tempStepSize/2)*k22;

Callers 2

evaluateFunctionMethod · 0.95
processFunctionMethod · 0.80

Calls 12

getXMethod · 0.95
getYMethod · 0.95
playerAlreadyHitMethod · 0.95
getCurrentTurnSoldierMethod · 0.80
isAliveMethod · 0.80
getSoldiersMethod · 0.80
collidePointMethod · 0.80
evaluateFunctionMethod · 0.45
getNumSoldiersMethod · 0.45
getXMethod · 0.45
getYMethod · 0.45

Tested by

no test coverage detected