UNX511 - 20121 - Project - TeamA

From CDOT Wiki
Revision as of 15:00, 23 January 2012 by Rainulf (talk | contribs) (Useful Code Snippets)
Jump to: navigation, search

Project Outline

  • Zork-like adventure game
  • Type: text-based game
  • Possible platform: Web/XHTML/HTML5, Terminal
  • MMORPG-ish (killing, leveling, etc. involved) , but text-based game and it's all about statistics
    • No maps!

Team Members

First Name Last Name Seneca Id wiki id IRC nick
Natesh Mayuranathan nmayuranathan Nmayuranathan Tesh_
Rainulf Pineda Rainulf Rainulf _Rainulf
Lucas Alba Bresso Lucas Lucas N/A
Ahmad Ali Ahmad Ahmad N/A

Development Plan (Rough)

  • Project planning (Jan 11)
  • Game interface/interaction planning (Jan 18)
  • Game design/technical programming design (Jan 25)
    • C++/OO design
    • Socket OO design - accepting connections
    • Main game design
    • Putting the socket and the main game design together

Useful Code Snippets

/**
 * Runs a linux command, reallocates memory for whatever the command outputs
 * @author Rainulf
 * @return character pointer to the allocated memory
 * @note needs to be free()'d after use
 */
char* runCmd(char* cmd){
   FILE* fp;
   char* out = NULL;
   char* more_out;
   char ch;
   int count = 0;

  /* Open the command for reading. */
   fp = popen(cmd, "r");
   if (fp == NULL) {
      printf("Failed to run command\n" );
      return 0;
   }

   /* Read the output a line at a time - output it. */
   ch = fgetc(fp);
   while(ch != '\n' && ch != EOF){
      more_out = (char*) realloc(out, ++count); // no need to free more_out

      if(more_out != NULL){
         out = more_out;
         out[count-1] = ch;
      }
      ch = fgetc(fp);
   }
  
   pclose(fp);
   return out;
}

/**
 * Concatenates two strings by allocating memory for the two
 * @author Rainulf
 * @return concatenated string - dynamically allocated
 * @note needs to be free()'d after use
 */
char* concat(char* a, char* b){
   char* tmp = malloc(snprintf(NULL, 0, "%s %s", a, b) + 1);
   sprintf(tmp, "%s %s", a, b);
   return tmp;
}

/**
 * Gets input from STDIN character by character until '\n' or MAXLEN is reached, puts into the character pointer str
 * @author Rainulf
 * @return n/a
 * @note MAXLEN have to be defined
 */
void getInput(char* str){
   int charCount = 0;
   char ch;
  
   // get input from user
   ch = getchar();
   while( (ch != '\n') && (charCount < MAXLEN) ) {
      str[charCount++] = ch;
      ch = getchar();
   }
   str[charCount] = 0;
}