Difference between revisions of "UNX511 - 20121 - Project - TeamA"
(→Team Members) |
(→added some code snippets) |
||
Line 30: | Line 30: | ||
** Main game design | ** Main game design | ||
** Putting the socket and the main game design together | ** Putting the socket and the main game design together | ||
+ | |||
+ | =Useful Code Snippets= | ||
+ | <pre> | ||
+ | /** | ||
+ | * 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; | ||
+ | } | ||
+ | </pre> |
Revision as of 14:00, 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(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; }