Assigning 2D array coordinates to a struct and retrieve them

I have a 2d array 5x7 (field) and a struct like the following, where T_x and T_y should be the coordinates of the cells owned by a player (that should be maximum 4 per each player)

`struct player{
        char name[10];
        int T_x[4];
        int T_y[4];
    };`

I'm assigning to every single cell a random player in this way (ac is an array counter):

for(i=0; i<5; i++){
    for (j=0; j<7 ; j++) {
      rand_player = rand()%6; // n. player
      player[rand_player].T_x[ac] = i;
      player[rand_player].T_y[ac] = j;
      printf(" %s ", player[rand_player].name);
      player[rand_player].T_y[ac]++;
      player[rand_player].T_x[ac]++;
    }
}

But in this way I'm just printing a name in a given cell.
How can I really assign the cell to a determined random player?
How can I check if a cell field's of the 2d array is already assigned to another player?
PS: the value of the cell's field cannot be changed, I define it in the declaration.