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

Method processFunctionRange

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

Source from the content-addressed store, hash-verified

171 }
172
173 public void processFunctionRange(Obstacle obstacle, Player players[], int numPlayers, int currentTurn, boolean inverted)
174 {
175 playersHit = new int[numPlayers*Constants.MAX_SOLDIERS_PER_PLAYER];
176 soldiersHit = new int[numPlayers*Constants.MAX_SOLDIERS_PER_PLAYER];
177 soldierHitPosition = new int[numPlayers*Constants.MAX_SOLDIERS_PER_PLAYER];
178 numPlayersHit = 0;
179
180 valuesX = new double[Constants.FUNC_MAX_STEPS];
181 valuesY = new double[Constants.FUNC_MAX_STEPS];
182
183 Soldier currentTurnSoldier = players[currentTurn].getCurrentTurnSoldier();
184
185 valuesX[0] = currentTurnSoldier.getX();
186 valuesY[0] = currentTurnSoldier.getY();
187
188 if(inverted)
189 {
190 valuesX[0] = Constants.PLANE_LENGTH - valuesX[0];
191 }
192
193 valuesX[0] = (Constants.PLANE_GAME_LENGTH*(valuesX[0] - Constants.PLANE_LENGTH/2))/Constants.PLANE_LENGTH;
194 valuesY[0] = (Constants.PLANE_GAME_LENGTH*(-valuesY[0] + Constants.PLANE_HEIGHT/2))/Constants.PLANE_LENGTH;
195
196 double gameCoordinateRadius = ((double)(Constants.PLANE_GAME_LENGTH*Constants.SOLDIER_RADIUS))/Constants.PLANE_LENGTH;
197
198 fireAngle = getStartAngle(valuesX[0], gameCoordinateRadius);
199
200 if(Double.isNaN(fireAngle)==false && Double.isInfinite(fireAngle)==false )
201 {
202 valuesX[0] = valuesX[0] + gameCoordinateRadius*Math.cos(fireAngle);
203 valuesY[0] = valuesY[0] + gameCoordinateRadius*Math.sin(fireAngle);
204 }
205
206 offSet = -polishFunc.evaluateFunction(valuesX[0],0,0) + valuesY[0];
207
208 double stepSize = Constants.STEP_SIZE;
209 double tempStepSize = Constants.STEP_SIZE;
210
211 numSteps = Constants.FUNC_MAX_STEPS;
212 for(int i=1; i<Constants.FUNC_MAX_STEPS; i++)
213 {
214 tempStepSize = stepSize;
215
216 valuesX[i] = valuesX[i-1] + tempStepSize;
217 valuesY[i] = polishFunc.evaluateFunction(valuesX[i],0,0)+offSet;
218
219 boolean endFunc = false;
220
221 for(int j=0; Math.pow(valuesX[i]-valuesX[i-1], 2)+Math.pow(valuesY[i]-valuesY[i-1], 2) > Constants.FUNC_MAX_STEP_DISTANCE_SQUARED;j++)
222 {
223 if(valuesX[i]-valuesX[i-1]>Constants.FUNC_MIN_X_STEP_DISTANCE)
224 {
225 tempStepSize = tempStepSize/2;
226
227 valuesX[i] = valuesX[i-1] + tempStepSize;
228 valuesY[i] = polishFunc.evaluateFunction(valuesX[i],0,0)+offSet;
229 }
230 else

Callers 2

evaluateFunctionMethod · 0.95
processFunctionMethod · 0.80

Calls 13

getXMethod · 0.95
getYMethod · 0.95
getStartAngleMethod · 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

Tested by

no test coverage detected