Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions final.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
Jack Rosen.
I am creating a text-based game where you need to escape the cops in a car.
The game will tell you how much gas you have, how much space is between you and the cops, how much oil is left, and how far you are from winning. You can win if you are over 30 miles from the cops. And you lose if you are under 5 miles from the cops. The user will be prompted to either go fast, go slow, refill gas, or refill the oil.
There will be a conditional so the person chooses what they want to do.
The loop will keep asking the person what they want to do until they win or lose.
The functions will be in use depending on what you input.
The structures will hold data about your name, the distance between you and the cops, the amount of gas left, and when you need to change oil.
The array will hold your name.
I chose this program because it uses all of the programming techniques we have learned and it seemed like an interesting way to use it.
Binary file addedproject
Binary file not shown.
279 changes: 279 additions & 0 deletions project.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/*Creates a structure for the person*/
typedef struct persona
{
int distance;
int engine;
int gas;
int durability;
} person;

/*Shows the distance the police move each turn*/
int copDistance(int distance)
{
int r = (rand() % 3) +1;
distance -= r;
return distance;
}

/*Fixes the user's engine*/
int fixEngine(int engine)
{
engine = 6;
printf("Your engine is fixed!\n");
return engine;
}

/*Moves the user quickly*/
int goFast(int distance)
{
distance += (rand() % 3) + 4;
return distance;
}

/*Moves the user slowly*/
int goSlow(int distance)
{
distance += (rand() % 2) + 2;
return distance;

}

/*Refills the user's gas*/
int refillGas(int gas)
{
gas = 20;
printf("Your gas tank is full!\n");
return gas;
}

int fixCar(int durability)
{
durability = 2;
printf("Your car is fixed!\n");
return durability;
}

int main()
{

int moving;
/*starts the random number generator*/
srand(time(0));
/*Sets the scene for the game*/
printf("You are on the run from the police. Can you escape? Choose your actions wisely because you can be caught!!\n");
/*Calls for the user input and initializes the hiding places*/
char input, hidingPlace[4][100] = {"Alley", "Store", "Concert", "Supermarket"};
/*Initializes the while loop parameter*/
int x = 0;
/*Initializes the structure*/
person user;
user.distance = 10;
user.engine = 6;
user.gas = 20;
user.durability = 2;
/*Initializes the opportunity for car crash*/
int crash = 0, crashchecker = 0;
/*Initializes the hiding place possibility*/
int hiding[2] = {0,0};
/*Initializes error checkers*/
int hWorks = 0, error = 0, s = 0;
static int i = 0;
while (x == 0) //Start of while loop
{
s = 0;
/*Prompts the user for input*/
printf("What would you like to do?\n");
printf("Write q to quit, e to fix your engine, g to refill gas, f to go fast, i for information, d to fully fix your car to its full durability and s to go slow\n");
/*Gives user possibility for hiding place*/
hiding[1] = rand() % 10;
/*Checks to see if the user found a hiding spot*/
if (hiding[1] == 8 && i > 0 && error == 0)
{
/*Decides the hiding place*/
hiding[2] = rand() % 4;
printf("You have found a hiding spot. It is in the %s. Put in h to hide.\n", *(hidingPlace + hiding[2]));
}
/*Scans for user input*/
scanf("%c", &input);
/*Checks user input*/
if (input == '\n')
{
input = getchar();
}
/*Checks if user input is valid for hiding*/
if ((input == 'h' || input == 'H') && hiding[1] == 8)
{
hWorks++;
/*Decides if the user has hid from the cops*/
hiding[2] = rand() % 6;
if (hiding[2] == 3)
{
printf("You hid from the cops and escaped the police, so you win!!\n");
x++;
break;
}
else
{
printf("You did not escape the police, so you need to keep moving!\n");
user.distance = copDistance(user.distance);
}

}
error = 0;
/*Evaluates each user input*/
switch (input)
{
case 'Q':
case 'q':
printf("You have chosen to quit, are you sure? Write y for yes or n for no!\n");
/*Evaluates user input to see if they actually want to quit*/
while (s == 0)
{
scanf("%c", &input);
if (input == '\n')
{
scanf("%c", &input);
}
if (input == 'y' || input == 'Y')
{
x++;
s++;
printf("Have a nice day! \n");
}
else if (input == 'n' || input == 'N')
{
s++;
printf("Why would you lie to me like that?\n");
}
else
{
printf("That is not a valid input \n");
}
}
break;
case 'E':
case 'e':
user.engine = fixEngine(user.engine);
user.distance = copDistance(user.distance);
error ++;
break;
case 'G':
case 'g':
user.gas = refillGas(user.gas);
user.distance = copDistance(user.distance);
error++;
break;
case 'F':
case 'f':
moving = user.distance;
user.distance = goFast(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 3;
user.engine--;
break;
case 'S':
case 's':
moving = user.distance;
user.distance = goSlow(user.distance);
/*Calculates how much the user has moved*/
moving = user.distance - moving;
printf("You moved %d miles! \n", moving);
user.distance = copDistance(user.distance);
/*Calculates how much gas the user has lost*/
user.gas -= (rand() % 2) + 1;
user.engine--;
break;
case 'I':
case 'i':
/*Tells the users all of the information*/
printf("You are %d miles away from the police, you have %d more moves before you need to fix your engine, you have %d more gallons of gas left, and your car can survive %d more crashes! \n", user.distance, (user.engine - 1), user.gas, (user.durability - 1));
error++;
break;
case 'D':
case 'd':
user.durability = fixCar(user.durability);
user.distance = copDistance(user.distance);
break;
case 'H':
case 'h':
/*Checks if the user input is valid for h*/
if (hWorks != 0)
{
break;
}
/*Returns errors if it is incorrect placement*/
default:
printf("That is not a valid input\n");
error++;
}
/*Checks if user crashed*/
crash = rand() % 12;
if (crash == 11 && (input == 'f' || input == 'F' || input == 'S' || input == 's'))
{
if (user.durability == 2)
{
printf("You have crashed, and if you crash again you will lose!\n");
user.durability--;
}
else if (user.durability == 1)
{
printf("You have crashed and your car broke. You lose!!\n");
x++;
}

}
/*Checks end-of-game scenarios*/
if (x == 1)
{
break;
}
if (user.distance < 8 && user.distance >= 5)
{
printf("The police are calling out \"We are coming, you should pull over!\"");
printf("\n");
}
else if (user.distance >= 35)
{
printf("You have outran the police!!\n");
x++;
break;
}
else if (user.distance < 5)
{
printf("The police have caught you. You lose!\n");
x++;
break;
}
if (user.gas <= 0)
{
printf("You lose because you ran out of gas!!\n");
x++;
break;
}
if(user.engine == 1)
{
printf("Your engine needs fixing.\n");
}
else if (user.engine < 1)
{
printf("You lose because you needed to fix your engine.\n");
x++;
break;
}
if (user.gas <= 4 && user.gas > 0)
{
printf("Your gas level is very low\n");
}
i++;
hWorks = 0;
printf("\n");
}
}
12 changes: 12 additions & 0 deletions readme.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
Jack Rosen
Game Description:
This game is designed so that you are on the run from the police. It starts by giving a brief description and before every turn, the game displays the options that you can use. Randomly, a hiding spot will appear and you will have the option of hiding there. There is a chance that you will escape the police from that, but if you don't, the police will still keep moving. If you want to quit, press q and it will ask if you are sure that you want to quit. You can input your choice after it tells you all of the options. You can run it using the executable file that will be given to you.

To win the game:
There are a couple of ways to win the game. You can get 35 miles or farther from the police. Also, if you try to hide from the police, there is a chance that you will win.

Changes:
I added the hiding places and took out the name. The name did not seem important and the idea of hiding places was much better. I also changed "running out of oil" to "fixing the engine" to make the game more realistic. I also added durability and car crashes. The car will be able to survive one car crash, and if the person does not fix it and it crashes again, the user loses.

Compilation:
To compile, use "gcc project.c -o project"