Compare commits

...

2 Commits
c ... main

Author SHA1 Message Date
323e821344 Stash 2023-02-19 16:52:56 +00:00
0ae7892998 A lot of shit you don't want 2023-02-17 15:38:16 +00:00
10 changed files with 3122 additions and 275 deletions

View File

@ -4,28 +4,22 @@
#include "DLASystem.h"
// colors
namespace colours {
GLfloat blue[] = {0.1, 0.3, 0.9, 1.0}; // blue
GLfloat red[] = {1.0, 0.2, 0.1, 0.2}; // red
GLfloat green[] = {0.3, 0.6, 0.3, 1.0}; // green
GLfloat paleGrey[] = {0.7, 0.7, 0.7, 1.0}; // green
GLfloat darkGrey[] = {0.2, 0.2, 0.2, 1.0}; // green
}
#include <utility>
// this function gets called every step,
// if there is an active particle then it gets moved,
// if not then add a particle
void DLASystem::Update() {
if (lastParticleIsActive == 1)
bool DLASystem::Update() {
if (lastParticleIsActive == 1) {
moveLastParticle();
else if (numParticles < endNum) {
} else if (numParticles < endNum) {
addParticleOnAddCircle();
setParticleActive();
} else {
return false;
}
if (lastParticleIsActive == 0 || slowNotFast == 1)
glutPostRedisplay(); //Tell GLUT that the display has changed
return true;
}
@ -88,7 +82,7 @@ int DLASystem::checkStop() {
if (killCircle + 2 >= gridSize / 2) {
pauseRunning();
cout << "STOP" << endl;
glutPostRedisplay(); // update display
// glutPostRedisplay(); // update display
return 1;
} else return 0;
}
@ -204,6 +198,9 @@ void DLASystem::moveLastParticle() {
// check if we stick
if (checkStick()) {
this->csv_out << newpos[0] << "," << newpos[1] << "\n";
this->csv_out.flush();
//cout << "stick" << endl;
setParticleInactive(); // make the particle inactive (stuck)
updateClusterRadius(lastP->pos); // update the cluster radius, addCircle, etc.
@ -239,18 +236,20 @@ int DLASystem::checkStick() {
// constructor
DLASystem::DLASystem(Window *set_win) {
DLASystem::DLASystem(ofstream out_file) {
cout << "creating system, gridSize " << gridSize << endl;
win = set_win;
numParticles = 0;
endNum = 1000;
csv_out = std::move(out_file);
// allocate memory for the grid, remember to free the memory in destructor
grid = new int *[gridSize];
for (int i = 0; i < gridSize; i++) {
grid[i] = new int[gridSize];
}
slowNotFast = 1;
slowNotFast = 0;
running = true;
// reset initial parameters
Reset();
@ -272,45 +271,7 @@ DLASystem::~DLASystem() {
delete[] grid[i];
delete[] grid;
if (logfile.is_open())
logfile.close();
}
// this draws the system
void DLASystem::DrawSquares() {
// draw the particles
double halfSize = 0.5;
for (int p = 0; p < numParticles; p++) {
double *vec = particleList[p]->pos;
glPushMatrix();
if (p == numParticles - 1 && lastParticleIsActive == 1)
glColor4fv(colours::red);
else if (p == 0)
glColor4fv(colours::green);
else
glColor4fv(colours::blue);
glRectd(drawScale * (vec[0] - halfSize),
drawScale * (vec[1] - halfSize),
drawScale * (vec[0] + halfSize),
drawScale * (vec[1] + halfSize));
glPopMatrix();
if (this->csv_out.is_open()) {
this->csv_out.close();
}
// print some information (at top left)
// this ostringstream is a way to create a string with numbers and words (similar to cout << ... )
ostringstream str;
str << "num " << numParticles << " size " << clusterRadius;
// print the string
win->displayString(str, -0.9, 0.9, colours::red);
// if we are paused then print this (at bottom left)
if (running == 0) {
ostringstream pauseStr;
pauseStr << "paused";
win->displayString(pauseStr, -0.9, -0.9, colours::red);
}
}

View File

@ -1,6 +1,5 @@
#pragma once
#include <GLUT/glut.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
@ -13,7 +12,6 @@
#include <string>
#include <sstream>
#include "Window.h"
#include "Particle.h"
#include "rnd.h"
@ -21,11 +19,7 @@ using namespace std;
class DLASystem {
private:
// these are private variables and functions that the user will not see
Window *win; // window in which the system is running
public:
// list of particles
vector<Particle *> particleList;
int numParticles;
@ -39,6 +33,8 @@ private:
double addCircle;
double killCircle;
ofstream csv_out;
// size of grid
static const int gridSize = 1600;
int **grid; // this will be a 2d array that stores whether each site is occupied
@ -67,7 +63,7 @@ public:
// update the system: if there is an active particle then move it,
// else create a new particle (on the adding circle)
void Update();
bool Update();
// draw particles as squares
void DrawSquares();
@ -82,7 +78,7 @@ public:
int lastParticleIsActive;
// constructor
DLASystem(Window *set_win);
DLASystem(ofstream output);
// destructor
~DLASystem();
@ -158,11 +154,4 @@ public:
// check whether the last particle should stick
// currently it sticks whenever it touches another particle
int checkStick();
// set the background colour for the window
// it would be better for an OOP philosophy to make these member functions for the Window class
// but we are being a bit lazy here
void setWinBackgroundWhite() { glClearColor(1.0, 1.0, 1.0, 1.0); }
void setWinBackgroundBlack() { glClearColor(0.0, 0.0, 0.0, 0.0); }
};

View File

@ -10,7 +10,7 @@
CXX = clang++
CXXFLAGS = -Wall -Wextra -g -O0
CXXFLAGS = -Wall -Wextra -g -O0 -std=c++20 -stdlib=libc++
IFLAGS = -I/usr/local/include -I/usr/include

View File

@ -1,27 +0,0 @@
#include "Window.h"
// constructor
Window::Window(int set_size[], string &set_title) {
size[0] = set_size[0];
size[1] = set_size[1];
title = set_title;
locateOnScreen();
glutInitWindowSize(size[0], size[1]);
glutInitWindowPosition(pos[0], pos[1]);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow(title.c_str());
// sets the background to black
glClearColor(0.0, 0.0, 0.0, 0.0);
}
// print a string at a given position, don't worry about how this works...
void Window::displayString(ostringstream &str, double x, double y, GLfloat col[]) {
string localString = str.str();
glColor4fv(col);
glRasterPos2d(x, y);
for (int i = 0; i < localString.length(); i++) {
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, localString[i]);
}
}

View File

@ -1,34 +0,0 @@
#pragma once
#include <GLUT/glut.h>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class Window {
public:
string title;
int size[2];
int pos[2];
void locateOnScreen() {
// the fx sets where on the screen the window will appear
// (values should be between 0 and 1)
double fx[] = {0.7, 0.5};
pos[0] = (glutGet(GLUT_SCREEN_WIDTH) - size[0]) * fx[0];
pos[1] = (glutGet(GLUT_SCREEN_HEIGHT) - size[1]) * fx[1];
}
// constructor, size is in pixels
Window(int set_size[], string &set_title);
// function which prints a string to the screen, at a given position, with a given color
// note position is "absolute", not easy to get two strings spaced one above each other like this
void displayString(ostringstream &str, double x, double y, GLfloat col[]);
};

2087
example.csv Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,7 @@
#include <GLUT/glut.h>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <math.h>
#include <string>
#include "DLASystem.h"
#include "Window.h"
using namespace std;
@ -25,148 +20,24 @@ namespace drawFuncs {
DLASystem *sys;
int main(int argc, char **argv) {
// turn on glut
glutInit(&argc, argv);
int window_size[] = {480, 480};
string window_title("simple DLA simulation");
// create a window
Window *win = new Window(window_size, window_title);
const auto seed = std::stoi(argv[1]);
char buffer[20];
snprintf(buffer, 20, "seed-%i.csv", seed);
const auto p1 = std::chrono::system_clock::now();
std::ofstream myfile;
myfile.open(buffer);
// create the system
sys = new DLASystem(win);
sys = new DLASystem(std::move(myfile));
// this is the seed for the random numbers
int seed = 6;
cout << "setting seed " << seed << endl;
sys->setSeed(seed);
// print the "help" message to the console
drawFuncs::introMessage();
while (sys->Update()) {
}
// tell openGL how to redraw the screen and respond to the keyboard
glutDisplayFunc(drawFuncs::display);
glutKeyboardFunc(drawFuncs::handleKeypress);
// tell openGL to do its first update after waiting 10ms
int wait = 10;
int val = 0;
glutTimerFunc(wait, drawFuncs::update, val);
// start the openGL stuff
glutMainLoop();
cout << sys->numParticles;
return 0;
}
// this is just a help message
void drawFuncs::introMessage() {
cout << "Keys (while in graphics window):" << endl << " q or e to quit (or exit)" << endl;
cout << " h to print this message (help)" << endl;
cout << " u for a single update" << endl;
cout << " g to start running (go)" << endl;
cout << " p to pause running" << endl;
cout << " s to run in slow-mode" << endl;
cout << " f to run in fast-mode" << endl;
cout << " r to clear everything (reset)" << endl;
cout << " z to pause and zoom in" << endl;
cout << " w or b to change background colour to white or black" << endl;
}
// openGL function deals with the keyboard
void drawFuncs::handleKeypress(unsigned char key, int x, int y) {
switch (key) {
case 'h':
drawFuncs::introMessage();
break;
case 'q':
case 'e':
cout << "Exiting..." << endl;
// delete the system
delete sys;
exit(0);
break;
case 'p':
cout << "pause" << endl;
sys->pauseRunning();
break;
case 'g':
cout << "go" << endl;
sys->setRunning();
glutTimerFunc(0, drawFuncs::update, 0);
break;
case 's':
cout << "slow" << endl;
sys->setSlow();
break;
case 'w':
cout << "white" << endl;
sys->setWinBackgroundWhite();
break;
case 'b':
cout << "black" << endl;
sys->setWinBackgroundBlack();
break;
case 'f':
cout << "fast" << endl;
sys->setFast();
break;
case 'r':
cout << "reset" << endl;
sys->Reset();
break;
case 'z':
cout << "zoom" << endl;
sys->pauseRunning();
sys->viewAddCircle();
break;
case 'u':
cout << "upd" << endl;
sys->Update();
break;
}
// tell openGL to redraw the window
glutPostRedisplay();
}
// this function gets called whenever the algorithm should do its update
void drawFuncs::update(int val) {
int wait; // time to wait between updates (milliseconds)
if (sys->running) {
if (sys->slowNotFast == 1)
wait = 10;
else
wait = 0;
sys->Update();
// tell openGL to call this funtion again after "wait" milliseconds
glutTimerFunc(wait, drawFuncs::update, 0);
}
}
// this function redraws the window when necessary
void drawFuncs::display() {
// Clear the window or more specifically the frame buffer...
// This happens by replacing all the contents of the frame
// buffer by the clear color (black in our case)
glClear(GL_COLOR_BUFFER_BIT);
// this puts the camera at the origin (not sure why) with (I think) z axis out of page and y axis up
// there is also the question of the GL perspective which is not set up in any clear way at the moment
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 0.0, 1.0, /* camera position */
0.0, 0.0, -1.0, /* point to look at */
0.0, 1.0, 0.0); /* up direction */
//sys->DrawSpheres();
sys->DrawSquares();
// Swap contents of backward and forward frame buffers
glutSwapBuffers();
}

BIN
run Executable file

Binary file not shown.

999
seed-2.csv Normal file
View File

@ -0,0 +1,999 @@
0,-1
-1,0
-1,1
0,-2
0,-3
-1,-2
1,-1
0,1
-1,-3
0,2
0,3
0,4
-1,3
1,-3
1,3
2,-1
-1,4
2,-3
-2,4
2,-4
0,-4
-3,4
3,-4
-4,4
-1,-1
0,-5
0,5
-4,5
4,-4
2,3
-5,4
0,-6
2,4
1,5
3,4
-5,5
3,3
3,5
5,-4
2,-5
5,-3
0,-7
6,-4
5,-2
1,-7
7,-4
4,5
7,-5
6,-2
0,-8
3,6
-4,6
0,6
-2,-3
-1,-6
4,3
-1,-8
-4,7
-2,-4
-5,3
-4,8
-1,-9
3,7
3,8
4,6
8,-5
-4,9
4,2
5,6
7,-2
7,-6
-6,3
-1,-10
-5,9
-1,-11
-3,8
-2,-11
5,3
-5,10
9,-5
-5,11
-3,-3
10,-5
8,-2
-5,12
-2,-9
4,8
10,-6
-1,-12
-3,-11
11,-6
12,-6
-3,-12
-6,2
-4,-3
-7,3
0,-12
2,8
6,6
-5,8
-7,4
-6,10
1,-12
5,8
12,-5
-2,-6
4,9
-4,-11
2,-12
2,9
-6,12
2,-6
-6,9
-3,-6
12,-4
-5,-11
4,-5
7,6
11,-4
-2,-12
-1,-13
-8,3
-7,12
-5,-10
12,-7
2,-13
-7,13
-6,13
1,8
-9,3
-10,3
6,8
12,-3
6,9
-6,5
13,-7
6,10
-10,2
-5,13
8,6
-6,8
11,-7
-7,8
8,-6
-6,14
-10,4
-8,13
6,11
-11,3
2,-11
-5,14
5,11
14,-7
3,-11
12,-2
-6,1
-12,3
14,-8
2,-14
15,-8
-12,4
-2,-13
6,12
15,-9
15,-7
-4,14
9,6
13,-4
-4,15
-3,15
13,-2
14,-9
15,-10
-13,3
16,-10
9,7
2,-15
-14,3
3,-15
-8,12
9,8
13,-1
17,-10
-15,3
-12,5
10,7
14,-4
11,7
-6,-11
-6,15
-6,-12
-8,14
18,-10
-7,-11
17,-11
3,-13
11,6
-14,2
12,6
-9,14
12,-8
-14,4
-5,15
-9,15
14,-1
-16,3
17,-12
-6,-13
-9,16
-8,16
13,0
15,-11
14,0
-6,16
-7,-13
-6,-10
14,1
-16,4
-7,-14
17,-13
-5,16
-5,-13
-8,17
-16,2
-16,5
-7,-15
-16,1
-5,-14
18,-13
-8,-15
18,-14
10,8
19,-13
-9,17
-6,17
-13,5
-2,15
-16,0
-17,1
15,-12
13,6
-8,8
12,5
14,-12
-18,1
19,-14
-8,18
-17,3
7,12
-19,1
-8,-13
2,-16
-5,-15
-20,1
13,-12
-8,-11
18,-15
-7,-16
7,13
-9,-15
6,13
15,-6
17,-15
-8,9
19,-15
-17,5
19,-16
-9,18
19,-17
-9,19
19,-12
-9,-16
19,-18
-10,-15
20,-18
21,-18
3,-16
7,14
15,1
-12,2
21,-17
-9,-13
15,-1
-7,-17
-13,6
8,12
21,-16
-2,14
16,1
7,15
10,9
-20,0
19,-11
-10,-13
17,-16
11,9
9,12
3,-17
8,15
7,16
-20,2
13,7
-7,1
-2,16
-6,-17
22,-18
22,-19
17,1
-17,6
-8,-17
14,7
-10,5
7,17
15,2
8,16
23,-19
9,15
-21,0
18,-18
21,-19
-1,16
-9,-11
-8,-10
24,-19
-17,7
18,-19
-21,-1
-11,-13
25,-19
-11,-15
17,2
9,16
26,-19
-7,18
25,-20
20,-11
-12,-15
-5,-17
26,-18
10,16
11,16
15,7
-10,-11
24,-18
-9,-17
7,18
-14,1
12,9
25,-21
26,-21
11,17
-10,16
-5,-9
-22,0
3,-18
-14,0
0,16
-8,19
-23,0
0,17
-23,-1
-10,19
-21,2
18,-20
-18,3
-24,-1
18,2
27,-18
-1,17
16,-6
26,-22
18,1
28,-18
26,-17
20,-10
17,-20
7,19
-17,8
6,19
21,-20
-18,5
0,18
-11,-16
18,3
-19,5
-10,20
27,-22
20,-20
-8,-18
-5,-18
19,3
-25,-1
29,-18
-11,-11
30,-18
-4,-18
-12,-16
8,19
-24,-2
20,3
1,18
-21,3
18,-21
-1,18
21,-11
8,20
-3,-18
-26,-1
20,4
16,-20
4,-15
31,-18
5,19
-8,20
26,-23
28,-22
-13,-15
-8,21
-18,8
28,-23
-17,9
-21,4
-26,0
18,4
-18,9
18,5
-3,-19
-1,19
29,-22
-13,-16
-24,-3
-11,20
-26,-2
-21,5
22,-11
10,17
11,18
-10,17
11,19
-12,20
21,4
7,20
18,6
-24,-4
17,0
12,16
-2,-19
30,-17
-16,9
29,-23
13,16
26,-24
-8,22
-8,23
21,3
-24,-5
-24,-6
8,21
-11,17
-11,2
-19,6
29,-21
18,-9
-13,-17
19,-21
-16,10
-14,-17
21,-21
-8,24
32,-18
32,-19
6,20
-9,24
-8,-9
18,-22
-12,17
-27,-2
26,-25
-20,-1
-8,25
-2,19
14,16
-9,25
22,-12
3,-19
-13,-18
-28,-2
-28,-1
-27,-3
18,-8
25,-22
24,-22
33,-18
-13,-14
-22,5
22,4
14,-13
-23,5
22,3
-28,-3
-29,-1
-19,9
9,20
-28,-4
23,3
-14,-14
29,-24
-26,1
-24,5
23,4
23,-22
-12,16
-15,-17
23,-11
-4,-19
9,21
32,-20
-4,-20
24,-11
33,-20
11,20
-26,2
15,16
30,-16
10,21
11,21
-9,-18
-24,6
34,-20
-29,-4
3,-20
-8,26
6,21
-8,-19
18,-23
32,-21
33,-17
29,-25
-15,-14
25,-25
-15,-18
-7,26
-12,-18
-2,20
-27,2
-24,7
29,-26
-8,27
32,-22
21,2
24,3
11,22
12,22
2,-20
25,-11
-7,27
29,-27
2,-21
30,-15
34,-18
-16,-17
33,-16
-15,-19
29,-15
-8,28
13,22
29,-28
-2,-18
-24,8
-28,-5
26,-11
6,22
17,-23
30,-27
-6,26
33,-22
-29,0
16,-23
31,-27
-15,-13
25,-26
-12,21
21,5
32,-23
-2,21
15,17
11,23
29,-29
1,-21
-18,0
18,-24
18,-25
12,10
15,18
-29,-2
-28,2
-16,-19
29,-14
30,-29
-9,28
-9,9
35,-18
-25,-6
14,22
-14,-19
-13,21
-8,29
14,23
6,23
17,-25
23,-23
25,-27
29,-30
13,23
36,-18
27,-11
-13,16
-9,29
-7,29
34,-16
-17,-19
-16,-14
-30,-4
29,-31
15,19
6,24
-30,-5
32,-24
34,-15
-16,-20
25,3
-17,-14
1,-22
-16,11
-7,-19
15,23
-20,9
21,1
-7,30
-24,9
15,15
29,-32
-24,10
35,-15
34,-14
-6,29
-29,2
-16,-21
13,24
15,-23
25,4
-18,-19
17,-26
-17,-21
35,-14
-30,-2
35,-20
-24,11
-31,-5
15,24
19,-25
32,-27
37,-18
15,25
16,17
-25,5
36,-15
16,-26
-16,-22
-16,-23
-17,-23
-25,11
31,-29
-29,3
28,-32
-4,-21
26,4
6,25
36,-20
-17,-15
26,5
-17,-22
-31,-2
29,-33
-14,21
-12,-19
-10,29
38,-18
-25,10
38,-17
20,-25
39,-18
33,-27
24,-27
33,-28
40,-18
-30,2
-30,-6
41,-18
33,-29
-5,29
26,6
42,-18
-24,-7
-15,-23
27,6
-16,-24
-7,31
-13,22
43,-18
27,7
36,-21
-11,29
30,-33
28,-33
15,-22
-26,11
-25,-7
34,-28
-18,-20
17,-27
29,-13
14,25
27,-10
28,7
-10,30
41,-17
-11,30
-6,31
27,8
-30,0
29,-12
-24,-8
39,-19
-27,11
16,25
33,-30
-15,21
29,-11
16,26
-27,10
42,-17
-30,-7
-18,-22
27,-33
5,25
41,-16
-19,-22
31,-33
-29,4
26,-33
43,-19
27,9
19,-26
33,-31
27,10
-32,-2
44,-19
-12,29
43,-20
-13,23
-31,2
43,-21
-27,12
44,-20
15,-26
30,-34
5,26
-32,-1
-15,-24
-18,-23
-15,22
-5,26
28,10
42,-16
-20,10
-13,29
17,26
-30,-8
-28,10
5,27
26,3
11,24
6,27
-24,-9
-16,-25
43,-16
-3,-21
-27,13
-16,22
-29,10
18,26
16,19
44,-18
-2,-21
-12,28
4,27
44,-21
45,-18
33,-32
4,28
46,-18
17,19
-28,13
16,-27
26,2
-27,14
27,11
46,-19
-28,14
-7,32
34,-32
46,-17
-10,31
-19,-19
-29,13
2,-22
17,-28
42,-15
-17,-25
16,27
16,28
29,-10
-32,2
18,25
19,26
-13,28
-33,-1
-14,-23
-8,-20
16,-28
37,-21
26,-34
-6,-19
17,28
20,26
16,29
-7,33
-14,28
34,-31
-26,14
28,-34
-17,-26
-13,27
45,-21
46,-16
24,-28
-32,-5
46,-21
43,-15
17,29
28,-35
47,-19
45,-22
17,-29
14,26
-33,2
-20,-19
-17,22
18,29
15,8
45,-23
14,27
-34,-1
-35,-1
-14,23
46,-15
-10,32
34,-33
-34,2
-5,-21
-32,-6
43,-14
-13,26
46,-14
47,-17
-20,-22
25,-34
-2,-22
28,-29
28,6
-31,-8
47,-20
-25,14
-13,-23
5,28
-31,-9
28,11
-8,-21
46,-23
17,20
-36,-1
-21,-22
-7,34
27,2
47,-23
-7,35
48,-17
35,-28
35,-31
-13,-24
48,-19
47,-14
49,-17
17,-30
33,-14
42,-14
27,12
43,-22
-12,30
27,-9
46,-24
-29,5
18,30
19,30
-6,35
16,-30
29,6
20,25
13,27
-37,-1
-12,31
47,-24
33,-33
-4,26
-33,-6
-32,-9
-15,28
21,26
48,-23
18,31
22,26
-9,32
-15,29
-34,1
47,-25
48,-14
18,20
18,32
49,-18
-38,-1
45,-14
42,-13
-18,-25
21,25
49,-23
-39,-1
-39,0
45,-24
49,-14
31,-34
31,-35
-39,1
-16,29
-18,-26
4,29
22,27
42,-12
28,-36
25,-35
-40,-1
15,-21
32,-35
49,-13
29,-9
27,1
50,-23
-15,30
-27,15
49,-22
18,33
-8,-22
49,-15
-5,35
-34,-6
-18,-27
16,15
18,34
17,34
23,26
50,-13
-16,30
16,-31
-41,-1
35,-27
-34,3
50,-17
33,-35
-27,16
-42,-1
-41,-2
27,13
-2,-23
14,28
15,-28
16,-32
14,-23
-26,16
-18,-28
1 0 -1
2 -1 0
3 -1 1
4 0 -2
5 0 -3
6 -1 -2
7 1 -1
8 0 1
9 -1 -3
10 0 2
11 0 3
12 0 4
13 -1 3
14 1 -3
15 1 3
16 2 -1
17 -1 4
18 2 -3
19 -2 4
20 2 -4
21 0 -4
22 -3 4
23 3 -4
24 -4 4
25 -1 -1
26 0 -5
27 0 5
28 -4 5
29 4 -4
30 2 3
31 -5 4
32 0 -6
33 2 4
34 1 5
35 3 4
36 -5 5
37 3 3
38 3 5
39 5 -4
40 2 -5
41 5 -3
42 0 -7
43 6 -4
44 5 -2
45 1 -7
46 7 -4
47 4 5
48 7 -5
49 6 -2
50 0 -8
51 3 6
52 -4 6
53 0 6
54 -2 -3
55 -1 -6
56 4 3
57 -1 -8
58 -4 7
59 -2 -4
60 -5 3
61 -4 8
62 -1 -9
63 3 7
64 3 8
65 4 6
66 8 -5
67 -4 9
68 4 2
69 5 6
70 7 -2
71 7 -6
72 -6 3
73 -1 -10
74 -5 9
75 -1 -11
76 -3 8
77 -2 -11
78 5 3
79 -5 10
80 9 -5
81 -5 11
82 -3 -3
83 10 -5
84 8 -2
85 -5 12
86 -2 -9
87 4 8
88 10 -6
89 -1 -12
90 -3 -11
91 11 -6
92 12 -6
93 -3 -12
94 -6 2
95 -4 -3
96 -7 3
97 0 -12
98 2 8
99 6 6
100 -5 8
101 -7 4
102 -6 10
103 1 -12
104 5 8
105 12 -5
106 -2 -6
107 4 9
108 -4 -11
109 2 -12
110 2 9
111 -6 12
112 2 -6
113 -6 9
114 -3 -6
115 12 -4
116 -5 -11
117 4 -5
118 7 6
119 11 -4
120 -2 -12
121 -1 -13
122 -8 3
123 -7 12
124 -5 -10
125 12 -7
126 2 -13
127 -7 13
128 -6 13
129 1 8
130 -9 3
131 -10 3
132 6 8
133 12 -3
134 6 9
135 -6 5
136 13 -7
137 6 10
138 -10 2
139 -5 13
140 8 6
141 -6 8
142 11 -7
143 -7 8
144 8 -6
145 -6 14
146 -10 4
147 -8 13
148 6 11
149 -11 3
150 2 -11
151 -5 14
152 5 11
153 14 -7
154 3 -11
155 12 -2
156 -6 1
157 -12 3
158 14 -8
159 2 -14
160 15 -8
161 -12 4
162 -2 -13
163 6 12
164 15 -9
165 15 -7
166 -4 14
167 9 6
168 13 -4
169 -4 15
170 -3 15
171 13 -2
172 14 -9
173 15 -10
174 -13 3
175 16 -10
176 9 7
177 2 -15
178 -14 3
179 3 -15
180 -8 12
181 9 8
182 13 -1
183 17 -10
184 -15 3
185 -12 5
186 10 7
187 14 -4
188 11 7
189 -6 -11
190 -6 15
191 -6 -12
192 -8 14
193 18 -10
194 -7 -11
195 17 -11
196 3 -13
197 11 6
198 -14 2
199 12 6
200 -9 14
201 12 -8
202 -14 4
203 -5 15
204 -9 15
205 14 -1
206 -16 3
207 17 -12
208 -6 -13
209 -9 16
210 -8 16
211 13 0
212 15 -11
213 14 0
214 -6 16
215 -7 -13
216 -6 -10
217 14 1
218 -16 4
219 -7 -14
220 17 -13
221 -5 16
222 -5 -13
223 -8 17
224 -16 2
225 -16 5
226 -7 -15
227 -16 1
228 -5 -14
229 18 -13
230 -8 -15
231 18 -14
232 10 8
233 19 -13
234 -9 17
235 -6 17
236 -13 5
237 -2 15
238 -16 0
239 -17 1
240 15 -12
241 13 6
242 -8 8
243 12 5
244 14 -12
245 -18 1
246 19 -14
247 -8 18
248 -17 3
249 7 12
250 -19 1
251 -8 -13
252 2 -16
253 -5 -15
254 -20 1
255 13 -12
256 -8 -11
257 18 -15
258 -7 -16
259 7 13
260 -9 -15
261 6 13
262 15 -6
263 17 -15
264 -8 9
265 19 -15
266 -17 5
267 19 -16
268 -9 18
269 19 -17
270 -9 19
271 19 -12
272 -9 -16
273 19 -18
274 -10 -15
275 20 -18
276 21 -18
277 3 -16
278 7 14
279 15 1
280 -12 2
281 21 -17
282 -9 -13
283 15 -1
284 -7 -17
285 -13 6
286 8 12
287 21 -16
288 -2 14
289 16 1
290 7 15
291 10 9
292 -20 0
293 19 -11
294 -10 -13
295 17 -16
296 11 9
297 9 12
298 3 -17
299 8 15
300 7 16
301 -20 2
302 13 7
303 -7 1
304 -2 16
305 -6 -17
306 22 -18
307 22 -19
308 17 1
309 -17 6
310 -8 -17
311 14 7
312 -10 5
313 7 17
314 15 2
315 8 16
316 23 -19
317 9 15
318 -21 0
319 18 -18
320 21 -19
321 -1 16
322 -9 -11
323 -8 -10
324 24 -19
325 -17 7
326 18 -19
327 -21 -1
328 -11 -13
329 25 -19
330 -11 -15
331 17 2
332 9 16
333 26 -19
334 -7 18
335 25 -20
336 20 -11
337 -12 -15
338 -5 -17
339 26 -18
340 10 16
341 11 16
342 15 7
343 -10 -11
344 24 -18
345 -9 -17
346 7 18
347 -14 1
348 12 9
349 25 -21
350 26 -21
351 11 17
352 -10 16
353 -5 -9
354 -22 0
355 3 -18
356 -14 0
357 0 16
358 -8 19
359 -23 0
360 0 17
361 -23 -1
362 -10 19
363 -21 2
364 18 -20
365 -18 3
366 -24 -1
367 18 2
368 27 -18
369 -1 17
370 16 -6
371 26 -22
372 18 1
373 28 -18
374 26 -17
375 20 -10
376 17 -20
377 7 19
378 -17 8
379 6 19
380 21 -20
381 -18 5
382 0 18
383 -11 -16
384 18 3
385 -19 5
386 -10 20
387 27 -22
388 20 -20
389 -8 -18
390 -5 -18
391 19 3
392 -25 -1
393 29 -18
394 -11 -11
395 30 -18
396 -4 -18
397 -12 -16
398 8 19
399 -24 -2
400 20 3
401 1 18
402 -21 3
403 18 -21
404 -1 18
405 21 -11
406 8 20
407 -3 -18
408 -26 -1
409 20 4
410 16 -20
411 4 -15
412 31 -18
413 5 19
414 -8 20
415 26 -23
416 28 -22
417 -13 -15
418 -8 21
419 -18 8
420 28 -23
421 -17 9
422 -21 4
423 -26 0
424 18 4
425 -18 9
426 18 5
427 -3 -19
428 -1 19
429 29 -22
430 -13 -16
431 -24 -3
432 -11 20
433 -26 -2
434 -21 5
435 22 -11
436 10 17
437 11 18
438 -10 17
439 11 19
440 -12 20
441 21 4
442 7 20
443 18 6
444 -24 -4
445 17 0
446 12 16
447 -2 -19
448 30 -17
449 -16 9
450 29 -23
451 13 16
452 26 -24
453 -8 22
454 -8 23
455 21 3
456 -24 -5
457 -24 -6
458 8 21
459 -11 17
460 -11 2
461 -19 6
462 29 -21
463 18 -9
464 -13 -17
465 19 -21
466 -16 10
467 -14 -17
468 21 -21
469 -8 24
470 32 -18
471 32 -19
472 6 20
473 -9 24
474 -8 -9
475 18 -22
476 -12 17
477 -27 -2
478 26 -25
479 -20 -1
480 -8 25
481 -2 19
482 14 16
483 -9 25
484 22 -12
485 3 -19
486 -13 -18
487 -28 -2
488 -28 -1
489 -27 -3
490 18 -8
491 25 -22
492 24 -22
493 33 -18
494 -13 -14
495 -22 5
496 22 4
497 14 -13
498 -23 5
499 22 3
500 -28 -3
501 -29 -1
502 -19 9
503 9 20
504 -28 -4
505 23 3
506 -14 -14
507 29 -24
508 -26 1
509 -24 5
510 23 4
511 23 -22
512 -12 16
513 -15 -17
514 23 -11
515 -4 -19
516 9 21
517 32 -20
518 -4 -20
519 24 -11
520 33 -20
521 11 20
522 -26 2
523 15 16
524 30 -16
525 10 21
526 11 21
527 -9 -18
528 -24 6
529 34 -20
530 -29 -4
531 3 -20
532 -8 26
533 6 21
534 -8 -19
535 18 -23
536 32 -21
537 33 -17
538 29 -25
539 -15 -14
540 25 -25
541 -15 -18
542 -7 26
543 -12 -18
544 -2 20
545 -27 2
546 -24 7
547 29 -26
548 -8 27
549 32 -22
550 21 2
551 24 3
552 11 22
553 12 22
554 2 -20
555 25 -11
556 -7 27
557 29 -27
558 2 -21
559 30 -15
560 34 -18
561 -16 -17
562 33 -16
563 -15 -19
564 29 -15
565 -8 28
566 13 22
567 29 -28
568 -2 -18
569 -24 8
570 -28 -5
571 26 -11
572 6 22
573 17 -23
574 30 -27
575 -6 26
576 33 -22
577 -29 0
578 16 -23
579 31 -27
580 -15 -13
581 25 -26
582 -12 21
583 21 5
584 32 -23
585 -2 21
586 15 17
587 11 23
588 29 -29
589 1 -21
590 -18 0
591 18 -24
592 18 -25
593 12 10
594 15 18
595 -29 -2
596 -28 2
597 -16 -19
598 29 -14
599 30 -29
600 -9 28
601 -9 9
602 35 -18
603 -25 -6
604 14 22
605 -14 -19
606 -13 21
607 -8 29
608 14 23
609 6 23
610 17 -25
611 23 -23
612 25 -27
613 29 -30
614 13 23
615 36 -18
616 27 -11
617 -13 16
618 -9 29
619 -7 29
620 34 -16
621 -17 -19
622 -16 -14
623 -30 -4
624 29 -31
625 15 19
626 6 24
627 -30 -5
628 32 -24
629 34 -15
630 -16 -20
631 25 3
632 -17 -14
633 1 -22
634 -16 11
635 -7 -19
636 15 23
637 -20 9
638 21 1
639 -7 30
640 -24 9
641 15 15
642 29 -32
643 -24 10
644 35 -15
645 34 -14
646 -6 29
647 -29 2
648 -16 -21
649 13 24
650 15 -23
651 25 4
652 -18 -19
653 17 -26
654 -17 -21
655 35 -14
656 -30 -2
657 35 -20
658 -24 11
659 -31 -5
660 15 24
661 19 -25
662 32 -27
663 37 -18
664 15 25
665 16 17
666 -25 5
667 36 -15
668 16 -26
669 -16 -22
670 -16 -23
671 -17 -23
672 -25 11
673 31 -29
674 -29 3
675 28 -32
676 -4 -21
677 26 4
678 6 25
679 36 -20
680 -17 -15
681 26 5
682 -17 -22
683 -31 -2
684 29 -33
685 -14 21
686 -12 -19
687 -10 29
688 38 -18
689 -25 10
690 38 -17
691 20 -25
692 39 -18
693 33 -27
694 24 -27
695 33 -28
696 40 -18
697 -30 2
698 -30 -6
699 41 -18
700 33 -29
701 -5 29
702 26 6
703 42 -18
704 -24 -7
705 -15 -23
706 27 6
707 -16 -24
708 -7 31
709 -13 22
710 43 -18
711 27 7
712 36 -21
713 -11 29
714 30 -33
715 28 -33
716 15 -22
717 -26 11
718 -25 -7
719 34 -28
720 -18 -20
721 17 -27
722 29 -13
723 14 25
724 27 -10
725 28 7
726 -10 30
727 41 -17
728 -11 30
729 -6 31
730 27 8
731 -30 0
732 29 -12
733 -24 -8
734 39 -19
735 -27 11
736 16 25
737 33 -30
738 -15 21
739 29 -11
740 16 26
741 -27 10
742 42 -17
743 -30 -7
744 -18 -22
745 27 -33
746 5 25
747 41 -16
748 -19 -22
749 31 -33
750 -29 4
751 26 -33
752 43 -19
753 27 9
754 19 -26
755 33 -31
756 27 10
757 -32 -2
758 44 -19
759 -12 29
760 43 -20
761 -13 23
762 -31 2
763 43 -21
764 -27 12
765 44 -20
766 15 -26
767 30 -34
768 5 26
769 -32 -1
770 -15 -24
771 -18 -23
772 -15 22
773 -5 26
774 28 10
775 42 -16
776 -20 10
777 -13 29
778 17 26
779 -30 -8
780 -28 10
781 5 27
782 26 3
783 11 24
784 6 27
785 -24 -9
786 -16 -25
787 43 -16
788 -3 -21
789 -27 13
790 -16 22
791 -29 10
792 18 26
793 16 19
794 44 -18
795 -2 -21
796 -12 28
797 4 27
798 44 -21
799 45 -18
800 33 -32
801 4 28
802 46 -18
803 17 19
804 -28 13
805 16 -27
806 26 2
807 -27 14
808 27 11
809 46 -19
810 -28 14
811 -7 32
812 34 -32
813 46 -17
814 -10 31
815 -19 -19
816 -29 13
817 2 -22
818 17 -28
819 42 -15
820 -17 -25
821 16 27
822 16 28
823 29 -10
824 -32 2
825 18 25
826 19 26
827 -13 28
828 -33 -1
829 -14 -23
830 -8 -20
831 16 -28
832 37 -21
833 26 -34
834 -6 -19
835 17 28
836 20 26
837 16 29
838 -7 33
839 -14 28
840 34 -31
841 -26 14
842 28 -34
843 -17 -26
844 -13 27
845 45 -21
846 46 -16
847 24 -28
848 -32 -5
849 46 -21
850 43 -15
851 17 29
852 28 -35
853 47 -19
854 45 -22
855 17 -29
856 14 26
857 -33 2
858 -20 -19
859 -17 22
860 18 29
861 15 8
862 45 -23
863 14 27
864 -34 -1
865 -35 -1
866 -14 23
867 46 -15
868 -10 32
869 34 -33
870 -34 2
871 -5 -21
872 -32 -6
873 43 -14
874 -13 26
875 46 -14
876 47 -17
877 -20 -22
878 25 -34
879 -2 -22
880 28 -29
881 28 6
882 -31 -8
883 47 -20
884 -25 14
885 -13 -23
886 5 28
887 -31 -9
888 28 11
889 -8 -21
890 46 -23
891 17 20
892 -36 -1
893 -21 -22
894 -7 34
895 27 2
896 47 -23
897 -7 35
898 48 -17
899 35 -28
900 35 -31
901 -13 -24
902 48 -19
903 47 -14
904 49 -17
905 17 -30
906 33 -14
907 42 -14
908 27 12
909 43 -22
910 -12 30
911 27 -9
912 46 -24
913 -29 5
914 18 30
915 19 30
916 -6 35
917 16 -30
918 29 6
919 20 25
920 13 27
921 -37 -1
922 -12 31
923 47 -24
924 33 -33
925 -4 26
926 -33 -6
927 -32 -9
928 -15 28
929 21 26
930 48 -23
931 18 31
932 22 26
933 -9 32
934 -15 29
935 -34 1
936 47 -25
937 48 -14
938 18 20
939 18 32
940 49 -18
941 -38 -1
942 45 -14
943 42 -13
944 -18 -25
945 21 25
946 49 -23
947 -39 -1
948 -39 0
949 45 -24
950 49 -14
951 31 -34
952 31 -35
953 -39 1
954 -16 29
955 -18 -26
956 4 29
957 22 27
958 42 -12
959 28 -36
960 25 -35
961 -40 -1
962 15 -21
963 32 -35
964 49 -13
965 29 -9
966 27 1
967 50 -23
968 -15 30
969 -27 15
970 49 -22
971 18 33
972 -8 -22
973 49 -15
974 -5 35
975 -34 -6
976 -18 -27
977 16 15
978 18 34
979 17 34
980 23 26
981 50 -13
982 -16 30
983 16 -31
984 -41 -1
985 35 -27
986 -34 3
987 50 -17
988 33 -35
989 -27 16
990 -42 -1
991 -41 -2
992 27 13
993 -2 -23
994 14 28
995 15 -28
996 16 -32
997 14 -23
998 -26 16
999 -18 -28

1
seed-2.json Normal file

File diff suppressed because one or more lines are too long