This is the latest version of all my programs so far.

This commit is contained in:
Charles Descamps 2024-09-11 14:47:24 -07:00
parent 631aa69e32
commit 28e820292f
6 changed files with 299 additions and 8 deletions

Binary file not shown.

View file

@ -32,9 +32,7 @@ Dependencies: ???
#include <cstdlib> #include <cstdlib>
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
#include <list> #include <vector>
#include <set>
#include <unordered_map>
#include <time.h> #include <time.h>
using namespace std; using namespace std;
@ -42,12 +40,112 @@ using namespace std;
// function prototypes // function prototypes
// class definitions // class definitions
class Card
{
//
public:
Card(char value, char suit)
{
// store the value and suit. (possible values 2-9, T, J, Q, K, A)
cardValue = value;
cardSuit = suit;
// special 1/Ace card here
if(cardValue == 'A')
{
cardNumericalValue = 1;
}
// get the numerical value of the card, casting from string to num where possible. (2-9)
if((cardValue >= 2) || (cardValue <= 9))
{
// cast the character to number.
cardNumericalValue = (int)cardValue - 48; // numerical values 2-9 only
}
// face values here.
if(cardValue == 'T')
{
// 'ten' card
cardNumericalValue = 10;
}
if(cardValue == 'J')
{
// jack
cardNumericalValue = 11;
}
if(cardValue == 'Q')
{
// queen
cardNumericalValue = 12;
}
if(cardValue == 'K')
{
// king
cardNumericalValue = 13;
}
}
private:
char cardValue;
char cardSuit;
int cardNumericalValue;
};
// main program // main program
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
// create array of cards called deck.
vector<Card> deck;
// have two hands for cards
vector<Card> humanHand;
vector<Card> computerHand;
// game setup
// create deck by loop for 1 - 13 with each suit {(H)earts, S(pades), C(lubs), D(iamonds)}.
// use double for loop, outer for suits, inner for values.
// shuffle deck randomly? (use shuffle function from vector library)
// deal hands by taking each card from the deck, one by one (7x) (for loop here.)
// main gameplay loop (while?)
// ask for card rank/number/value
// if card is in hand,
// return 0 // return 0
return 0; return 0;
} }
// compiles using "g++ -Wall -pedantic go_fish.cpp -o go_fish" - note to programmer // compiles using "g++ -Wall -pedantic go_fish.cpp -o go_fish" - note to programmer
/*
Function Name: humanTurn
Process: ???
Function Input/Parameters: ???
Function Output/Parameters: ???
Function Output/Returned: ???
Device Input/Device: ???
Device Output/Monitor: ???
Dependencies: ???
*/
void humanTurn()
{
/*
Handles the human’s turn. It will prompt the player to ask for a card rank/number and
check if the computer has the requested rank/number. If the card is available in the
computer’s hand, it will transfer the card to the human’s hand otherwise, it will draw a
card. The function should return the number of sets collected during the turn
*/
// void function, no return.
}
/*
Function Name: computerTurn
Process: ???
Function Input/Parameters: ???
Function Output/Parameters: ???
Function Output/Returned: ???
Device Input/Device: ???
Device Output/Monitor: ???
Dependencies: ???
*/
void computerTurn()
{
/*
Handles the computer’s turn and it should do the same actions as the human but for the
computer. The function should return the number of set that is collected during its turn.
*/
// void function, no return.
}

Binary file not shown.

View file

@ -23,10 +23,6 @@ Dependencies: ???
#include <cstdlib> #include <cstdlib>
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
#include <list>
#include <set>
#include <unordered_map>
#include <time.h>
using namespace std; using namespace std;
@ -37,6 +33,198 @@ using namespace std;
// main program // main program
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
/*
Maze Layout:
Y Y Y
=============
| S | | | X
| B | | B | X
| E | | | X
=============
*/
bool mazeStop = true;
bool wrongWayFlag = false;
int currentX = 0;
int currentY = 0;
int currentIteration = 0;
// int endX = 0;
// int endY = 2;
// int blockerOneX = 0;
// int blockerOneY = 1;
// int blockerTwoX = 2;
// int blockerTwoY = 1;
char directionCharacter;
// welcome user to the maze game, explain rules, etc.
cout << "Welcome to the maze game!" << endl;
cout << "Find the end of the maze by entering in directions, such as N(North), E(East), S(South), W(West)." << endl;
cout << "Start game!" << endl;
cout << endl;
while (mazeStop)
{
// if at the starting position, display starting message.
if(currentX == 0 && currentY == 0)
{
// display starting message.
cout << "You are at the start of the maze. The only opening is east." << endl;
if(directionCharacter == 'e')
{
//
currentX = 0;
currentY = 1;
wrongWayFlag = false;
}
else
{
wrongWayFlag = true;
}
}
if(currentX == 0 && currentY == 1)
{
//
cout << "You have continued through the maze. There are openings to the east, west, and south." << endl;
if(directionCharacter == 'e')
{
//
currentX = 0;
currentY = 0;
wrongWayFlag = false;
}
if(directionCharacter == 'w')
{
//
currentX = 0;
currentY = 2;
wrongWayFlag = false;
}
if(directionCharacter == 's')
{
//
currentX = 1;
currentY = 1;
wrongWayFlag = false;
}
else
{
wrongWayFlag = true;
}
}
if(currentX == 0 && currentY == 2)
{
//
cout << "You are continuing through the maze, however, the only opening is to the west." << endl;
if(directionCharacter == 'w')
{
//
currentX = 0;
currentY = 1;
wrongWayFlag = false;
}
else
{
wrongWayFlag = true;
}
}
if(currentX == 1 && currentY == 1)
{
//
cout << "Continuing through the maze, the available directions are north and south." << endl;
if(directionCharacter == 'n')
{
//
currentX = 0;
currentY = 1;
wrongWayFlag = false;
}
if(directionCharacter == 's')
{
//
currentX = 2;
currentY = 1;
wrongWayFlag = false;
}
else
{
wrongWayFlag = true;
}
}
if(currentX == 2 && currentY == 0)
{
//
cout << "You have found the end! Congratulations!" << endl;
cout << "Press X to exit." << endl;
if(directionCharacter == 'x')
{
// set the ending flag to false.
mazeStop = false;
}
}
if(currentX == 2 && currentY == 1)
{
//
cout << "Wandering along, the new directions open are north, east, and west." << endl;
if(directionCharacter == 'n')
{
//
currentX = 1;
currentY = 1;
wrongWayFlag = false;
}
if(directionCharacter == 'e')
{
//
currentX = 2;
currentY = 2;
wrongWayFlag = false;
}
if(directionCharacter == 'w')
{
//
currentX = 2;
currentY = 0;
wrongWayFlag = false;
}
else
{
wrongWayFlag = true;
}
}
if(currentX == 2 && currentY == 2)
{
//
cout << "While continuing through the maze, you see the only opening is the west." << endl;
if(directionCharacter == 'w')
{
//
currentX = 2;
currentY = 1;
wrongWayFlag = false;
}
else
{
wrongWayFlag = true;
}
}
else
{
if(currentIteration != 0 && wrongWayFlag)
{
// print direction out of bounds.
cout << "You cannot move that way. Try again." << endl;
}
}
// ask user for a direction, check if in bounds
cout << "Which direction would you like to go in?" << endl;
cout << ">";
cin.ignore();
directionCharacter = getchar();
currentIteration = currentIteration + 1;
// if in bounds, move. (if not in bounds, warn them and start over.)
}
cout << "Thanks for playing!" << endl;
// return 0 // return 0
return 0; return 0;
} }

Binary file not shown.

View file

@ -29,6 +29,7 @@ int main(int argc, char **argv)
{ {
int numSentences = 0; int numSentences = 0;
int numSpaces = 0; int numSpaces = 0;
int wordTotal = 0;
string tempString; string tempString;
// ask user for number of sentences // ask user for number of sentences
cout << "How many sentences would you like to enter?" << '\n'; cout << "How many sentences would you like to enter?" << '\n';
@ -55,11 +56,15 @@ int main(int argc, char **argv)
} }
// add an extra 'word' because of the end. // add an extra 'word' because of the end.
numSpaces = numSpaces + 1; numSpaces = numSpaces + 1;
// total the number of words.
wordTotal = wordTotal + numSpaces;
// print out to the user // print out to the user
cout << "Sentence " << sentenceIterator + 1 << " has " << numSpaces << " words." << endl; cout << "Sentence " << sentenceIterator + 1 << " has " << numSpaces << " words." << endl;
// reset word counter // reset word counter
numSpaces = 0; numSpaces = 0;
cout << endl;
} }
cout << "Total word count: " << wordTotal << endl;
// return 0 // return 0
return 0; return 0;
} }