Help Compiling Two games into one project

I have two games written and I want to combien them into one code. I want to press the first button and play simon, and then press the second button to play line. How do I do this?
Here is the code for simon:

#define simon 999
#define STATE_INTRO 0
#define STATE_TALKING 1
#define STATE_LISTENING 2
#define STATE_PROCESSING 3
const int red = 1;
const int yel = 2;
const int grn = 3;
const int org = 4;
const int b1 = 8;
const int b2 = 9;
const int b3 = 10;
const int b4 = 11;
const int speaker = 7;
const int keys[] = { 0, 220, 247, 196, 147 };
const int MAX = 255;
int introcount = 0;
int buttonPressed = 0;
int gameTable[MAX];
int gameCount = -1;
int gameState = STATE_INTRO;
int listenCount = -1;
void setup() {
pinMode(red, OUTPUT);
pinMode(yel, OUTPUT);
pinMode(grn, OUTPUT);
pinMode(org, OUTPUT);
pinMode(b1, INPUT);
pinMode(b2, INPUT);
pinMode(b3, INPUT);
pinMode(b4, INPUT);
pinMode(speaker, OUTPUT);
randomSeed(analogRead(0));
}

void loop() {
switch (gameState) {
case STATE_INTRO:
Intro();
break;

case STATE_TALKING:
delay(1000);
Talk();
break;

case STATE_LISTENING:
CheckPress(b1, red);
CheckPress(b2, yel);
CheckPress(b3, grn);
CheckPress(b4, org);
break;

case STATE_PROCESSING:
Process();
break;
}
}
void Intro() {
int r = random4();
ToneLight(r, r);
delay(20);

if (introcount++ == 10) {
gameState = STATE_TALKING;
introcount = 0;
SeedGame();
}
}
void Talk() {
gameCount += 1;
for (int i = 0; i < gameCount + 1; i++) {
ToneLight(gameTable_, gameTable*);_
_
delay(200);_
_
}_
gameState = STATE_LISTENING;
_
}_
void CheckPress(int btn, int led) {
_
int state = digitalRead(btn);_
_
if (state == LOW) {_
_
ToneLight(led, led);_
_
buttonPressed = led;_
gameState = STATE_PROCESSING;
_
listenCount += 1;_
_
} else*_
* digitalWrite(led, LOW);*
}
void Process() {
* if (buttonPressed == gameTable[listenCount]) {*
* gameState = STATE_LISTENING;*

* if (listenCount == gameCount) {*
* listenCount = -1;*
* gameState = STATE_TALKING;
_
} else {_
gameState = STATE_LISTENING;
_
return;_
_
}_
_
} else {_
gameState = STATE_INTRO;
_
gameCount = -1;_
_
listenCount = -1;_
_
}_
_
}_
void ToneLight(int led, int key) {
_
digitalWrite(led, HIGH);_
_
tone(speaker, keys[key], 200);_
_
delay(200);_
_
digitalWrite(led, LOW);_
_
}_
void SeedGame() {
_
for (int i=0; i < MAX; i++) {_
_ gameTable = random4();
}
}
int random4() {
int r = random(4);
return ++r;
}*
HERE IS THE CODE FORE LINE :_

int currentLED = 1;
int delayValue = 300;

void setup() {
* pinMode(11, INPUT); // button input*
* pinMode(7, OUTPUT); //speaker output*

* pinMode(1, OUTPUT); // RED LED*
* pinMode(2, OUTPUT); // YELLOW LED*
* pinMode(3, OUTPUT); // GREEN LED*
* pinMode(4, OUTPUT); // PINK LED*
}
int buttonPress() {
* if (digitalRead(11) == 0) {*
* return 1;*

* } else {*
* return 0;*
* }*
}

void loop(){
* if (digitalRead(11) == 0) {*
* if (currentLED == 4) {*
* // Blink the correct LED*
* digitalWrite(4, HIGH);*
* delay(200);*
* digitalWrite(4, LOW);*
* delay(200);*
* digitalWrite(4, HIGH);*
* delay(200);*
* digitalWrite(4, LOW);*
* delay(200);*

// Speed up the LEDs
* delayValue = delayValue - 15;*

* } else {*
* // Blink the wrong LED*
* digitalWrite(currentLED, HIGH);*
* delay(200);*
* digitalWrite(currentLED, LOW);*
* delay(200);*
* digitalWrite(currentLED, HIGH);*

* delay(200);*
* digitalWrite(currentLED, LOW);*
* delay(200);*
* }*
* }*
* //LED from white –> yellow –> green –> red*
* digitalWrite(currentLED, HIGH);*
* delay(delayValue);*
* digitalWrite(currentLED, LOW);*
* delay(delayValue);*
* currentLED = currentLED + 1;*
* if (currentLED > 4) {*
* currentLED = 1;*
* }*
}
THANKS FOR ANYONE WHO HELPS

CODE TAGS! Also this is more of a Programming Questions kind of question instead of an Other Software Development question.

You can make whatever are in the setup functions into there own unique functions (same for the loop functions), and a way to pick the game you want to play. This will decide what setup and loop functions to run. Its not that hard, it just requires some thought.