Archives from S:\ Drive
Good to keep around methinks
This commit is contained in:
1 parent
eadaf70b9e
commit
6dd63cc439
606 files changed
+50212
No files matched your search
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Hangman", "Hangman\Hangman.vcproj", "{49C28840-F8EF-4E80-A3D4-4DCCC30C1414}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{49C28840-F8EF-4E80-A3D4-4DCCC30C1414}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{49C28840-F8EF-4E80-A3D4-4DCCC30C1414}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{49C28840-F8EF-4E80-A3D4-4DCCC30C1414}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{49C28840-F8EF-4E80-A3D4-4DCCC30C1414}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,456 @@
|
||||
#include "stdhangman.h"
|
||||
|
||||
Hangman::Hangman()
|
||||
{
|
||||
attempts = 0;
|
||||
wordLength = 0;
|
||||
secretWord = "";
|
||||
wordList = vector<hangword>();
|
||||
adminList = vector<string>();
|
||||
//readdmins();
|
||||
readFromFile();
|
||||
blankguesses();
|
||||
doseed();
|
||||
}
|
||||
|
||||
void Hangman::blankguesses()
|
||||
{
|
||||
attempts = 0;
|
||||
string alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
for (unsigned int i = 0; i < alpha.length(); i++)
|
||||
{
|
||||
alphabet[i] = alpha[i];
|
||||
}
|
||||
}
|
||||
|
||||
void Hangman::displayMenu()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
cls();
|
||||
fflush(stdout);
|
||||
centerline("Main Menu",1);
|
||||
centerline("==========================",2);
|
||||
centerline("1. Game Administration",3);
|
||||
centerline("2. Begin a game",4);
|
||||
centerline("3. Exit",5);
|
||||
centerline("==========================",6);
|
||||
cursorpos(1,7);
|
||||
cout << "Please make a selection" << endl << ":";
|
||||
string input;
|
||||
cin >> input;
|
||||
switch (input[0])
|
||||
{
|
||||
case '1':
|
||||
while(doadmin());
|
||||
break;
|
||||
case '2':
|
||||
while(playGame());
|
||||
break;
|
||||
case '3':
|
||||
break;
|
||||
default:
|
||||
writeline("Please make a valid selection [1-3]");
|
||||
writeline(2);
|
||||
}
|
||||
if ( input[0] == '3' )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Hangman::playGame()
|
||||
{
|
||||
chooseword();
|
||||
blankguesses();
|
||||
while (attempts <= 6)
|
||||
{
|
||||
while(!handleinput());
|
||||
if (revealedword == secretWord)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
cls();
|
||||
if (attempts >= 6)
|
||||
{
|
||||
centerline("Hangman - Loss", 1);
|
||||
centerline(secretWord, 4);
|
||||
centerline("Sorry! You loose this round", 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
centerline("Hangman - Winner", 1);
|
||||
centerline(secretWord, 4);
|
||||
centerline("Congradulations! You guessed correctly",8);
|
||||
}
|
||||
writeline(2);
|
||||
|
||||
string input;
|
||||
while (true)
|
||||
{
|
||||
cout << "Play again?" << endl << "[Y/n]";
|
||||
cin >> input;
|
||||
if (toupper(input[0]) == 'Y')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (toupper(input[0]) == 'N')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Please enter either Yes or No" << endl;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Hangman::notguessed(char inguess)
|
||||
{
|
||||
for (int j = 0; j < 26; j++)
|
||||
{
|
||||
if (alphabet[j] == inguess)
|
||||
{
|
||||
alphabet[j] = ' ';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Hangman::doadmin()
|
||||
{
|
||||
cls();
|
||||
centerline("Hangman - Administration",1);
|
||||
centerline("Hangman Administrator Login",4);
|
||||
cursorpos(1,10);
|
||||
cout << "Please enter your password" << endl << ":";
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Hangman::isinword(char inguess)
|
||||
{
|
||||
string secret = getSecretWord();
|
||||
for (unsigned int i = 0; i < secret.length(); i++)
|
||||
{
|
||||
if (secret[i] == toupper(inguess))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void Hangman::drawletters()
|
||||
{
|
||||
for (int i = 0; i < 26; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
cursorpos (4,6);
|
||||
}
|
||||
if (i == 8)
|
||||
{
|
||||
cursorpos (4,8);
|
||||
}
|
||||
if (i == 16)
|
||||
{
|
||||
cursorpos (4,10);
|
||||
}
|
||||
if ( i == 24 )
|
||||
{
|
||||
cursorpos(4, 12);
|
||||
}
|
||||
cout << alphabet[i] << " ";
|
||||
}
|
||||
cursorpos(4, 18);
|
||||
cout << revealedword;
|
||||
}
|
||||
|
||||
bool Hangman::handleinput()
|
||||
{
|
||||
cls(); // clear screen
|
||||
drawseperator(); // do the sepeaator thing
|
||||
centerline("Hangman",1); // screen title
|
||||
drawhangman();
|
||||
drawletters();
|
||||
fflush(stdout);
|
||||
cursorpos(0, 20);
|
||||
writeline("Please enter a letter");
|
||||
cout << ":";
|
||||
string input;
|
||||
cin >> input;
|
||||
char guess = input[0];
|
||||
guess = toupper(guess);
|
||||
if (isalpha(guess) && notguessed(guess))
|
||||
{
|
||||
if (isinword(guess))
|
||||
{
|
||||
revealchar(guess);
|
||||
}
|
||||
else
|
||||
{
|
||||
attempts++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << guess << " is an invalid input, please try again";
|
||||
pause();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void Hangman::revealchar(char input)
|
||||
{
|
||||
string secret = getSecretWord();
|
||||
for (unsigned int i = 0; i < secret.length(); i++)
|
||||
{
|
||||
if (secret[i] == input)
|
||||
{
|
||||
revealedword[i] = secret[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Hangman::readFromFile()
|
||||
{
|
||||
/*
|
||||
hangword holdword;
|
||||
ifstream hangmanfile ("wordlist.bin", ios::in|ios::binary|ios::ate);
|
||||
if (hangmanfile.is_open())
|
||||
{
|
||||
while(!hangmanfile.eof())
|
||||
{
|
||||
holdword.Read(hangmanfile);
|
||||
wordList.push_back(holdword);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Unable to open wordlist.bin for reading. Trying to create it.." << endl;
|
||||
*/
|
||||
initFile();
|
||||
// }
|
||||
}
|
||||
|
||||
void Hangman::initFile()
|
||||
{
|
||||
hangword holdword;
|
||||
ifstream hangwordtxt ("hangmanwordlist.txt", ios::in);
|
||||
int id = 1;
|
||||
if (hangwordtxt.is_open())
|
||||
{
|
||||
while (!hangwordtxt.eof())
|
||||
{
|
||||
string word = "";
|
||||
getline(hangwordtxt,word);
|
||||
for (unsigned int j = 0; j < word.length(); j++)
|
||||
{
|
||||
word[j] = toupper(word[j]);
|
||||
}
|
||||
holdword.setword(word);
|
||||
holdword.setid(id);
|
||||
wordList.push_back(holdword);
|
||||
id++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Error unable to open hangmanwordlist.txt for reading" << endl;
|
||||
pause();
|
||||
}
|
||||
hangwordtxt.close();
|
||||
if (wordList.size() != 0)
|
||||
{
|
||||
ofstream hangmanbin ("wordlist.bin", ios::out|ios::binary|ios::app);
|
||||
if (hangmanbin.is_open())
|
||||
{
|
||||
for (unsigned int i = 0; i < wordList.size(); i++)
|
||||
{
|
||||
wordList[i].Write(hangmanbin);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Error unable to open wordlist.bin for writing" << endl;
|
||||
pause();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "No words in the wordlist. Not creating file." << endl;
|
||||
pause();
|
||||
}
|
||||
}
|
||||
|
||||
void Hangman::chooseword()
|
||||
{
|
||||
if (wordList.size() == 0)
|
||||
{
|
||||
hangword hang;
|
||||
hang.setid(0);
|
||||
hang.setword("TEST");
|
||||
wordList.push_back(hang);
|
||||
}
|
||||
int wordindex = rand()%wordList.size();
|
||||
setSecretWord(wordList[wordindex].getword());
|
||||
string rev = string(getSecretWord().length(),'_');
|
||||
revealedword = rev;
|
||||
}
|
||||
|
||||
void Hangman::drawhangman()
|
||||
{
|
||||
cursorpos(55, 10);
|
||||
switch (attempts)
|
||||
{
|
||||
case 0:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" |" << endl;
|
||||
break;
|
||||
case 1:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" |" << endl;
|
||||
break;
|
||||
case 2:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" |" << endl;
|
||||
break;
|
||||
case 3:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" /| |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" |" << endl;
|
||||
break;
|
||||
case 4:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" /|\\ |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" |" << endl;
|
||||
break;
|
||||
case 5:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" /|\\ |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" |" << endl;
|
||||
break;
|
||||
case 6:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" /|\\ |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" / |" << endl;
|
||||
break;
|
||||
case 7:
|
||||
cout <<" ___ " << endl;
|
||||
cursorpos(55, 11);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 12);
|
||||
cout <<" @ |" << endl;
|
||||
cursorpos(55, 13);
|
||||
cout <<" /|\\ |" << endl;
|
||||
cursorpos(55, 14);
|
||||
cout <<" | |" << endl;
|
||||
cursorpos(55, 15);
|
||||
cout <<" / \\ |" << endl;
|
||||
break;
|
||||
}
|
||||
cursorpos(55, 16);
|
||||
cout <<" ________|________" << endl;
|
||||
cursorpos(55, 17);
|
||||
cout <<" / | /|" << endl;
|
||||
cursorpos(55, 18);
|
||||
cout <<"/________________/ /" << endl;
|
||||
cursorpos(55, 19);
|
||||
cout <<"|________________|/" << endl;
|
||||
}
|
||||
|
||||
void Hangman::setSecretWord(string word)
|
||||
{
|
||||
secretWord = word;
|
||||
}
|
||||
string Hangman::getSecretWord()
|
||||
{
|
||||
return secretWord;
|
||||
}
|
||||
|
||||
void Hangman::setWordLength(int length)
|
||||
{
|
||||
wordLength = length;
|
||||
}
|
||||
int Hangman::getWordLength()
|
||||
{
|
||||
return wordLength;
|
||||
}
|
||||
|
||||
/***********************************
|
||||
___
|
||||
| |
|
||||
@ |
|
||||
/|\ |
|
||||
| |
|
||||
/ \ |
|
||||
________|________
|
||||
/ | /|
|
||||
/________________/ /
|
||||
|________________|/
|
||||
|
||||
************************************/
|
||||
@@ -0,0 +1,45 @@
|
||||
#ifndef HANGMAN_H
|
||||
#define HANGMAN_H
|
||||
|
||||
#include "stdhangman.h"
|
||||
|
||||
class Hangman
|
||||
{
|
||||
private:
|
||||
int attempts;
|
||||
vector<hangword> wordList;
|
||||
vector<string> adminList;
|
||||
string secretWord;
|
||||
string revealedword;
|
||||
int wordLength;
|
||||
char alphabet[26];
|
||||
bool emessage;
|
||||
string message;
|
||||
public:
|
||||
Hangman();
|
||||
bool playGame();
|
||||
void enterNewWords();
|
||||
bool isWin();
|
||||
void convertToUpper();
|
||||
void readFromFile();
|
||||
|
||||
void setSecretWord(string word);
|
||||
string getSecretWord();
|
||||
|
||||
void setWordLength(int length);
|
||||
int getWordLength();
|
||||
|
||||
void initFile();
|
||||
bool notguessed(char guess);
|
||||
bool isinword(char guess);
|
||||
bool doadmin();
|
||||
void displayMenu();
|
||||
void drawhangman();
|
||||
bool handleinput();
|
||||
void blankguesses();
|
||||
void revealchar(char reveal);
|
||||
void chooseword();
|
||||
void drawletters();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,212 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="Hangman"
|
||||
ProjectGUID="{49C28840-F8EF-4E80-A3D4-4DCCC30C1414}"
|
||||
RootNamespace="Hangman"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
RuntimeLibrary="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Hangman.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Hangword.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Main.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Stdhangman.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Hangman.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Hangword.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdhangman.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,76 @@
|
||||
#include "stdhangman.h"
|
||||
|
||||
int hangword::getid()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
void hangword::setid(int id)
|
||||
{
|
||||
this->id = id;
|
||||
}
|
||||
|
||||
void hangword::setword(string word)
|
||||
{
|
||||
this->word = word;
|
||||
}
|
||||
string hangword::getword()
|
||||
{
|
||||
return word;
|
||||
}
|
||||
|
||||
void hangword::Read(ifstream& file)
|
||||
{
|
||||
setid(readid(file));
|
||||
setword(readword(file));
|
||||
}
|
||||
|
||||
void hangword::Write(ofstream& file)
|
||||
{
|
||||
int id = getid();
|
||||
writeid(file, id);
|
||||
writeword(file, getword());
|
||||
}
|
||||
|
||||
void hangword::writeword(ofstream& file,const string& str)
|
||||
{
|
||||
// get the length of the string data
|
||||
unsigned int len = str.size();
|
||||
|
||||
// write the size:
|
||||
file.write( reinterpret_cast<const char*>( &len ), sizeof(len) );
|
||||
|
||||
// write the actual string data:
|
||||
file.write( str.c_str(), len );
|
||||
}
|
||||
|
||||
string hangword::readword(ifstream& file)
|
||||
{
|
||||
// this probably isn't the optimal way to do it, but whatever
|
||||
string str;
|
||||
|
||||
// get the length
|
||||
unsigned int len;
|
||||
file.read( reinterpret_cast<char*>( &len ), sizeof(len) );
|
||||
|
||||
// we can't read to string directly, so instead, create a temporary buffer
|
||||
if(len > 0)
|
||||
{
|
||||
char* buf = new char[len];
|
||||
file.read( buf, len );
|
||||
str.append( buf, len );
|
||||
delete[] buf;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
inline void hangword::writeid(ofstream& file, int& num)
|
||||
{
|
||||
file.write(reinterpret_cast<char *>(&num),sizeof(int));
|
||||
}
|
||||
|
||||
int hangword::readid(ifstream& file)
|
||||
{
|
||||
int num;
|
||||
file.read(reinterpret_cast<char *>(&num),sizeof(int));
|
||||
return num;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef WORD_H
|
||||
#define WORD_H
|
||||
|
||||
#include "stdhangman.h"
|
||||
|
||||
class hangword
|
||||
{
|
||||
private:
|
||||
int id;
|
||||
string word;
|
||||
public:
|
||||
void setid(int in);
|
||||
int getid();
|
||||
|
||||
void setword(string in);
|
||||
string getword();
|
||||
|
||||
void Read(ifstream& file);
|
||||
void Write(ofstream& file);
|
||||
|
||||
void writeword(ofstream& file,const string& str);
|
||||
string readword(ifstream& file);
|
||||
|
||||
void writeid(ofstream& file, int& num);
|
||||
int readid(ifstream& file);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,10 @@
|
||||
#include "stdhangman.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
Hangman game;
|
||||
game.displayMenu();
|
||||
|
||||
pause();
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
#include "stdhangman.h"
|
||||
|
||||
// Pause() use conio.h's get character to pause the program
|
||||
void pause()
|
||||
{
|
||||
int c;
|
||||
cout << endl << "Press any key to continue . . ." << endl;
|
||||
c = _getch();
|
||||
if (c == 0 || c == 224) // getch will return a 0 or 244 on error
|
||||
{
|
||||
_getch(); // try again
|
||||
}
|
||||
}
|
||||
|
||||
// cursorpos(X,Y) use ConsoleAPI to place the cursor at a particular position
|
||||
void cursorpos(int X, int Y)
|
||||
{
|
||||
if ( X < 0 ) // off the screen
|
||||
{
|
||||
X = 0;
|
||||
}
|
||||
if ( Y < 0 )
|
||||
{
|
||||
Y = 0;
|
||||
}
|
||||
HANDLE hStdOut = GetStdHandle( STD_OUTPUT_HANDLE ); //grab the stdout handle
|
||||
COORD newpos = { X, Y }; // use the Coord struct to stage the new position
|
||||
SetConsoleCursorPosition( hStdOut, newpos ); // set the new curser position
|
||||
}
|
||||
|
||||
// take the input modulous the length by 80, set the cursor position there
|
||||
void centerline(string input, int linenum)
|
||||
{
|
||||
if (input.length() > 80) // over 80 characters? must be centered already
|
||||
{
|
||||
cursorpos(0,linenum);
|
||||
}
|
||||
int mod = (80-input.length())/2; // formula: input length subtracted from console line length divided by 2
|
||||
cursorpos(mod,linenum); // set where to write
|
||||
cout << input << endl; // write it
|
||||
}
|
||||
|
||||
// write a line
|
||||
void writeline(string input)
|
||||
{
|
||||
cout << ' ' << input << endl; // simple function to begin a line with a ' '
|
||||
}
|
||||
|
||||
// write a blank line
|
||||
void writeline(int num)
|
||||
{
|
||||
for (int i = 0; i <= num; i++) // easy function for multiple blank lines
|
||||
{
|
||||
cout << endl;
|
||||
}
|
||||
}
|
||||
|
||||
// do the seperator thing
|
||||
void drawseperator()
|
||||
{
|
||||
for (int i = 2; i < 24; i++) // sepearates the hangman from the words
|
||||
{
|
||||
cursorpos(50,i);
|
||||
cout << "|";
|
||||
}
|
||||
}
|
||||
|
||||
// seed using micro time. much better than grabbing a random pointer.
|
||||
void doseed()
|
||||
{
|
||||
unsigned __int64 freq;
|
||||
QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
|
||||
double timerFrequency = (1.0/freq);
|
||||
|
||||
unsigned __int64 startTime;
|
||||
QueryPerformanceCounter((LARGE_INTEGER *)&startTime);
|
||||
srand(startTime*freq);
|
||||
}
|
||||
|
||||
// use the console api to fill the screen with spaces
|
||||
void cls() {
|
||||
HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
COORD pos = {0, 0};
|
||||
DWORD written;
|
||||
CONSOLE_SCREEN_BUFFER_INFO screen_attr;
|
||||
unsigned size;
|
||||
|
||||
GetConsoleScreenBufferInfo(screen, &screen_attr);
|
||||
|
||||
size = screen_attr.dwSize.X * screen_attr.dwSize.Y;
|
||||
FillConsoleOutputCharacterW(screen, ' ', size, pos, &written);
|
||||
|
||||
SetConsoleCursorPosition(screen, pos);
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
fluorine
|
||||
steapsin
|
||||
gadoid
|
||||
optics
|
||||
master
|
||||
uninvasive
|
||||
nettable
|
||||
preintend
|
||||
scourge
|
||||
clinah
|
||||
planking
|
||||
autogenetic
|
||||
inweaved
|
||||
peipus
|
||||
corneal
|
||||
descendant
|
||||
premonopolizing
|
||||
wadmoll
|
||||
grimily
|
||||
anatolic
|
||||
uniced
|
||||
unendeared
|
||||
geothermic
|
||||
tarsier
|
||||
hartmann
|
||||
actuarially
|
||||
caffein
|
||||
antiexpressive
|
||||
refasten
|
||||
hostelling
|
||||
sacculus
|
||||
teazeling
|
||||
resolution
|
||||
demoralised
|
||||
fletcherizing
|
||||
decently
|
||||
mitrephorus
|
||||
reverser
|
||||
eudora
|
||||
comestible
|
||||
kilpatrick
|
||||
peroneal
|
||||
corporate
|
||||
provisional
|
||||
plaice
|
||||
atheneum
|
||||
juicing
|
||||
wintery
|
||||
ellipsoid
|
||||
avigation
|
||||
republicanism
|
||||
bocage
|
||||
frederika
|
||||
cleruch
|
||||
counterbracing
|
||||
uninstigated
|
||||
undocumented
|
||||
voyeurism
|
||||
catchfly
|
||||
scatomas
|
||||
overwore
|
||||
radiably
|
||||
rhoecus
|
||||
eighteenmo
|
||||
imperfectness
|
||||
siziness
|
||||
curable
|
||||
gradin
|
||||
breadroot
|
||||
heresy
|
||||
ophytic
|
||||
cosmopolitanizing
|
||||
cannoneer
|
||||
haverhill
|
||||
abingdon
|
||||
mentor
|
||||
dissimulator
|
||||
fazenda
|
||||
syrphid
|
||||
rockier
|
||||
inobservance
|
||||
hipbone
|
||||
duckiest
|
||||
interclub
|
||||
mollendo
|
||||
touche
|
||||
dionysius
|
||||
impedible
|
||||
intoner
|
||||
cichoriaceous
|
||||
nondrinkable
|
||||
nevada
|
||||
pithecanthropus
|
||||
upswinging
|
||||
humectant
|
||||
diakinesis
|
||||
capacitively
|
||||
nonaccord
|
||||
cilice
|
||||
exuviate
|
||||
@@ -0,0 +1,23 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <fstream>
|
||||
#include <ctime>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <Windows.h>
|
||||
#include <conio.h>
|
||||
|
||||
#include "Hangman.h"
|
||||
#include "hangword.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
void pause();
|
||||
void cursorpos(int x, int y);
|
||||
void centerline(string input, int linenum);
|
||||
void writeline(string input);
|
||||
void writeline(int num);
|
||||
void drawseperator();
|
||||
void doseed();
|
||||
void cls();
|
||||
Binary file not shown.
Reference in new issue
Block a user