Juego pong
unknown
plain_text
4 years ago
4.7 kB
4
Indexable
#include <stdio.h> #include <windows.h> #include <stdlib.h> #include <conio.h> #define V 21 #define H 75 int pelX, pelY, iniJug, finJug, iniIa, finIa; int modX, modY, modIa; char mundo [V] [H]; void inicio (char mundo [V] [H], int pelX, int pelY, int iniJug, int finJug, int iniIa, int finIa); void borde (char mundo[V] [H]); void rjug (char mundo[V] [H], int iniJug, int finJug); void ria (char mundo[V] [H], int iniIa, int finIa); void pel (char mundo[V] [H], int pelX, int pelY); void leermundo (char mundo [V] [H]); void gameloop (char mundo [V] [H], int pelX, int pelY, int iniJug, int finJug, int iniIa, int finIa, int modX, int modY, int modIa); void draw (char mundo [V] [H]); void input (char mundo [V] [H], int *pelX, int *pelY, int *iniJug, int *finJug, int *iniIa, int *finIa, int *modX, int *modY, int *modIa, int *gol); void update(char mundo [V] [H], int pelX, int pelY, int iniJug, int finJug, int iniIa, int finIa); int main(){ pelX = 37; pelY = 10; iniJug = 8; finJug = 12; iniIa = 8; finIa = 12; modX = -1; modY = -1; modIa = -1; inicio (mundo, pelX, pelY, iniJug, finJug, iniIa, finIa); gameloop (mundo, pelX, pelY, iniJug, finJug, iniIa, finIa, modX, modY, modIa); system ("pause"); return 0; } void inicio (char mundo [V] [H], int pelX, int pelY, int iniJug, int finJug, int iniIa, int finIa) { borde(mundo); rjug (mundo, iniJug, finJug); ria (mundo, iniIa, finIa); pel(mundo, pelX, pelY); } void borde (char mundo[V] [H]){ int i, j; for (i = 0; i < V; i++) { for (j = 0; j < H; j++) { if (i == 0 || i == V-1) { mundo[i] [j] = '_'; } else if (j == 0 || j == H-1) { mundo[i] [j] = '|'; } else { mundo[i] [j] = ' '; } } } } void rjug (char mundo[V] [H], int iniJug, int finJug) { int i, j; for(i = iniJug; i<= finJug; i++) { for(j = 2; j <= 3; j++) { mundo[i] [j] = 'X'; } } } void ria (char mundo[V] [H], int iniIa, int finIa) { int i, j; for(i = iniIa; i<= finIa; i++) { for(j = H - 4; j <= H - 3; j++) { mundo[i] [j] = 'X'; } } } void pel (char mundo[V] [H], int pelX, int pelY) { mundo [pelX] [pelY] = 'O'; } void leermundo (char mundo [V] [H]) { int i, j; for (i = 0; i < V; i++){ for(j = 0; j < H; j++) { printf ("%c", mundo [i] [j]); } printf ("\n"); } } void gameloop (char mundo [V] [H], int pelX, int pelY, int iniJug, int finJug, int iniIa, int finIa, int modX, int modY, int modIa){ int gol; gol = 0; do{ draw (mundo); input (mundo, &pelX, &pelY, &iniJug, &finJug, &iniIa, &finIa, &modX, &modY, &modIa, &gol); inicio (mundo, pelX, pelY, iniJug, finJug, iniIa, finIa); Sleep (100); }while (gol == 0); } void draw (char mundo [V] [H]) { system ("cls"); leermundo (mundo); } void input (char mundo [V] [H], int *pelX, int *pelY, int *iniJug, int *finJug, int *iniIa, int *finIa, int *modX, int *modY, int *modIa, int *gol){ int i; char key; if (*pelY == 1 || *pelY == V - 2){ *modY *= -1; } if (*pelX == 1 || *pelX == H - 2){ *gol = -1; } if (*pelX == 4){ for (i = (*iniJug); i <= (*finJug); i++) { if (i == (*pelY)) { *modX *= -1; } } } if (*pelX == H - 5){ for (i = (*iniIa); i <= (*finIa); i++) { if (i == (*pelY)) { *modX *= -1; } } } if (*iniIa == 1 || *finIa == V - 1){ *modIa *= -1; } if (*gol == 0) { *pelX += (*modX); *pelY += (*modY); *iniIa += (*modIa); *finIa += (*modIa); if (kbhit() == 1) { key = getch(); if (key == 'w'){ if (*iniJug != 1) { *iniJug -= 1; *finJug -= 1; } } if (key == 's'){ if(*finJug != V - 2){ *iniJug += 1; *finJug += 1; } } } } } void update(char mundo [V] [H], int pelX, int pelY, int iniJug, int finJug, int iniIa, int finIa){ borde(mundo); rjug (mundo, iniJug, finJug); ria (mundo, iniIa, finIa); pel(mundo, pelX, pelY); }
Editor is loading...