Difference between revisions of "UNX511 - 20121 - Project - TeamA"

From CDOT Wiki
Jump to: navigation, search
m (Useful Code Snippets)
(Blank)
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=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!
 
=Project Description=
 
Ganglands is a multiplayer, text-based adventure game in the vein of Zork and King’s Quest. Players compete to become the greatest mob boss in the ganglands by forging alliances, engaging in combat, and solving devious puzzles. Each task successfully accomplished garners experience points and money, which can be used to level up your characters and buy tools and manpower that help you claw your way to the top. Ongoing contests give you access to special bonuses and a leaderboard keeps track of your various accomplishments.
 
=Team Members=
 
 
 
 
 
{| class="wikitable sortable" border="1" cellpadding="5"
 
|-
 
! First Name !! Last Name  !! Seneca Id !! wiki id !!  IRC nick
 
|-
 
|[[User:Nmayuranathan | Natesh]]||Mayuranathan||[mailto:nmayuranathan@learn.senecac.on.ca?subject=unx511 nmayuranathan]||[[Special:Contributions/Nmayuranathan |Nmayuranathan]]||Tesh_
 
|-
 
|[[User:Rainulf | Rainulf]]||Pineda||[mailto:???@learn.senecac.on.ca?subject=unx511 Rainulf]||[[Special:Contributions/Rainulf |Rainulf]]||_Rainulf
 
|-
 
|[[User:??? |Lucas]]|| Alba Bresso|| [mailto:ljalbabresso@learn.senecac.on.ca?subject=unx511 Lucas] ||[[Special:Contributions/Lucas |Lucas]]||N/A
 
|-
 
|[[User:aali83 |Ahmad]]||Ali|| [mailto:aali83@learn.senecac.on.ca?subject=unx511 Ahmad] || [[Special:Contributions/aali83 |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=
 
Basic HTTP Server: http://rainulf.ca/files/server.cpp
 
<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(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;
 
}
 
</pre>
 

Latest revision as of 16:33, 25 April 2018

-