polybot

polybot API

Get a single polygon

GET https://api.noopschallenge.com/polybot

HTTP 200

{
  "polygons": [
    [
      { "x": 484, "y": 1000 },
      { "x": 475, "y": 1000 },
      { "x": 317, "y": 980 },
      { "x": 339, "y": 930 },
      { "x": 466, "y": 856 },
      { "x": 490, "y": 899 }
    ]
  ]
}

Specify minimum number of sides

GET https://api.noopschallenge.com/polybot?count=5&minSides=4

HTTP 200

{
  "polygons": [
    [
      { "x": 417, "y": 714 },
      { "x": 283, "y": 822 },
      { "x": 214, "y": 908 },
      { "x": 50, "y": 827 },
      { "x": 0, "y": 652 },
      { "x": 0, "y": 506 },
      { "x": 0, "y": 505 },
      { "x": 39, "y": 262 },
      { "x": 207, "y": 346 },
      { "x": 291, "y": 358 },
      { "x": 430, "y": 482 }
    ],
    [
      { "x": 897, "y": 941 },
      { "x": 992, "y": 1000 },
      { "x": 877, "y": 1000 },
      { "x": 763, "y": 1000 },
      { "x": 720, "y": 1000 },
      { "x": 605, "y": 1000 },
      { "x": 516, "y": 1000 },
      { "x": 326, "y": 1000 },
      { "x": 464, "y": 967 },
      { "x": 421, "y": 858 },
      { "x": 396, "y": 811 },
      { "x": 390, "y": 629 },
      { "x": 539, "y": 665 },
      { "x": 583, "y": 641 },
      { "x": 719, "y": 488 },
      { "x": 817, "y": 561 },
      { "x": 910, "y": 520 },
      { "x": 959, "y": 728 },
      { "x": 1000, "y": 753 }
    ],
    [
      { "x": 559, "y": 153 },
      { "x": 527, "y": 278 },
      { "x": 369, "y": 429 },
      { "x": 258, "y": 189 },
      { "x": 200, "y": 28 },
      { "x": 267, "y": 0 },
      { "x": 472, "y": 0 },
      { "x": 652, "y": 62 }
    ],
    [
      { "x": 478, "y": 577 },
      { "x": 337, "y": 530 },
      { "x": 331, "y": 526 },
      { "x": 307, "y": 361 },
      { "x": 421, "y": 331 },
      { "x": 475, "y": 347 }
    ],
    [
      { "x": 371, "y": 871 },
      { "x": 380, "y": 903 },
      { "x": 343, "y": 926 },
      { "x": 302, "y": 945 },
      { "x": 271, "y": 938 },
      { "x": 257, "y": 1000 },
      { "x": 231, "y": 996 },
      { "x": 183, "y": 958 },
      { "x": 181, "y": 907 },
      { "x": 164, "y": 898 },
      { "x": 152, "y": 871 },
      { "x": 132, "y": 848 },
      { "x": 100, "y": 825 },
      { "x": 168, "y": 813 },
      { "x": 135, "y": 763 },
      { "x": 205, "y": 759 },
      { "x": 217, "y": 737 },
      { "x": 255, "y": 736 },
      { "x": 272, "y": 729 },
      { "x": 315, "y": 765 },
      { "x": 318, "y": 776 },
      { "x": 320, "y": 811 },
      { "x": 351, "y": 847 }
    ]
  ]
}

Specify maximum number of sides

GET https://api.noopschallenge.com/polybot?count=5&maxSides=12

HTTP 200

{
  "polygons": [
    [
      { "x": 1000, "y": 410 },
      { "x": 696, "y": 315 },
      { "x": 671, "y": 76 },
      { "x": 777, "y": 61 },
      { "x": 1000, "y": 42 }
    ],
    [
      { "x": 603, "y": 688 },
      { "x": 553, "y": 715 },
      { "x": 512, "y": 647 },
      { "x": 475, "y": 607 },
      { "x": 527, "y": 583 },
      { "x": 596, "y": 599 }
    ],
    [
      { "x": 702, "y": 275 },
      { "x": 660, "y": 287 },
      { "x": 633, "y": 320 },
      { "x": 593, "y": 302 },
      { "x": 594, "y": 270 },
      { "x": 578, "y": 229 },
      { "x": 583, "y": 193 },
      { "x": 600, "y": 193 },
      { "x": 656, "y": 157 },
      { "x": 675, "y": 200 },
      { "x": 689, "y": 215 }
    ],
    [
      { "x": 743, "y": 91 },
      { "x": 678, "y": 239 },
      { "x": 419, "y": 118 },
      { "x": 366, "y": 0 },
      { "x": 447, "y": 0 },
      { "x": 639, "y": 0 },
      { "x": 819, "y": 4 }
    ],
    [
      { "x": 698, "y": 512 },
      { "x": 612, "y": 524 },
      { "x": 522, "y": 481 },
      { "x": 578, "y": 465 },
      { "x": 679, "y": 366 },
      { "x": 700, "y": 380 }
    ]
  ]
}

Specify exact number of sides

GET https://api.noopschallenge.com/polybot?minSides=6&maxSides=6

HTTP 200

{
  "polygons": [
    [
      { "x": 854, "y": 61 },
      { "x": 845, "y": 76 },
      { "x": 823, "y": 69 },
      { "x": 822, "y": 45 },
      { "x": 843, "y": 36 },
      { "x": 856, "y": 56 }
    ]
  ]
}

Specify polygon size

GET https://api.noopschallenge.com/polybot?count=2&size=100&minSides=6&maxSides=6

HTTP 200

{
  "polygons": [
    [
      { "x": 599, "y": 469 },
      { "x": 574, "y": 499 },
      { "x": 539, "y": 464 },
      { "x": 552, "y": 444 },
      { "x": 552, "y": 430 },
      { "x": 584, "y": 448 }
    ],
    [
      { "x": 797, "y": 900 },
      { "x": 795, "y": 906 },
      { "x": 784, "y": 901 },
      { "x": 781, "y": 895 },
      { "x": 788, "y": 886 },
      { "x": 797, "y": 893 }
    ]
  ]
}

Constrain polygon to bounds

GET https://api.noopschallenge.com/polybot?count=2&width=10&height=10

HTTP 200

{
  "polygons": [
    [
      { "x": 10, "y": 8 },
      { "x": 10, "y": 9 },
      { "x": 9, "y": 9 },
      { "x": 8, "y": 9 },
      { "x": 8, "y": 9 },
      { "x": 7, "y": 8 },
      { "x": 7, "y": 7 },
      { "x": 8, "y": 7 },
      { "x": 8, "y": 6 },
      { "x": 9, "y": 6 },
      { "x": 9, "y": 7 },
      { "x": 10, "y": 7 }
    ],
    [
      { "x": 4, "y": 8 },
      { "x": 3, "y": 8 },
      { "x": 3, "y": 7 },
      { "x": 3, "y": 7 },
      { "x": 4, "y": 7 }
    ]
  ]
}

Get multiple polygons

GET https://api.noopschallenge.com/polybot?count=5

HTTP 200

{
  "polygons": [
    [
      { "x": 867, "y": 197 },
      { "x": 745, "y": 166 },
      { "x": 699, "y": 267 },
      { "x": 577, "y": 297 },
      { "x": 495, "y": 226 },
      { "x": 364, "y": 69 },
      { "x": 450, "y": 0 },
      { "x": 431, "y": 0 },
      { "x": 582, "y": 0 },
      { "x": 680, "y": 0 },
      { "x": 801, "y": 0 },
      { "x": 915, "y": 0 }
    ],
    [
      { "x": 1000, "y": 992 },
      { "x": 1000, "y": 1000 },
      { "x": 928, "y": 1000 },
      { "x": 585, "y": 1000 },
      { "x": 582, "y": 1000 },
      { "x": 750, "y": 760 },
      { "x": 1000, "y": 628 },
      { "x": 1000, "y": 600 },
      { "x": 1000, "y": 842 }
    ],
    [
      { "x": 1000, "y": 1000 },
      { "x": 1000, "y": 1000 },
      { "x": 969, "y": 1000 },
      { "x": 746, "y": 1000 },
      { "x": 682, "y": 1000 },
      { "x": 563, "y": 1000 },
      { "x": 643, "y": 915 },
      { "x": 663, "y": 812 },
      { "x": 753, "y": 722 },
      { "x": 859, "y": 614 },
      { "x": 989, "y": 751 },
      { "x": 1000, "y": 803 },
      { "x": 1000, "y": 795 }
    ],
    [
      { "x": 451, "y": 870 },
      { "x": 319, "y": 1000 },
      { "x": 133, "y": 972 },
      { "x": 0, "y": 972 },
      { "x": 0, "y": 698 },
      { "x": 0, "y": 604 },
      { "x": 168, "y": 412 },
      { "x": 303, "y": 430 },
      { "x": 512, "y": 724 }
    ],
    [
      { "x": 214, "y": 320 },
      { "x": 0, "y": 374 },
      { "x": 0, "y": 71 },
      { "x": 184, "y": 0 }
    ]
  ]
}