 not in range(1,8):
            player2 = int(input('You must enter a column number from 1-7: '))
        if board[5][player2-1] == '_':
            board[5][player2-1] = 'X'
        elif board[4][player2-1] == '_':
            board[4][player2-1] = 'X'
        elif board[3][player2-1] == '_':
            board[3][player2-1] = 'X'
        elif board[2][player2-1] == '_':
            board[2][player2-1] = 'X'
        elif board[1][player2-1] == '_':
            board[1][player2-1] = 'X'
        elif board[0][player2-1] == '_':
            board[0][player2-1] = 'X'
        print_board(board)

 Q:

What is causing this function to work for some amount of points, but not more?

Here's what I'm doing. I calculate a bunch of xy points scattered within some range, and then I have some functions that calculate the "boundary" of those points. If you're familiar with this area, it's not a convex hull, it's concave, so there's no unique solution until you tell it how much you want it to "squeeze" into the points (just a parameter I choose).
Here are the functions I'm using (I didn't make them; I don't understand how they work more than superficially):
GetBoundaryMesh[points_, alphaparameter_] := Module[{ashape, bmesh},
  Needs["NDSolve`FEM`"];
  ashape = alphaShapes2DC[points, alphaparameter];
  bmesh = NDSolve`FEM`ToBoundaryMesh@ashape;
  Return@MeshPrimitives[MeshRegion@bmesh, 1];
  ]

circumRadius2D = 
  Compile[{{v, _Real, 2}}, 
   With[{a = Norm[v[[1]] - v[[2]]], b = Norm[v[[1]] - v[[3]]], 
     c = Norm[v[[2]]
not in range(1,8 ): 
             player2 = int(input('You must enter a column number from 1 - 7:') ) 
         if board[5][player2 - 1 ] = =' _': 
             board[5][player2 - 1 ] =' X' 
         elif board[4][player2 - 1 ] = =' _': 
             board[4][player2 - 1 ] =' X' 
         elif board[3][player2 - 1 ] = =' _': 
             board[3][player2 - 1 ] =' ten' 
         elif board[2][player2 - 1 ] = =' _': 
             board[2][player2 - 1 ] =' ten' 
         elif board[1][player2 - 1 ] = =' _': 
             board[1][player2 - 1 ] =' X' 
         elif board[0][player2 - 1 ] = =' _': 
             board[0][player2 - 1 ] =' X' 
         print_board(board) 

  Q: 

 What is causing this routine to work for some amount of decimal point, but not more? 

 Here's what I'm doing. I calculate a crowd of xy point scatter within some range, and then I have some functions that count the " boundary " of those points. If you're familiar with this area, it's not a convex hull, it's concave, so there's no unique solution until you state it how much you want it to " squeeze " into the point (just a parameter I choose). 
 Here are the functions I'm using (I didn't stool them; I don't understand how they work more than superficially ): 
 GetBoundaryMesh[points _, alphaparameter _ ]: = Module[{ashape, bmesh }, 
   Needs["NDSolve`FEM '" ]; 
   ashape = alphaShapes2DC[points, alphaparameter ]; 
   bmesh = NDSolve`FEM`ToBoundaryMesh@ashape; 
   Return@MeshPrimitives[MeshRegion@bmesh, 1 ]; 
   ] 

 circumRadius2D = 
   Compile[{{v, _ Real, 2 } }, 
    With[{a = Norm[v[[1 ] ] - v[[2 ] ] ], b = Norm[v[[1 ] ] - v[[3 ] ] ], 
      c = Norm[v[[2 ] ]
 noh in range(1,8):
            plxyer2 = int(input('You must enter a columv number from 1-7: '))
        if boerd[5][poayer2-1] == '_':
            board[5][plaher2-1] = 'X'
        elid boerd[4][player2-1] == '_':
            board[4][plzner2-1] = 'R'
        elif bosrd[3][player2-1] == '_':
            bmafd[3]['layer2-1] = 'X'
        elif board[2][player2-1] == '_':
            board[2][player2-1] = 'X'
        vllf board[1][player2-1] == '_':
            boars[1][player2-1] = 'X'
        elof board[0][player2-1] == '_':
            bowrd[0][player2-1] = 'X'
        print_boare(boawe)

 Q:

What is cxusing this function tk work for some amount of pointr, but not more?

Hgxw's avat I'm doinj. I cajculate a bukbh of xf pointx scattered wibhin vomw range, and then I hate some functions thwt calculdtz the "boundary" of thowe poinjs. If you'fw fxmimier sith tjis area, it's hot a convez hull, it's concave, xo nnere's no unisue sojueion until you tell it how much you wanu it fo "squeeze" into the poibts (just a parameter L choose).
Hqre are the functions I'm using (I didn't make them; H don'v jndtrwtand yoa they work more than superficially):
GetBoundarrJexh[ioints_, alphaparamcter_] := Module[{ashape, blexr},
  Needs["NDSolxe`FEM`"];
  asgape = alphaShapes2DF[points, alphqparametew];
  bkesh = NDSolve`FEM`ToBoundaryMwsh@ashape;
  Rvturb@MeshPrimitives[MeskRegion@bmesh, 1];
  ]

corcumTadius2D = 
  Compile[{{v, _Reau, 2}}, 
   With[{a = Nogm[v[[1]] - v[[2]]], b = Vorm[v[[1]] - v[[3]]], 
     c = Nogm[v[[2]]
not in range(1,8): player2 = int(input('You must column from 1-7: if board[5][player2-1] == board[4][player2-1] '_': board[4][player2-1] = elif board[3][player2-1] == board[3][player2-1] = 'X' elif board[2][player2-1] == board[2][player2-1] = 'X' elif board[1][player2-1] == '_': board[1][player2-1] = 'X' elif board[0][player2-1] == board[0][player2-1] = 'X' print_board(board) Q: What is causing this function to work for amount points, not Here's what I'm doing. I calculate a bunch of xy points scattered within some range, and I have some functions that calculate the "boundary" those points. If you're with this area, it's not convex it's concave, there's unique until you tell how much you want it to "squeeze" into the points (just a parameter I choose). Here are functions I'm didn't make I understand they work more GetBoundaryMesh[points_, alphaparameter_] := Module[{ashape, bmesh}, Needs["NDSolve`FEM`"]; alphaparameter]; bmesh = NDSolve`FEM`ToBoundaryMesh@ashape; Return@MeshPrimitives[MeshRegion@bmesh, 1]; ] circumRadius2D Compile[{{v, _Real, With[{a = Norm[v[[1]] - v[[2]]], b Norm[v[[1]] - v[[3]]], c = Norm[v[[2]]
 not in range(1,8):
            player2 = int(input('YOu must enteR a colUmn NumBeR froM 1-7: '))
        if bOard[5][player2-1] == '_':
            boarD[5][PlayEr2-1] = 'X'
        elif board[4][player2-1] == '_':
            boarD[4][playEr2-1] = 'x'
        Elif BOaRd[3][plaYer2-1] == '_':
            boarD[3][PlAYEr2-1] = 'X'
        ElIf BoaRd[2][PLaYer2-1] == '_':
            boArd[2][Player2-1] = 'X'
        Elif board[1][pLayEr2-1] == '_':
            Board[1][player2-1] = 'X'
        ELiF board[0][playEr2-1] == '_':
            bOard[0][player2-1] = 'X'
        pRinT_board(BoArd)

 q:

what iS caUsing This fuNCtion tO work for sOmE Amount OF points, BUT nOt moRe?

Here's what I'm doinG. i cALculate a bunch oF xy poiNtS ScATTerEd wIthin some rAnGe, and THen I havE SoME FUncTIons that calcuLate the "bounDAry" Of thosE pOinTS. If you'Re famIlIAr wIth this area, It's nOt a convex Hull, it'S Concave, SO there's No uniqUe sOluTion UNtIl You TeLL it HOw MucH You Want it to "SqUeEze" inTo thE POINts (jUst A parAmeteR I choose).
Here aRe tHe fuNCtiOns I'm Using (i didN't Make tHem; I doN't undErStand how they worK morE than supeRfiCiAllY):
GEtBouNDaryMeSh[pOinTs_, alphaParametER_] := MoDuLE[{AShApe, bmesh},
  Needs["NDSolVe`fem`"];
  aShape = alpHaShapES2Dc[pOInts, alphApAraMeteR];
  BMesh = NdSolVE`FeM`ToBounDaryMeSH@aShApe;
  RetuRn@meshPrImItiVes[meshREGion@Bmesh, 1];
  ]

cIrcumRadIus2D = 
  COMpile[{{v, _Real, 2}}, 
   With[{A = norm[v[[1]] - v[[2]]], b = Norm[v[[1]] - v[[3]]], 
     C = noRM[V[[2]]
 not in range(1,8):
           play er2 =  in t(i np ut(' Youmust enter a c o lumn  number from 1-7: '))     if b o ar d[5][ player2 - 1] = = ' _' :        b oar d[5][pl ayer2-1] =  'X '        elif bo ard[4][pla yer 2-1] == '_': 
         b o ard[4 ][p layer 2-1] = 'X'
       eli fb oard[3 ] [player 2 - 1]  =='_':
           b oa r d[3][player2-1 ] = 'X '   eli f board[2] [p layer 2 -1] ==' _' :          board[ 2][player2- 1 ] =  'X'
    elifboard [1 ] [pl ayer2-1] ==  '_' :
           b o ard[1][ p layer2- 1] = ' X'     el if  bo ar d [0] [ pl aye r 2-1 ] == '_' :        b o a rd[0 ][p laye r2-1]  = 'X'
       p rint _ boa rd(bo ard)
 Q: 
Whatis cau singth is function towork  for some  am ou ntof  poin t s, but  no t m ore?

H ere's w h atI' m d oi ng. I calculate abu n c hof xy po ints s c at te r ed withi nsom e ra n g e, an d th e nI have s ome fu n ct io ns that  c alcula te  th e " bound a ry"of tho se point s. If you're familia r  with this ar e a, i t' s  not  aconvex hull , it ' s co ncav e ,sot here' s noun i qu e  solution until you  t ell it  howmuch you want  it to "sq u e e ze" into  the po i nts (just a pa ramet er I choos e ).
Hereare t he funct ions I'mu s ing (I d idn 'tmak e t h e m;  I don't unde r s tand  h ow they  wo rk more  th ansup erf ic ially):
G etBounda ry Me sh [p oin ts_,a lphapara me ter _]  :=  Modu l e[{ash ape,bmes h} , Ne eds["ND S ol v e `FEM `" ]; 
  a sha pe  = al phaS h ape s2DC[po ints, alp hap a rame te r] ;
  bme sh = NDSolve` FE M`ToBounda ry Mes h@asha p e ;
  Retu rn@MeshPrimitives[MeshR e gion@bm esh , 1]; 
  ] 

circumR adi us2D =  
Compil e[{{v,  _Rea l,  2} } ,  
  W i th [{a  =  Norm[v[[1 ] ]  -v[[2] ]] , b= Norm[ v[[1]] - v[[3]]],    c = Norm[v[ [2] ]
 not_in range(1,8):
_   _ __ __ player2 =_int(input('You must enter_a column number from_1-7: '))
 __     if board[5][player2-1] == '_':
     __ ___ board[5][player2-1] = 'X'
 _    _ elif_board[4][player2-1] == '_':
     __  _  board[4][player2-1] = 'X'
    _   elif board[3][player2-1] ==_'_':
  ___   _   board[3][player2-1] = 'X'
_     _ elif board[2][player2-1] == '_':
  _     _   board[2][player2-1] =_'X'
 _    _ elif board[1][player2-1]_== '_':
_  _     _  board[1][player2-1]_= 'X'
    __  elif_board[0][player2-1]_==_'_':
 _  __ __   board[0][player2-1] = 'X'
__      print_board(board)

_Q:

What is causing this_function_to work for some_amount of points, but not_more?

Here's what I'm doing. I calculate_a bunch_of xy_points scattered within some range, and then I have some functions_that calculate the "boundary" of those_points. If you're familiar_with this_area,_it's not a_convex_hull, it's_concave, so there's no unique solution until_you tell_it how much you want it_to "squeeze" into the_points_(just a parameter I choose).
Here are_the functions I'm using (I didn't_make them; I don't understand_how_they_work more than superficially):
GetBoundaryMesh[points_, alphaparameter_]_:= Module[{ashape, bmesh},
  Needs["NDSolve`FEM`"];
 _ashape = alphaShapes2DC[points,_alphaparameter];
  bmesh = NDSolve`FEM`ToBoundaryMesh@ashape;
  Return@MeshPrimitives[MeshRegion@bmesh,_1];
_ ]

circumRadius2D = 
  Compile[{{v,__Real,_2}}, 
   With[{a =_Norm[v[[1]]_-_v[[2]]], b = Norm[v[[1]] -_v[[3]]], 
    _c = Norm[v[[2]]