Você está na página 1de 25

Arsh Team 2D Soccer Simulation

The action of passing per se is a combination of O.C.I and pass ranking. In this show we first will talk about pass ranking , and O.C.I will be explained afterward.

The final goal of pass ranking is dedicating a score to each teammate player . This score is affected by parameters like confidence , distance to position of ball , distance to opponents goal , the area of ball , the area of player and the density of players in a circular area around the player.

The score of each player is a combination of the mentioned parameters with coefficient for each one. The score is arranged in a way which the less is better. In following slides we will explain each prameter separately.

Confidence is a floating number between 0.0 and 1.0 . By cinsidering the fact that the confidence of player has inverse realation with the score, so confidence appears in the below way in the beforehand equation. 1.0 point is added for confidence may eventually become zero and the fraction become is not defined and may kill the player.

Distance to position of ball (or dist_ball ) is positive linear function which is calculated by ((x1-x2)^2 + (y1-y2)^2). If this is greater than 30.0 the pass rank of would be 1000.0 for the probability of successfully reaching to that specific point would be very low. In the in advance equation dist_ball appears like below: (the less,the better)

Distance to opponents goal (or dist_goal) parameter is under the influence of the distance to the middle of the opponents goal position. This causes that our team plays a bit aggrisively.

1215

10

13 16

11

14 17

Picture above is a unsophisticated model of how we separate the field. For each area there is one or more best area in order to have a organized plan to attack.

1215

10

13 16

11

14 17

According to that plan , out right wings are the most sufficient players. For scoring the pass rank of the wings will reduce some points .

In the beforehand plan the best area(s) for each area is defined , and the best among the candidates of one area is the one in which there is less opponent player. If the Arsh s player is in the best area for area of ball the pass rank will be reduce some points . If the Arshs player is in the same area as ball the pass rank will be reduce some points.

Density means the number of opponent players who are in a circular area which center is the Arshs players position and a radius which is a linear function of distance between those.

Eventually this method enables us for forward moving. This boolean method determines that is this action beneficial for team or not. If attacking is true the pass rank will be reduce some points.

One of the most important issues that should be considered while passing a ball is that the ball would succesfully reach to its target.it means that it wouldnt be intercepted by opponents player in the field.

For that Arshs player first makes a line between its position and the target players , then according to the balls patter for movements it simulates it movement.

In order to do that each point that would ball reach in each cycle will be caculated , then for opponent players who are in a circle which center is the middle point of the target and the ball position and a radius which a linear function of distance between two positions a logical time for reaching each point would be calculated.

If only one of the calculated times for opponent players was less or equal with the time which was calculated for ball , by imagining that each opponent player would do the smartest movement ,Arshs player wouldnt pass the ball which is at stake and wouldnt pass.

According to how the ball would move in server we V_initial have: Cycle=1 V_initial *Decay Cycle=2 V_initial*Decay ^2 Cycle=3 V_initial*Decay^3 Cycle=3 . . . . . . Cycle=cyc V_initial*Decay^(cycle-1)

le

In the beforehand equations :


V_initial :the intial ball speed Cycle : number of cycles Decay : a number which shows how much balls speed would be reduced in the next cycle

By considering that the time in 2D server is Discrete we can conclude that relocation of ball in each cycle is equal with balls speed in that cycle and the total relocation is the sum of each cycle ones. V=dr/dt Dt=1
V=dr

V_initial(cycle=1)=d_initial(cycle=1) V_initial*Decay(cycle=2)=d(cycle=2) V_initial*Decay^2 (cycle=3)=d(cycle=3) . . . V_initial*Decay^(cycle-1) (cycle=n)=d(cycle=n)

D_total=d_initial(cycle=1)+d(cycle=2)++d(cycle=n) D_total= d(cycle=i) d(cycle=i)=v(cycle=i) D_total= v(cycle=i) = V_initial + V_initial*Decay + V_initial*Decay^2 ++ V_initial*Decay^(cycle-1) Geometric progression : D_total=V_initial * (1-Decay ^ (cycle)))/(1-decay)

After doing some simplification we have: Cycle=log(1-(D_total * (1Decay))/V_initial)/log(Decay) That we can calculated needed time for ball to reach to a point which is located in D_total distance from the initial ball position .

Cycle=log(1-(D_total * (1-Decay))/V_initial)/log(Decay) Cycle_logical=floor(Cycle)+1

The only problem that may happen during this procedure is that the answer to the equation above may be a floating number , that could be easily solve by using floor function and adding 1 this issue would be solved logically.

Você também pode gostar