(Obstacle obstacle, Player players[], int numPlayers, int currentTurn, double angle ,boolean inverted)
| 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; |
no test coverage detected