#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; | |
| } |