Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2005, 19:54
hdsckm
 
Fecha de Ingreso: julio-2004
Mensajes: 54
Antigüedad: 19 años, 9 meses
Puntos: 0
Programación de puertos. Entre dos maquinas. SERIAL en C

Pues me pusieron de proyecto final a hacer un programa (JUEGO) que pueda manejarlo cada uno en distinta maquina, un juego de ping pong, cada jugador en una maquina diferente, la programacion del juego la hice con algunas fallas, que pronto solucionare, pero la duda esta en esto, como programar el puerto para que en la otra maquina me mande señal para mover tanto tecla derecha e izquierda del juego, y que los programas funcionen en conjunto

Y como configurar cada puerto para cada maquina, tengo muchas dudas, en la escuela muy apenas vimos los puertos en una sola clase, y pues hay que trabajar que es el proyecto final, si alguien me echa una mano o algun tuto para aprender en una semana se los agradeceria.

Si alguien le interesa el codigo del juego, que me fallan algunas cosas y si lo pueden corregir me seria de gran ayuda que tengo bastantes trabajos por hacer, pero estoy mas dedicado a este, ya que no tengo bases para los puertos

Cita:
#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>

int cx,cy,r,bx,by,dx,dy,largo,ancho;
int max_x,max_y;
int puntos=0;
int velocidad,retardo;
int graficos(int);
void inicio(int);
void moverpelota();
void verifrebotepared();
int verifrebotebarra();
void puntaje();
int perdio();
void mnoverbarra();
int teclaespecial();

void main()
{
graficos(1);
inicio(10);
for (;;)
{
moverpelota();
verifrebotepared();
puntaje();
moverbarra();
perdio();
break;
}
closegraph();
}

int graficos(int resolucion)
{
int tarj=DETECT,modoresolucion;
initgraph(&tarj,&modoresolucion,"c:\\tc\\bgi");
modoresolucion=resolucion;
return;
}

int inicio(int vel)
{
max_x=getmaxX();
max_y=getmaxY();
cx=cy=100;
r=15;
bx=0;
by=max_y-ancho;
velociadad=vel;
dx=dy=1;
circle(cx,cy,1);
rectangle(bx,by,bx+largo,by+ancho)
}

void moverpelota()
{
setcolo(BLACK);
circle(cx,cy,1);
cx+=dx;
cy+=dy;
setcolor(WHITE);
circle(cx,cy,1);
}

void verifrebotepared()
{
//choke en x
if (cx<r) dx=1;
if(cx>=max_x-r) dx=-1
//recybote en y
if (cy<=r) dy=1;
}

int verifrebotebarra()
{
if ((by-cy==r)&&(bx<=cx)&&(cx==bx+largo))
{//sonido
dy=-1;
puntos++;
return 1;
}
return 0;
}

void puntaje()
{
char texto[50];
sprintf(texto,"Marcador: %d",puntos);
cuttextxy(10,20,texto);
}

int perdio()
{
if (cy==max_y)
return 1;
return 0;
}

void moverbarra()
{
int l;
if (kbbhit());
{
setcolor(BLACK);
rectangle(bx,by,bx+largo,by+ancho);
l=teclaespecial();
if (l==77)
bx+=10;
if (l==75)
bx-=10;
setcolor(WHITE);
rectangle(bx,by,bx+largo,by+ancho);)
}
}

int teclaespecial()
{
if (!getch())
return getch();
return 0;
}
PD. No soy bueno en C, pero me facina el lenguaje y aprender de mis errores.