Example #1
0
void print_board_SDL (int board_array[BOARD_HEIGHT][BOARD_WIDTH], window *w, SDL_Rect *rectangle){
    for (int i = 0; i < BOARD_HEIGHT; ++i){
        for (int j = 0; j < BOARD_WIDTH; ++j){
            check_for_quit (w);
            if (w->finished == 1){
                SDL_Quit();
            }
            rectangle->x = j * RECT_SIZE;
            rectangle->y = i * RECT_SIZE;            
            if (board_array[i][j] == 1){
                SDL_SetRenderDrawColor(w->renderer, 100, 100, 100, SDL_ALPHA_OPAQUE);
            }
            else if (board_array[i][j] == 0){
                SDL_SetRenderDrawColor(w->renderer, 250, 250, 250, SDL_ALPHA_OPAQUE);
            }
            SDL_RenderFillRect(w->renderer, rectangle);
        }
    }
}
int main(int argc , char *argv[])
{
  // init vehicle
  init_vehicle();

  // connect to server
  if(connect_server() != 0) {
    // error
    puts("Closing.");
    return 0;
  }

  // connected
  puts("All peachy.");
  puts("Sending hi.");


  // lets go in big loop and process incoming data
  while(veh.flag){
    // Sort of hearbeat
    //send_hi();

    // recv is blocking call
    // data from server
    veh.cnt = recv(veh.socket_desc, veh.server_reply , SERVER_MSG_SIZE , 0);
    if (veh.cnt > 0 ) {
      // we received data
      // print to terminal that a message from server came in
      printf("RECEIVED: %d BYTES\n", veh.cnt);
      printf("MSG FROM SERVER: %s\n", veh.server_reply);

      if (check_for_init() == 1){
        // wasn't init
        // check for stop
        if (check_for_stop() == 1) {
          // wasn't stop
          // check for params
          if (check_for_params() == 1) {
            // wasn't params
            // check for quit
            if (check_for_quit() == 1) {
              // it wasn't quit -> bad command
              printf("Unknown command.\n");
            }
            else {
              //it was quit -> so quit
              veh.flag = 0;
            }
          }
        }
      }

      // send proper response
      send(veh.socket_desc, veh.message, strlen(veh.message), 0);
    }
    else {
      puts("Received no data.");
      // no data -> server probably ended the connection
      veh.flag = 0;
    }

    // erase server reply
    memset(veh.server_reply, 0, SERVER_MSG_SIZE);
    // erase message
    memset(veh.message, 0, SERVER_MSG_SIZE);
    // erase counter
    veh.cnt = 0;
    // sleep 500ms
    //nanosleep((const struct timespec[]){{0, NSLEEP_TIME}}, NULL);

  } // veh.flag

  puts("Closing program.");
  shutdown(veh.socket_desc, 2); // close socket
  if (veh.state != VEH_UNINIT){
    // dont call unless properly initialized
    stop_wings();
  }
  return 0;
}