Sign in to follow this  

Finished games

This topic is 4166 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I was wondering if ppl could post any games they have made. If possible could you post the code so others can try too. also i have 1 i would like to post but i need to know how to enclose my code and not have to scroll a long way. (I think you know what i mean) thx

Share this post


Link to post
Share on other sites
If you want to post your code on these forums, post in between source tags:
[ source]
[ /source]
(Without the leading spaces.)

If you're looking for game samples, I suggest you try your friend [google].

Edit: See also, Oluseyi's post.

Share this post


Link to post
Share on other sites

#include <iostream>
#include <string>
#include <ctime>
using namespace std;

void battleOut();
void battleIn();

int neededEXP;
int HP;
int opHP;
int HPFULL;
int lvl;
string Jore;
int EXP;
int opLvl;

int main()
{
srand(time(NULL));
int choice;
bool quit = false;
char cont;
string name;
bool contin = false;
while (contin==false)
{

cout << "Welcome to the world of Sanemo!!!" << endl;
cout << "What is your name?: ";
cin >> name;
cout << "In Sanemo roams creatures known as Jore" << endl;
cout << "They are used for many things, but most commonly for Journeying" << endl;
cout << "There are many towns in Sanemo, with many people" << endl;
cout << "Your hometown is Zeeki" << endl;
cout << "Well lets get started then!" << endl;
cout << "Would you like to continue? (Y/N): ";
cin >> cont;
if (cont=='Y') contin = true;
}
cout << "***********************************" << endl;
cout << "???:AHHHHHHHHHH!!! SOMEONE HELP ME!!!!" << endl;
cout << "???:ANYONE!!!!!!" << endl;
cout << "***********************************" << endl;
cout << "ACTION:YOU RUSH TO HELP" << endl;
cout << "***********************************" << endl;
cout << "" << name << ":What's wrong???" << endl;
cout << "???:I'm caught in a ditch!!!" << endl;
cout << "***********************************" << endl;
cout << "ACTION:YOU PULL THE STRANGER OUT OF THE DITCH" << endl;
cout << "***********************************" << endl;
cout << "???:Thank you I was badly hurt" << endl;
cout << "" << name << ":I haven't seen you before. What's your name?" << endl;
cout << "???:My name is Harold, I sell Jore." << endl;
cout << "Harold:Say, do you have a Jore?" << endl;
cout << "" << name << ":No." << endl;
cout << "Harold:I'll tell you what, i'll give you one of mine for saving me" << endl;
cout << "Harold:However, I have 3 so you'll have to choose" << endl;
cout << "Harold:Which would you like? wroon, prucky or pucher: ";
cin >> Jore;
if (Jore=="wroon" || Jore=="prucky" || Jore=="pucher")
{
cout << "***********************************" << endl;
cout << "YOU RECIEVED A " << Jore << "!!!!!" << endl;
cout << "***********************************" << endl;
cout << "Harold:Well, I best be off, maybe well catch up another time" << endl;
cout << "Harold:To heal you should take it to first aid" << endl;
cout << "Harold:And I suggest that you train in the warehouse before going out of town" << endl;
cout << "" << name << ":Ok, Thanks!" << endl;
cout << "***********************************" << endl;
cout << "YOUR " << Jore << " IS LVL 1" << endl;
lvl = 1;
HP = 30;
neededEXP = lvl * 100;
if (Jore=="wroon") HPFULL = 28;
else if (Jore=="prucky") HPFULL = 32;
else HPFULL = 30;
cout << "***********************************" << endl;
while (quit==false)
{
cout << "What are you going to do?" << endl;
cout << "(1) HEAL" << endl;
cout << "(2) BATTLE IN TRAINING SHED" << endl;
cout << "(3) BATTLE OUT OF ZEEKI" << endl;
cout << "(4) QUIT GAME" << endl;
cout << "ENTER (1-4): ";
cin >> choice;
switch (choice)
{
case 1:
HP = HPFULL;
break;
case 2:
battleIn();
break;
case 3:
battleOut();
break;
case 4:
cout << "GOODBYE" << endl;
quit = true;
return 0;
default:
cout << "You must enter a valid number" << endl;
cout << "*******************************" << endl;
}
}
}
return 0;
}

void battleIn()
{
int opAttack;
int attack;
int whichAttack;
bool win = false;
bool opWin = false;
string foe;
int whichJore = (rand() % 3) + 1;
switch (whichJore)
{
case 1:
foe = "Rofro";
opLvl = (rand() % 3) + 1;
break;
case 2:
foe = "Mussoo";
opLvl = (rand() % 4) + 1;
break;
case 3:
foe = "Cromotis";
opLvl = (rand() % 3) + 1;
break;
default:
foe = "Groke";
opLvl = (rand() % 4) + 1;
}
switch (opLvl)
{
case 1:
opHP = 20;
break;
case 2:
opHP = 29;
break;
case 3:
opHP = 38;
break;
case 4:
opHP = 46;
break;
default:
opHP = 15;
}
cout << "Your opponent is " << foe << endl;
cout << "With " << opHP << " HP" << endl;
while (win==false && opWin==false)
{

cout << "(1) bash" << endl;
cout << "(2) bite" << endl;
cout << "Choose your attack (1 or 2): ";
cin >> whichAttack;
switch (whichAttack)
{
case 1:
attack = (rand() % 8) + 1;
break;
case 2:
attack = (rand() % 9) + 1;
break;
}
cout << "You have done " << attack << " damage" << endl;
opAttack = (rand() % 10) + 1;
opHP = opHP - attack;
cout << "The opponent has " << opHP << " health left" << endl;
cout <<"The opponent has done " << opAttack << " damage" << endl;
HP = HP - opAttack;
cout << "You have " << HP << " health left" << endl;
if (opHP<=0)
{
cout << "You have won!" << endl;
win = true;
switch (opLvl)
{
case 1:
EXP = 40;
break;
case 2:
EXP = 70;
break;
case 3:
EXP = 110;
break;
case 4:
EXP = 160;
break;
default :
EXP = 0;
}
neededEXP = neededEXP - EXP;
cout << "You have collected " << EXP << " EXP" << endl;
cout << "You still need " << neededEXP << " EXP" << endl;
}
else if (HP <= 0)
{
cout << "Sorry you have lost" << endl;
cout << "*********************************" << endl;
opWin = true;
}
}


if (neededEXP <= 0)
{
lvl++;
HPFULL = HPFULL + 4;
HP = HPFULL;
cout << "Congratulations!!! You are now lvl " << lvl << endl;
neededEXP = lvl * 100;
}
}

void battleOut()
{
int opAttack;
int attack;
int whichAttack;
bool win = false;
bool opWin = false;
string foe;
int whichJore = (rand() % 3) + 1;
switch (whichJore)
{
case 1:
foe = "Jubbo";
opLvl = (rand() % 5) + 2;
break;
case 2:
foe = "Frump";
opLvl = (rand() % 5) + 2;
break;
case 3:
foe = "Enomore";
opLvl = (rand() % 6) + 1;
break;
}
switch (opLvl)
{
case 1:
opHP = 20;
break;
case 2:
opHP = 29;
break;
case 3:
opHP = 38;
break;
case 4:
opHP = 46;
break;
case 5:
opHP = 55;
case 6:
opHP = 70;
}
cout << "Your opponent is " << foe << endl;
cout << "With " << opHP << " HP" << endl;
while (win==false && opWin==false)
{

cout << "(1) bash" << endl;
cout << "(2) bite" << endl;
cout << "Choose your attack (1 or 2): ";
cin >> whichAttack;
switch (whichAttack)
{
case 1:
attack = (rand() % 8) + 1;
break;
case 2:
attack = (rand() % 9) + 1;
break;
}
cout << "You have done " << attack << " damage" << endl;
opAttack = (rand() % 10) + 1;
opHP = opHP - attack;
cout << "The opponent has " << opHP << " health left" << endl;
cout <<"The opponent has done " << opAttack << " damage" << endl;
HP = HP - opAttack;
cout << "You have " << HP << " health left" << endl;
if (opHP<=0)
{
cout << "You have won!" << endl;
win = true;
switch (opLvl)
{
case 1:
EXP = 40;
break;
case 2:
EXP = 70;
break;
case 3:
EXP = 110;
break;
case 4:
EXP = 160;
break;
case 5:
EXP = 220;
case 6:
EXP = 350;
default :
EXP = 0;
}
neededEXP = neededEXP - EXP;
cout << "You have collected " << EXP << " EXP" << endl;
cout << "You still need " << neededEXP << " EXP" << endl;
}
else if (HP <= 0)
{
cout << "Sorry you have lost" << endl;
cout << "*********************************" << endl;
opWin = true;
}
}


if (neededEXP <= 0)
{
lvl++;
cout << "Congratulations!!! You are now lvl " << lvl << endl;
HPFULL = HPFULL + 4;
HP = HPFULL;
neededEXP = lvl * 100;
}
}






Is this right?



TRY IT!

Share this post


Link to post
Share on other sites
Im working on a text based Master Mind.
I dont consider it finished even though it seems to work ok.
Feel free to comment on the source, or if there is any MM rules I forgot.


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <cctype>
#include <bitset>

#include <time.h>

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

const int field_nslots = 4;
const int field_ncolors = 6;
const std::string field_colors = "-qwerty";

class Field
{
int m_slot[field_nslots];

public:

Field();

int& operator [] (int index);
bool operator == (const Field &f) const;

std::string str() const;

void scramble();
bool get_user_field(std::vector<std::string> &vhistory);
bool solve_for(const Field& r, std::vector<std::string> &vhistory);
};

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

int main()
{
Field codemaker, codebreaker;
std::vector<std::string> history;
int max_tries = 12, ntries = 0;

srand((unsigned int)time(0));

std::cout << "\tMaster Mind\n\nThe possible color keys to choose from in this game is [qwerty]\nand is taken from the Plutonian color system...\n" << std::endl;

codemaker.scramble();
// codemaker[0] = 1; codemaker[1] = 5; codemaker[2] = 3; codemaker[3] = 1; // debug

do {
if(!codebreaker.get_user_field(history))
return 0; // user pressed x
//std::cout << codemaker.str() << std::endl; // debug
} while(++ntries < max_tries && !codebreaker.solve_for(codemaker, history));

if(ntries >= max_tries)
std::cout << "\nToo many tries\n" << std::endl;
else std::cout << "\nCongratulations. You made it in " << ntries << " attempts\n" << std::endl;
std::cout << "Here is the code: " << codemaker.str() << std::endl;

std::cout << "\nPress [return] to exit" << std::endl;
std::cin.get();

return 0;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Field::Field()
{
for(int i=0; i<field_nslots; i++)
m_slot[i] = 0;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inline int& Field::operator [] (int index)
{
return m_slot[index];
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bool Field::operator == (const Field &f) const
{
for(int i=0; i<field_nslots; i++)
if(m_slot[i] != f.m_slot[i])
return false;
return true;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

std::string Field::str() const
{
std::string s;
for(int i=0; i<field_nslots; i++)
s += field_colors[m_slot[i]];
return s;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void Field::scramble()
{
for(int i=0; i<field_nslots; i++)
m_slot[i] = 1 + rand() % field_ncolors;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bool Field::get_user_field(std::vector<std::string> &vhistory)
{
std::string sc;

if(vhistory.size()) {
std::cout << "\nCode:\t\tPin pos.:\tPin col.:" << std::endl;
for(std::size_t i=0; i<vhistory.size(); i++)
std::cout << vhistory[i] << std::endl;
}

do {
std::cout << "\n\nEnter " << field_nslots << " colors (x to quit) [" << field_colors << "]\n[" << vhistory.size() + 1 << "]: ";
std::getline(std::cin, sc);
if(std::tolower(sc[0]) == 'x')
return false;
} while(sc.size() < field_nslots);

std::size_t pos;
for(int i=0; i<field_nslots; i++) {
pos = field_colors.find(sc[i], 0);
m_slot[i] = (pos != field_colors.npos) ? (int)pos : 0;
}
return true;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bool Field::solve_for(const Field& r, std::vector<std::string> &vhistory)
{
if(*this == r)
return true;

Field cm = *this;
std::bitset<field_nslots> bp, bc;

for(int i=0; i<field_nslots; i++)
for(int j=0; j<field_nslots; j++)
if(cm.m_slot[i] == r.m_slot[j] && i == j)
{
bp.set(i);
cm.m_slot[i] = 0;
}

for(int i=0; i<field_nslots; i++)
for(int j=0; j<field_nslots; j++)
if(cm.m_slot[i] == r.m_slot[j])
bc.set(i);

std::stringstream ss;
ss << this->str() << "\t\t" << bp.count() << "\t\t" << bc.count();
vhistory.push_back(ss.str());

return false;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



[Edited by - pulpfist on July 20, 2006 8:25:32 PM]

Share this post


Link to post
Share on other sites

This topic is 4166 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this