Alguien sabe de programación en C ?... necesito ayuda (URg)

Jue May 13, 2010 3:34 am

Hola les comento que necesito entregar un programa como trabajo final de una materia en la universidad pero he tenido muchos inconvenientes, entre otros que me robaron el computador portatil y ni siquiera tengo donde programar, necesito de los espacios de clase para poder desarrollar, pero hay un inconveniente llamado TIEMPO, ya muchos compañeros han adelantado trabajo y yo todavía no voy bien.. asi que por eso estoy pidiendo ayuda a alguien que sepa de programación en C...

LA FECHA DE ENTREGA ES EL 17 DE MAYO :S

el programa es una variación de un juego de diamantes, muy parecido a este http://apps.facebook.com/mindjolt/games/bricks-breaking

las instrucciones mas concretamente son

Diseñe un programa para jugar una versión simplificada de diamantes en sus versiones: jugador contra
la máquina y jugador1 contra jugador2 bajo las siguientes condiciones:
Tenemos un tablero cuadrado para lo cual se requiere memoria dinámica, siendo necesario antes
de iniciar el juego preguntar por teclado por una de las dimensiones (mayor e igual a 4). Inicialmente,
cada casilla contiene un número aleatorio del 1 al número de las filas del tablero.
Para jugar el programa pedirá por teclado la selección de una casilla (fila,columna) desapareciendo
del tablero el número de la casilla seleccionada y el de las ocho casillas vecinas a la dada que
contengan el mismo número que ésta. Al desaparecer estos números, los que hay situados por
encima de ellos caen hacia abajo cubriendo los huecos que se habían generado y los huecos finales
que quedan en la parte de arriba se rellenan con ceros. Por ejemplo, si la dimensión del tablero es 4
(sus casillas están con aleatorios entre 1 y 4), el tablero inicial podría ser el siguiente (note que por
facilidad se imprimen a los lados y en la primera fila números o si quiere letras para orientar el
usuario):

0 |1 |2 |3 |4
--------------
1 |4 |3 |2 |2
2 |4 |4 |1 |2
3 |1 |4 |4 |4
4 |3 |3 |2 |3

Al seleccionar la casilla de la fila 4 y la columna 2, obtendríamos:

0 |1 |2 |3 |4
----------------
1 |0 |0 |2 |2
2 |4 |3 |1 |2
3 |4 |4 |4 |4
4 |1 |4 |2 |3

en el que, como vemos, ha desaparecido el número de la casilla seleccionada y el de la casilla a su
izquierda (por tener el mismo valor, generándose huecos(casillas) que se deberán contar), los
números superiores se han desplazado hacia abajo y se ha completado con ceros en la parte
superior. Si seguidamente seleccionamos la casilla de la fila 3 y columna 2, desaparecerá el número
de la casilla seleccionada y los de las ocho vecinas que contienen el mismo valor, dando lugar al
siguiente tablero:
0 |1 |2 |3 |4
----------------
1 |0 |0 |0 |2
2 |0 |0 |2 |2
3 |0 |0 |1 |4
4 |1 |3 |2 |3
El juego termina cuando todas las casillas contienen el valor cero y ganará el jugador o máquina que
mas casillas halla desaparecido del tablero.
Notas:
1 El programa tendrá el siguiente menú principal:
1: Score
2: Jugar
3: Salir
2 La opción Score imprimirá el número de juegos ganados y perdidos por los jugadores (jugador,
jugador1 y jugador2) desde la primera vez que se corrió el programa (que están almacenados en el
archivo score.dat) y regresará al menú principal.
3 Al ejecutar la primera vez el programa, tanto partidos ganados como perdidos de todos los jugadores
valen cero (0).
4 En la opción jugar hay un submenú con cuatro opciones: Cargar juego(carga el último juego
guardado en archivo tablero.dat), Jugar contra la máquina, Jugador1 contra Jugador2
opciones en la cuales se inicia el juego y la opción Regresar al menú principal.
5 Cada vez que se quiere jugar deberá pedir por teclado la fila y columna y se deben verificar que
dicho movimiento sea válido, es decir: Que esté dentro de los límites del tablero y que no halla un
hueco (cero) en dicha posición. En cualquier momento del juego si la fila ingresada de cualquiera
de los jugadores vale 0, se rinde el jugador en turno, el programa imprime quien gano el juego,
actualiza el score.dat y regresa al menú principal. En cualquier momento del juego si la fila
ingresada de cualquiera de los jugadores vale -1, el programa deberá guardar el juego en el
archivo tablero.dat y regresar al menú principal.
6 Al jugar el programa debe imprimir quien ganó el juego (la máquina o jugador, jugador1 o jugador2),
regresar al submenú de jugar y actualizar el total de juegos ganados y perdidos por los jugadores
(jugador, jugador1 y jugador2), en el archivo llamado score.dat; y que es obvio que será actualizado
cada vez que alguna persona gane o pierda y podrá ser visto en la opción 1 (Score) del menú
principal.
7 En caso de que el juego sea el jugador contra la maquina, el juego siempre lo inicia el jugador y
luego le toca el turno a la máquina (que juega de manera aleatoria) y así sucesivamente hasta que
el juego termine o se rinda el jugador. Si el juego es jugador1 contra jugador2, el juego lo iniciará el
jugador 1, luego el jugador2 y así sucesivamente, hasta que el juego termine o se rinda alguno de
los jugadores.
8 Si el juego no es ganado ni por la máquina ni por algún jugador, deberá imprimir que el juego quedo
en Tablas, no alterará el archivo score.dat y deberá regresar al submenú de jugar.

Full Version