#T Runner
Esse jogo foi feito em 2009 durante a disciplina de Introdução a Ciência da Computação I.
Foi feito usando Windows e Dev-C++.
Não há garantia de que funcione. Se funcionar provavelmente deve estar muito bugado.
#include <stdio.h> | |
#include <stdlib.h> | |
#include <math.h> | |
#include <time.h> | |
struct info jogador;//struct para as informações do jogador | |
struct misce misc;//struct para informações de informações variadas | |
char cenario[35][80] = | |
{{"###########################################"},\ | |
{"# O #"},\ | |
{"# ##H#########"},\ | |
{"# H #"},\ | |
{"# H #"},\ | |
{"# I H #"},\ | |
{"# H########### #"},\ | |
{"# H #"},\ | |
{"# I H #"},\ | |
{"# ###H#### ###### #"},\ | |
{"# H #"},\ | |
{"# H I#"},\ | |
{"###########################################"}}; | |
char tecla;//variavel que recebe os comandos dado pelo usuário | |
char tecla2;//variavel que armazena a ultima tecla pressionada | |
struct misce | |
{ | |
int ex[200];//variavel que armazena a posição X das escadas | |
int ey[200];//variavel que armazena a posição Y das escadas | |
int e;//variavel para contar quantas escadas há | |
int i1x[100];//variavel que armazena a posição X do item 1 ('I') | |
int i1y[100];//variavel que armazena a posição Y do item 1 ('I') | |
int i2x[50];//variavel que armazena a posição X do item 2 ('O') | |
int i2y[50];//variavel que armazena a posição Y do item 2 ('O') | |
int sx[300];//variavel que armazena a posição X dos espinhos | |
int sy[300];//variavel que armazena a posição Y dos espinhos | |
int s;//contador dos espinhos | |
int item1;//contador do total de item 1 | |
int item2;//contador do total de item 2 | |
int itemt;//soma do total de itens | |
int fase;//contador que indica a fase que o usuário está jogando | |
int h;//altura do cenario que o jogador está | |
int t;//tempo de jogo | |
float g;//gravidade | |
}; | |
struct info | |
{ | |
int x;//posição X do jogador | |
int y;//posição Y do jogador | |
int dy;//distancia Y que o jogador percorreu | |
int pont;//pontuação do jogador | |
int vidas;//quantidade de vidas que o jogador tem | |
int vy;//velocidade y do jogador | |
float a;//aceleração do jogador | |
}; | |
void espinhos() | |
//função dos espinhos, caso o jogador encoste neles perde vida e vai para o começo da fase | |
{ | |
int i; | |
for (i=0;i<=misc.s;i++) | |
{ | |
if(jogador.x == misc.sx[i] && jogador.y == misc.sy[i]) | |
//chegagem para ver se o jogador encostou em espinhos | |
{ | |
if(misc.fase<3)//para que posição do cenario o jogador volta quando morre | |
{ | |
jogador.x = 11;//nas fases 1, 2 e 3 ele volta | |
jogador.y = 7;//para esta posição | |
} | |
else if (misc.fase == 3) | |
//fases a partir da quarta o jogador nasce em posições diferentes | |
{ | |
jogador.x = 15;//para onde volta na fase 4 | |
jogador.y = 6; | |
} | |
else if(misc.fase == 4) | |
{ | |
jogador.x = 19;//para onde volta na fase 5 | |
jogador.y = 3; | |
} | |
jogador.vidas--;//perda de vida | |
break; | |
} | |
} | |
} | |
void conta_pontuacao() | |
//função que conta a pontuação | |
{ | |
int i; | |
for(i=0;i<misc.itemt;i++) | |
{ | |
if (cenario[misc.i1x[i]][misc.i1y[i]] == 'T') | |
//se a posição do jogador for a mesma que um item ele ganha pontos | |
//e a posição do item é 'anulada' para que o jogador nao volte a pegá-los | |
{ | |
jogador.pont+=10;//se o jogador pegar o item1 ganha 10 pontos | |
misc.i1x[i] = -1; | |
misc.i1y[i] = -1; | |
misc.item1--; | |
} | |
if (cenario[misc.i2x[i]][misc.i2y[i]] == 'T') | |
{ | |
jogador.pont+=25;//se o jogador pegar o item1 ganha 25 pontos | |
misc.i2x[i] = -1; | |
misc.i2y[i] = -1; | |
misc.item2--; | |
} | |
} | |
} | |
void busca() | |
//função que procura e armazena as posições dos itens, espinhos e escada | |
{ | |
int i=0,j=0,k=0,l=0,m=0,o=0; | |
//i, j, k, m, l, m, o, são contadores usados para orientar a posição em que | |
//as informações da busca serão adicionadas em cada vetor | |
misc.item1 = 0;//contadores zerados para que não haja conflitos, uma vez que | |
misc.item2 = 0;//essa função é executada uma vez por fase | |
misc.s = 0; | |
misc.e = 0; | |
misc.itemt = 0; | |
misc.h = 0; | |
for(i=0;i<34;i++) | |
{ | |
if (cenario[i][0] == '#') | |
misc.h+=1;//calcula a altura do cenario | |
for(j=0;j<80;j++) | |
{ | |
if(cenario[i][j] == 'H') | |
{ | |
misc.ex[m] = i; | |
misc.ey[m] = j; | |
misc.e++; | |
m++; | |
} | |
if(cenario[i][j] == 'I') | |
{ | |
misc.i1x[k] = i; | |
misc.i1y[k] = j; | |
k++; | |
misc.item1++; | |
} | |
if(cenario[i][j] == 'O') | |
{ | |
misc.i2x[l] = i; | |
misc.i2y[l] = j; | |
l++; | |
misc.item2++; | |
} | |
if(cenario[i][j] == 'v' || cenario[i][j] == '+' || cenario[i][j] == 'X') | |
{ | |
misc.sx[o] = i; | |
misc.sy[o] = j; | |
o++; | |
misc.s++; | |
} | |
} | |
} | |
misc.itemt = misc.item1+misc.item2; | |
} | |
void escadas() | |
{ | |
int i; | |
for (i=0;i<50;i++) | |
{ | |
if(jogador.x == misc.ex[i] && jogador.y == misc.ey[i]) | |
{} | |
else if(cenario[misc.ex[i]][misc.ey[i]] != 'H') | |
cenario[misc.ex[i]][misc.ey[i]] = 'H'; | |
} | |
} | |
void imprime_cenario() | |
{ | |
int i; | |
system("cls"); | |
escadas(); | |
espinhos(); | |
cenario[jogador.x][jogador.y] = 'T'; | |
conta_pontuacao(); | |
printf("Fase %d\n",misc.fase+1); | |
for(i=0;i<=misc.h;i++) | |
printf("%s\n",cenario[i]); | |
printf("Pontos: %d Vidas: %d",jogador.pont,jogador.vidas); | |
} | |
void movimento() | |
{ | |
int i; | |
tecla2 = tecla; | |
tecla = getch(); | |
if(tecla == 'd') | |
{ | |
if (tecla2 == 'd') | |
jogador.dy++; | |
else if (tecla2 != 'd') | |
{ | |
jogador.dy = 0; | |
jogador.vy = 1; | |
} | |
jogador.vy = sqrt(jogador.vy*jogador.vy + 2*jogador.a*jogador.dy); | |
if(cenario[jogador.x][jogador.y+1] == '#') | |
{ | |
} | |
else if(cenario[jogador.x][jogador.y+2] == '#' && jogador.vy > 1) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x][jogador.y+3] != '#' && jogador.vy > 1) | |
{ | |
for(i=0;i<2;i++) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
} | |
else if (cenario[jogador.x][jogador.y+1] != '#') | |
{ | |
for (i=0;i<jogador.vy;i++) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
} | |
} | |
if(tecla == 'a') | |
{ | |
if (tecla2 == 'a') | |
jogador.dy++; | |
else if (tecla2 != 'a') | |
{ | |
jogador.dy = 0; | |
jogador.vy = 1; | |
} | |
jogador.vy = sqrt(jogador.vy*jogador.vy + 2*jogador.a*jogador.dy); | |
if(cenario[jogador.x][jogador.y-1] == '#') | |
{ | |
} | |
else if(cenario[jogador.x][jogador.y-2] == '#' && jogador.vy > 1) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x][jogador.y-3] != '#' && jogador.vy > 1) | |
{ | |
for(i=0;i<2;i++) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
} | |
else if (cenario[jogador.x][jogador.y-1] != '#') | |
{ | |
for (i=0;i<jogador.vy;i++) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
} | |
} | |
if(tecla == 'w') | |
{ | |
int i; | |
for (i=0;i<(misc.e);i++) | |
{ | |
if(cenario[jogador.x-1][jogador.y] == '#') | |
break; | |
if(jogador.x == misc.ex[i] && jogador.y == misc.ey[i]) | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
return ; | |
} | |
} | |
if(cenario[jogador.x-2][jogador.y] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
} | |
else if (cenario[jogador.x-1][jogador.y] != '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x-=2; | |
imprime_cenario(); | |
} | |
} | |
if(tecla == 's') | |
{ | |
if(cenario[jogador.x+1][jogador.y] == '#') | |
{} | |
else{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x++; | |
imprime_cenario(); | |
} | |
} | |
if(tecla == 'q') | |
{ | |
if (cenario[jogador.x-1][jogador.y] == '#') | |
{} | |
else if(cenario[jogador.x-1][jogador.y-1] == '#') | |
{ | |
if (cenario[jogador.x-2][jogador.y] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x-1][jogador.y] != '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x-=2; | |
imprime_cenario(); | |
} | |
} | |
else if(cenario[jogador.x-2][jogador.y-1] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x-1][jogador.y-2] == '#' && cenario[jogador.x-2][jogador.y-2] != '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x-2][jogador.y-2] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
else{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
imprime_cenario(); | |
} | |
} | |
if(tecla == 'e') | |
{ | |
if (cenario[jogador.x-1][jogador.y] == '#') | |
{} | |
else if(cenario[jogador.x-1][jogador.y+1] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x-=2; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x-2][jogador.y+1] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x-1][jogador.y+3] == '#' && cenario[jogador.x-2][jogador.y+3] != '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
else if(cenario[jogador.x-2][jogador.y+2] == '#') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
else{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.x--; | |
imprime_cenario(); | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
imprime_cenario(); | |
} | |
} | |
} | |
void gravidade() | |
{ | |
int i,h=0,t,aux=0; | |
if (cenario[jogador.x][jogador.y+1] == ',') | |
cenario[jogador.x+1][jogador.y] = ' '; | |
if (cenario[jogador.x+1][jogador.y] != '#' && cenario[jogador.x+1][jogador.y] != 'H') | |
aux = 1; | |
else{ | |
aux = 0; | |
} | |
if (aux == 1) | |
h = misc.h-jogador.x; | |
if (h > 0) | |
{ | |
for (i=h;i>0;i--) | |
{ | |
t = 1000*sqrt(2*i/misc.g); | |
if (cenario[jogador.x+1][jogador.y] == '#' || cenario[jogador.x+1][jogador.y] == 'H' || cenario[jogador.x][jogador.y] == 'H') | |
break; | |
if (cenario[jogador.x+1][jogador.y-1] == '#') | |
tecla = 'x'; | |
if (cenario[jogador.x+1][jogador.y+1] == '#') | |
tecla = 'x'; | |
cenario[jogador.x][jogador.y] = ' '; | |
sleep(150); | |
if (tecla == 'q') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y--; | |
} | |
else if (tecla == 'e') | |
{ | |
cenario[jogador.x][jogador.y] = ' '; | |
jogador.y++; | |
} | |
if (cenario[jogador.x+1][jogador.y] != '#') | |
jogador.x++; | |
imprime_cenario(); | |
} | |
} | |
} | |
void variaveis() | |
{ | |
int i; | |
jogador.vy = 1; | |
for(i=0;i<10;i++) | |
{ | |
misc.i1x[i] = -1; | |
misc.i1y[i] = -1; | |
misc.i2x[i] = -1; | |
misc.i2y[i] = -1; | |
} | |
for(i=0;i<50;i++) | |
{ | |
if (i<50) | |
{ | |
misc.ex[i] = 100; | |
misc.ey[i] = 100; | |
} | |
if(i<20) | |
{ | |
misc.sx[i] = -1; | |
misc.sy[i] = -1; | |
} | |
if (i<10) | |
{ | |
misc.i1x[i] = -1; | |
misc.i1y[i] = -1; | |
misc.i2x[i] = -1; | |
misc.i2y[i] = -1; | |
} | |
} | |
} | |
void final_fase() | |
{ | |
int i,j; | |
char fase1[35][80] = | |
{{"###########################################"},\ | |
{"# O #"},\ | |
{"# ##H#########"},\ | |
{"# H #"},\ | |
{"# H #"},\ | |
{"# I H #"},\ | |
{"# H########### #"},\ | |
{"# H #"},\ | |
{"# I H #"},\ | |
{"# ###H#### ###### #"},\ | |
{"# H #"},\ | |
{"# H I#"},\ | |
{"###########################################"}}; | |
char fase2[35][80] = | |
{{"###################################################################"},\ | |
{"# O #"},\ | |
{"# #H############H####################"},\ | |
{"# H H #"},\ | |
{"# H H #"},\ | |
{"# I H H #"},\ | |
{"# #H############ H #"},\ | |
{"# H H I O #"},\ | |
{"# I H ################# #"},\ | |
{"# ##H#### ##### #"},\ | |
{"# H #"},\ | |
{"# H I #"},\ | |
{"###################################################################"}}; | |
char fase3[35][80] = | |
{{"########################################################################"},\ | |
{"# #"},\ | |
{"# I #"},\ | |
{"# I H########## #"},\ | |
{"# ###### H #"},\ | |
{"# H####### H O #"},\ | |
{"# H O H #### #"},\ | |
{"# H ### H #"},\ | |
{"# H I H I #"},\ | |
{"# ######H ###### H ### #"},\ | |
{"# H ####### #"},\ | |
{"# H vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv O #"},\ | |
{"########################################################################"}}; | |
char fase5[35][80] = | |
{{"###############################################"},\ | |
{"# # I ++++#"},\ | |
{"# + + + ## # I H####### #"},\ | |
{"#O +I + I+++ # I # H ++ # ### X#"},\ | |
{"################# # # H ++ # ##"},\ | |
{"# # ++ # +H I # ## #"},\ | |
{"# # ##### +H # #"},\ | |
{"#I II I I I #++ I +# +H I # #"},\ | |
{"## ## # ## ## #######I+# +H # #"},\ | |
{"# # +# H + # #"},\ | |
{"# # + +I+ +#I H + # #"},\ | |
{"# #+ ########## H + # #"},\ | |
{"#I +++ #I+ ++ ++++# +H # #"},\ | |
{"######## #+ + +# H + # #"},\ | |
{"# ############# +# H + # #"},\ | |
{"# #+++ + + I +# +H I# I #"},\ | |
{"#I+ # + I + + +# +H # # #"},\ | |
{"#### #+ ################ +H + ## #"},\ | |
{"# #++ # H + # # O #"},\ | |
{"# #I + + + + + OOO H #I vvvvv#"},\ | |
{"###############################################"}}; | |
char fase4[35][80] = | |
{{"########################################################################"},\ | |
{"# #"},\ | |
{"# O O#"},\ | |
{"# # I #"},\ | |
{"#H I # + I + H#"},\ | |
{"#H # + #H# ## ###H### + H#"},\ | |
{"#H O + OO + H H + H#"},\ | |
{"## # # # ######## H I H H#"},\ | |
{"# # # H H ###### H#"},\ | |
{"# # H H H#"},\ | |
{"# # I # H I H H#"},\ | |
{"# # # H ###### vvvvvvvvvvvvvvI H#"},\ | |
{"# # # # O ##### ################ H#"},\ | |
{"# # # ##### I O H#"},\ | |
{"# # # ### H#"},\ | |
{"#vvvv vvvvv#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vv vv vv vvvvvvvH#"},\ | |
{"########################################################################"}}; | |
char fase6[35][80] = | |
{{"########################################################################"},\ | |
{"#HAHAHAHAH! V0CE REALMENTE ACH0U QUE EU 1A DE1XAR V0CE TERM1NAR 0 J0G0?#"},\ | |
{"########################################################################"},\ | |
{"# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,,,,,,,,,,,,,,,,,,,,,,,,,,,#"},\ | |
{"########################################################################"}, | |
{"# #I# I#"},\ | |
{"# #I# #"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# #I#O H#"},\ | |
{"# #I## H#"},\ | |
{"# #I# H#"},\ | |
{"# #I# H#"},\ | |
{"# O H#"},\ | |
{"#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv###########vvvvvvvvvvvvvvvvvvvvv#"}, | |
{"########################################################################"}}; | |
misc.fase++; | |
if (misc.fase == 0) | |
{ | |
for(i=0;i<35;i++) | |
for(j=0;j<80;j++) | |
cenario[i][j] = fase1[i][j]; | |
jogador.x = 11; | |
jogador.y = 7; | |
} | |
if (misc.fase == 1) | |
{ | |
for(i=0;i<35;i++) | |
for(j=0;j<80;j++) | |
cenario[i][j] = fase2[i][j]; | |
jogador.x = 11; | |
jogador.y = 7; | |
} | |
if (misc.fase == 2) | |
{ | |
for(i=0;i<35;i++) | |
for(j=0;j<80;j++) | |
cenario[i][j] = fase3[i][j]; | |
jogador.x = 11; | |
jogador.y = 7; | |
} | |
if (misc.fase==3) | |
{ | |
for(i=0;i<35;i++) | |
for(j=0;j<80;j++) | |
cenario[i][j] = fase4[i][j]; | |
jogador.x = 15; | |
jogador.y = 6; | |
} | |
if (misc.fase==4) | |
{ | |
for(i=0;i<35;i++) | |
for(j=0;j<80;j++) | |
cenario[i][j] = fase5[i][j]; | |
jogador.x = 19; | |
jogador.y = 3; | |
} | |
if (misc.fase==5) | |
{ | |
for(i=0;i<35;i++) | |
for(j=0;j<80;j++) | |
cenario[i][j] = fase6[i][j]; | |
jogador.x = 3; | |
jogador.y = 1; | |
} | |
} | |
int check_final_fase() | |
{ | |
int aux=0; | |
if ((misc.item1 + misc.item2) == 0) | |
{ | |
system("cls"); | |
aux = jogador.vidas; | |
jogador.vidas = 0; | |
if (misc.fase<5) | |
printf("Voce passou de fase!!! Parabens!\n\n\n"); | |
final_fase(); | |
} | |
return aux; | |
} | |
int main() | |
{ | |
char opcao; | |
int vidas; | |
time_t t1,t2; | |
jogador.a = 0.1; | |
misc.g = 1; | |
misc.t = 0; | |
jogador.pont = 0; | |
misc.fase = 0; | |
jogador.vidas = 3; | |
jogador.x = 11; | |
jogador.y = 7; | |
while (1) | |
{ | |
if(misc.fase == 0) | |
opcao = '2'; | |
variaveis(); | |
while (opcao == '2') | |
{ | |
printf("===============================================================================\n"); | |
printf("===================================[T Runner]==================================\n"); | |
printf("===============================================================================\n\n"); | |
printf("Escolha uma das opcoes abaixo:\n"); | |
printf("1.Jogar Alpha Runner.\n"); | |
printf("2.Instrucoes do jogo.\n"); | |
printf("3.TOP 10.\n"); | |
printf("4.Sair.\n"); | |
printf("===============================================================================\n"); | |
printf("===============================================================================\n"); | |
if(misc.fase==0) | |
opcao = getch(); | |
if(opcao != '2' && opcao != '3') | |
{} | |
else if(opcao == '2') | |
{ | |
printf("\nPara movimentar o personagem (T) use as teclas:\n\nW(para pular/subir escadas),\nA(para andar para esquerda),\nS(para descer escadas),\nD(para andar para a direita),\nQ(para pular na direcao da diagonal esquerda),\nE(para pular na direcao da diagonal direita).\n\n"); | |
printf("Objetivos: Coletar todos os itens ('O' e 'I')\ne acumular pontos, tomando cuidado com os 'espinhos'\n('v' e '+') para nao perder suas vidas.\n\n"); | |
printf("Digite uma tecla para voltar ao menu.\n"); | |
getch(); | |
system("cls"); | |
} | |
else if (opcao == '3') | |
{ | |
printf("\nTOP PLAYERS:"); | |
printf("\n\n"); | |
printf(" 1º Chinezinho - 198segundos\n"); | |
printf(" 2º Joaozinho - 274segundos\n"); | |
printf(" 3º Anonimo - 999segundos\n"); | |
printf(" 4º Anonimo - 999segundos\n"); | |
printf(" 5º Anonimo - 999segundos\n"); | |
printf(" 6º Anonimo - 999segundos\n"); | |
printf(" 7º Anonimo - 999segundos\n"); | |
printf(" 8º Anonimo - 999segundos\n"); | |
printf(" 9º Anonimo - 999segundos\n"); | |
printf("10º Anonimo - 999segundos\n"); | |
printf("\n\nPara colocar seu placar no ranking, mande uma screen da sua pontuacao e tempo\n"); | |
printf("para o desocupado que fez esse jogo!\n\n"); | |
printf("\nAperte uma tecla para voltar ao menu"); | |
getch(); | |
system("cls"); | |
opcao = '2'; | |
} | |
else if (opcao == '4') | |
exit(0); | |
} | |
busca(); | |
(void) time(&t1); | |
imprime_cenario(); | |
while(jogador.vidas>0) | |
{ | |
gravidade(); | |
movimento(); | |
vidas = check_final_fase(); | |
} | |
(void) time(&t2); | |
misc.t+=t2-t1; | |
if (vidas>0 && misc.fase < 6) | |
{ | |
jogador.vidas = vidas; | |
jogador.vidas++; | |
} | |
else if (vidas <= 0) | |
{ | |
misc.fase = -1; | |
final_fase(); | |
jogador.pont = 0; | |
jogador.vidas = 3; | |
system("cls"); | |
printf("\n\nGame Over.\n\n"); | |
printf("Cara, voce demorou %d segundos pra MORRER?\n\n"); | |
printf("Aperte uma tecla para voltar ao menu"); | |
getch(); | |
system("cls"); | |
misc.t = 0; | |
} | |
else if(misc.fase == 6) | |
{ | |
jogador.pont = jogador.pont + (jogador.pont/(misc.t*2)) + 30*jogador.vidas; | |
printf("Se o jogo tivesse completo, voce teria terminado o jogo!!!!!!\n\n"); | |
printf("Voce demorou %d segundos para pseudo-terminar!\n",misc.t); | |
printf("E fez %d pontos, nao e muito!\n\n",jogador.pont); | |
printf("(Me falaram que o chinezinho terminou em 198 segundos,\n"); | |
printf("voce vai deixar aquele idiotinha na sua frente?)\n\n"); | |
printf("Pseudo-parabens pela sua pseudo-consquista!!!!\n\n\n\n"); | |
printf("Agora ou voce aperta uma tecla pra voltar ao menu ou fecha o jogo"); | |
getch(); | |
system("cls"); | |
misc.t = 0; | |
printf("Oia eu dinovo aqiiii! :D!\n\n\n"); | |
printf("Vim aqui pra humildimente lhe pedir:\n"); | |
printf("nao revele os segredos das ultimas fases!\n"); | |
printf("para que o jogo tenha graca para os proximos jogadores!\n\n\n"); | |
printf("Obrigado por jogar!\n\n\n"); | |
printf("\nAperte uma tecla para voltar ao menu (de verdade agora)."); | |
getch(); | |
system("cls"); | |
} | |
if(vidas>0 && misc.fase <=5) | |
{ | |
printf("\n\nVoce demorou %d segundos para chegar ate aqui!\n",misc.t); | |
printf("\nAperte uma tecla para continuar."); | |
getch(); | |
system("cls"); | |
} | |
} | |
system("PAUSE"); | |
return 0; | |
} |