Difference between revisions of "UNX511 - 20121 - Project - TeamA"
(→Useful Code Snippets) |
(→Useful Code Snippets) |
||
Line 39: | Line 39: | ||
* @note needs to be free()'d after use | * @note needs to be free()'d after use | ||
*/ | */ | ||
− | char* runCmd(char* cmd){ | + | char* runCmd(const char* cmd){ |
FILE* fp; | FILE* fp; | ||
char* out = NULL; | char* out = NULL; | ||
Line 75: | Line 75: | ||
* @note needs to be free()'d after use | * @note needs to be free()'d after use | ||
*/ | */ | ||
− | char* concat(char* a, char* b){ | + | char* concat(const char* a, const char* b){ |
char* tmp = malloc(snprintf(NULL, 0, "%s %s", a, b) + 1); | char* tmp = malloc(snprintf(NULL, 0, "%s %s", a, b) + 1); | ||
sprintf(tmp, "%s %s", a, b); | sprintf(tmp, "%s %s", a, b); |
Revision as of 14:01, 23 January 2012
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(const 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(const char* a, const 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; }