**Tags:** physics.

Rating:

Each row in the inout file is an impact position of a bullet, along with its speed, agnle above the horizontal and direction from shooter.

For all the physics behind this challenge, read the original writeup (you can find it [HERE](http://zenhack.it/writeups/SwampCTF2018/orb2/).

I'll write below the script which produces the flag.

```python

import pickle

import numpy as np

import scipy.io

import matplotlib.pyplot as plt

def predict_impact_point(row):

x,y = row[0],row[1]

v = row[2]

theta = row[3]

alpha = row[4]

vx = v * np.cos(theta)*np.cos(alpha)

vy = v * np.cos(theta)*np.sin(alpha)

vz = v * np.sin(theta)

g = 9.81

t = 2*vz / g

return x - vx*t, y - vy*t

data = pickle.load(open('page_of_numbers.p','rb'))

matrix_data = [ ]

res = []

for d in data:

val =predict_impact_point([i for i in d])

matrix_data.append(val)

matrix_data = np.array(matrix_data)

plt.plot(matrix_data[:,0], matrix_data[:,1],'o')

plt.show()

```

![The flag](https://zangobot.github.io/assets/2018-04-02-swamp_p2/flag.jpg)

Original writeup (http://zenhack.it/writeups/SwampCTF2018/orb2/).