elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1] 2
1  Foros Generales / Dudas Generales / ¿Como trabajar sobre un mismo código en eclipse? en: 12 Marzo 2014, 15:48 pm
Os cuento, el lunes comienzo las prácticas en una empresa en la cual yo y otro compañero crearemos una app en android para dicha empresa.

...y me pregunto como podríamos trabajar ambos al mismo tiempo sobre el mismo proyecto.

¿Puede alguien orientarme? Gracias de antemano.
2  Programación / .NET (C#, VB.NET, ASP) / [DUDA C#] Pasar array por sockets en: 28 Febrero 2013, 18:05 pm
Estoy haciendo la v0.4 de mi juego de hundir la flota, la novedad es el modo online, por ahora va bien, he conseguido pasar cosas básicas como valores de variables pero me he quedado pillado en pasar el array de la posiciones de los barcos en el tablero lo cual no me deja por sockets.

Me preguntaba si habría otra forma por sockets de pasar un array.

Tengo en mente otra solución más cutre...pasar todas las posiciones del array una a una pero el array tiene 6 filas y 8 columnas...no es plan pasar 48 variables de un tablero y 48 de otro.
3  Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO][C#] Evitar la lectura de la tecla intro en sockets tcp/ip en: 28 Diciembre 2012, 15:19 pm
He creado por modo consola 2 app que se comunican entre ellas, cliente y servidor. Lo típico, en el cliente escribes algo y el servidor lo recibe.

Funciona correctamente, pero el único "problema" si es que puede llamarse así es que en el servidor se muestra lo enviado desde el cliente pero con un salto de línea. Creo que el problema es que al pulsar la tecla intro para enviar, dicha tecla también se envía.

Llevo bastante tiempo intentando averiguar como solucionarlo pero ya tengo la mente quemada, ojalá algunos tenga la mente más fresca.

Servidor

Código
  1. using System.IO;
  2. using System.Diagnostics;
  3. using System.Text;
  4. using System.Threading;
  5. using System.Runtime.InteropServices;
  6. using Microsoft.Win32;
  7. using System;
  8. using System.Net.Sockets;
  9. using System.Net;
  10.  
  11. namespace socket_servidor{
  12. class Program{
  13.  
  14. public static void Main(string[] args){
  15.  
  16. Socket s = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  17.            IPEndPoint ep = new IPEndPoint (IPAddress.Any, 1238);
  18.  
  19.           try {
  20.               s.Bind (ep);
  21.               s.Listen (25);
  22.   Socket accepted = s.Accept();
  23.  
  24.                   Console.WriteLine("Conexion recibida\n");  
  25.  
  26.                   while(true){
  27.   byte[] buffer = new Byte[255];
  28.                   int rec = accepted.Receive(buffer,0,buffer.Length,0);
  29.                   string strData = Encoding.ASCII.GetString(buffer);
  30. Console.Write(">>> "+strData+"\n");
  31.                   }
  32.  
  33.             }catch {
  34.                   Console.WriteLine ("Error iniciando conexion");
  35.                   Console.ReadKey();
  36.                }
  37. }
  38. }
  39. }


Cliente

Código
  1. using System.IO;
  2. using System.Diagnostics;
  3. using System.Text;
  4. using System.Threading;
  5. using System.Runtime.InteropServices;
  6. using Microsoft.Win32;
  7. using System;
  8. using System.Net.Sockets;
  9. using System.Net;
  10.  
  11. namespace sockets{
  12. class Program{
  13.  
  14. public static void Main(string[] args){
  15.  
  16. Console.WriteLine ("Conectandose al servidor...");
  17.            Socket _S = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Socket de tipo TCP.
  18.            IPEndPoint ep = new IPEndPoint (IPAddress.Parse ("127.0.0.1"), 1238); // Ip - Puerto
  19.  
  20.           try {
  21.                _S.Connect (ep);
  22.                    Console.WriteLine ("Conectado correctamente.\n");
  23.  
  24.                    while(true){
  25.                     Console.Write(">>> ");
  26.             string text = Console.ReadLine();
  27.             byte[] data = Encoding.ASCII.GetBytes(text);
  28.             _S.Send(data);                  
  29.                    }
  30.  
  31.           }catch(Exception ex) {
  32.                 Console.WriteLine (ex.Message);
  33.                 Console.ReadKey();
  34.                }
  35.  
  36. }
  37. }
  38. }


Vamos, solucionar el salto de línea que produce la lectura de la tecla intro.


4  Programación / .NET (C#, VB.NET, ASP) / [Source C#] Juego: Hundir la flota v0.3 en: 5 Diciembre 2012, 21:07 pm
Como llevo poco tiempo con C#, cosa de 1 mes y pico, pues que mejor para aprender que ponerte hacer una aplicación,  ¿aplicación? prefiero los videojuegos, pues venga, hago un juego ¿sobre que? pues ya que estoy con los arrays me pongo a hacer algo que tenga que ver, venga va, el juego de hundir los barquitos. Así es como ha surgido la cosa.

Notas:
- Muestra en el mapa del J1 los 0 con agua, 1 con barcos y 2 con barcos hundidos
- 1 jugador contra la máquina
- Sólo permite colocar 6 barcos de una única casilla


Update v0.1 - 2/12/12
-------------------------------
 - Añadidas estadísticas de juego
 - Validación de la colocación y del ataque (mejorado)
 - Cuando destruyes un barco, puedes volver a atacar (como en el parchís)
 - Alternación de rondas entre J1 y J2 cada vez que das en agua...hasta destruir los 6 barcos
 - Evitada la colocación de más de un barco en la misma casilla (se eliminaba el barco anterior)
 - Ahora puedes elegir entre colocar los barcos automáticamente o manualmente.

Update v0.2 - 12/12/12
----------------------------------
- Mejorado el diseño de los mapas
- Asignación de identidades con carácteres. B = Barco. A = Agua. X = Hundido.- = Desconocido
- Marcado en el mapa donde se haya atacado en agua para no volver a dar en la misma posición
- Se ocultan los barcos del J2, sin embargo permanecen en la misma posición
- Optimizado el sistema de elección aleatoria
- Si atacas a una posición ya atacada anteriormente pierdes turno
- Creado un menú principal
- Se muestra el turno del usuario con su nombre introducido al iniciar
- Ahora puedes indicar en opciones con cuantos barcos quieres jugar en el mapa. Igual nº para J1 y J2.

Update v0.3 - 02/02/13
----------------------------------
- Ordenado todo el código por POO
- Arreglado problema al dar J1 a J2 en pos de barco hundido(X) deberia perder turno
- Solucionado problema al cargar los barcos de forma manual de J1    
- Agregada notificacion de "cargando barcos..." para avisar del tiempo   
- Pequeños cambios en el diseño
- Permite agregar nombre al jugador 2 (máquina)
- Al colocar los barcos manualmente, se muestran en el mapa los barcos que vayas introduciendo
- Solucionado lo de colocar barco en pos ya coloc antes (colocación manual)
- Agregada la opción de activar efectos de sonido






Descargar Proyecto Completo

https://mega.co.nz/#!Z09x2ITI!KxleE3AQDo9O-NgI1JyL33mOKBRRwu3qUHcpCPiDH14

http://www.mediafire.com/download.php?9onxw63bbklne5b

Descargar sólo Ejecutable

https://mega.co.nz/#!okNwnB5Z!PhOglj7hC3Oz-5R9_1S0p22JGfcMCd3k1JX__vrfR4A

http://www.mediafire.com/?cpocl71xwyb22yb


Principal.cs
Código
  1. using System;
  2. using System.IO;
  3. using System.Threading;
  4.  
  5. namespace Hundir_la_Flota{
  6. public class Program{    
  7.  
  8. public static void Main(string[] args){
  9.  
  10. ColocacionDeBarcos colocBarcos = new ColocacionDeBarcos();
  11. Turnos turnos = new Turnos();
  12. System.Media.SoundPlayer player = new System.Media.SoundPlayer();
  13.  
  14. Console.Title = "Hundir la flota 0.3";
  15. bool validar = false, volverAtras = true, sonido = false;
  16. int opcion1 = 0, opcion2 = 0, opcion3 = 0, barcosIniciales = 6;
  17. string nombreJ1 = null, nombreJ2 = null;
  18.  
  19. do{ // Validación del menu principal
  20. if(sonido == true){
  21. player.SoundLocation = ".\\sonido\\FondoDeUnaCueva.wav";
  22. player.Play();
  23. }
  24. colocBarcos.menu();
  25. Console.SetCursorPosition(24, 11);Console.Write("#############################");
  26. Console.SetCursorPosition(24, 12);Console.Write("#    #");
  27. Console.SetCursorPosition(24, 13);Console.Write("# Selecciona una categoría: #");
  28. Console.SetCursorPosition(24, 14);Console.Write("#    #");
  29. Console.SetCursorPosition(24, 15);Console.Write("# (1)  Comenzar            #");
  30. Console.SetCursorPosition(24, 16);Console.Write("# (2)  Opciones            #");
  31. Console.SetCursorPosition(24, 17);Console.Write("# (3)  Salir               #");
  32. Console.SetCursorPosition(24, 18);Console.Write("# Versión 0.3 #");
  33. Console.SetCursorPosition(24, 19);Console.Write("#    #");
  34. Console.SetCursorPosition(24, 20);Console.Write("#############################\n\n");
  35. for(int i=0; i<=79; i++){
  36. Console.Write("_");
  37. }
  38. for(int i=0; i<=79; i++){
  39.   Console.Write("=");
  40.   Thread.Sleep(8);
  41. }
  42. Console.Write(">>> ");
  43. validar = int.TryParse(Console.ReadLine(), out opcion1);
  44.  
  45. switch(opcion1){
  46. case 1:
  47. do{ // Validación del menú secundario
  48. if(sonido == true){
  49. player.SoundLocation = ".\\sonido\\MenuOpciones.wav";
  50. player.Play();
  51. }
  52. colocBarcos.menu();
  53. Console.SetCursorPosition(24, 11);Console.Write("Introduce tu nombre: ");
  54. nombreJ1 = Console.ReadLine();
  55. while(nombreJ1.Length>7){ // Validación en el nombre de J1
  56. colocBarcos.menu();
  57. Console.SetCursorPosition(24, 11);Console.Write("Pon un nombre más corto: ");
  58. nombreJ1 = Console.ReadLine();
  59. }
  60. turnos.setNombreJ1(nombreJ1);
  61. colocBarcos.setNombreJ1(nombreJ1);
  62. Console.SetCursorPosition(24, 13);Console.Write("Coloca tus embarcaciones\n");
  63. Console.SetCursorPosition(24, 14);Console.Write("------------------------\n");
  64. Console.SetCursorPosition(24, 15);Console.Write("(1)  Automáticamente\n");
  65. Console.SetCursorPosition(24, 16);Console.Write("(2)  Manualmente\n");
  66. Console.SetCursorPosition(24, 18);Console.Write(">>> ");
  67. validar = int.TryParse(Console.ReadLine(), out opcion2);
  68. }while(opcion2!=1 && opcion2!=2);
  69. switch(opcion2){
  70. case 1:
  71. colocBarcos.colocacionBarcosAutomatJ1();
  72.     break;
  73.     case 2:
  74.     colocBarcos.colocacionBarcosManualJ1();
  75.       break;
  76. }
  77. colocBarcos.colocacionBarcosAutomatJ2();
  78.  
  79. turnos.setTablero1(colocBarcos.getTableroJ1());
  80. turnos.setTablero2(colocBarcos.getTableroJ2());
  81. turnos.setPosJ2(colocBarcos.getPosJ2());
  82. turnos.setBarcosJ1(colocBarcos.getBarcosJ1());
  83. turnos.setBarcosJ2(colocBarcos.getBarcosJ2());
  84.  
  85. do{ // Cambia el turno de J1 a J2 y viceversa
  86. do{ // Vuelve a tirar J1 si hunde un barco
  87. turnos.introducirFila();
  88. turnos.introducirColumna();
  89. turnos.realizarComprobacionesJ1();
  90. }while(colocBarcos.getTableroJ2()[turnos.getFila()-1,turnos.getColumna()-1] == (char)'X' && turnos.getRepetirTirada() == true);
  91.  
  92. do{ // Vuelve a tirar J2 si hunde un barco
  93. turnos.ataqueAlAzarDeJ2();
  94. turnos.realizarComprobacionesJ2();
  95. }while(colocBarcos.getTableroJ1()[turnos.getFila()-1,turnos.getColumna()-1] == (char)'X' && turnos.getRepetirTirada() == true);
  96.  
  97. if(turnos.getBarcosJ1() == 0){
  98. Console.Write("Has perdido la partida. La próxima vez será.");
  99. Console.ReadKey();
  100. break;
  101. }
  102.  
  103. }while(turnos.getBarcosJ2() != 0); // Si todos los barcos enemigos están hundidos, se acabó la partida
  104. Console.Write("Has ganado la partida. Enhorabuena!!");
  105. break;
  106. case 2:
  107.  do{
  108. if(sonido == true){
  109. player.SoundLocation = ".\\sonido\\FondoDeUnaCueva.wav";
  110. player.Play();
  111. }
  112. colocBarcos.menu();
  113. Console.SetCursorPosition(24, 11);Console.Write("(1)  Elegir cantidad de barcos\n");
  114. Console.SetCursorPosition(24, 12);Console.Write("(2)  Poner nombre al jugador 2\n");
  115. Console.SetCursorPosition(24, 13);Console.Write("(3)  Activar efectos de sonido\n");
  116. Console.SetCursorPosition(24, 14);Console.Write("(4)  Volver al menú\n");
  117. Console.SetCursorPosition(24, 16);Console.Write(">>> ");
  118. validar = int.TryParse(Console.ReadLine(), out opcion2);
  119. switch(opcion2){
  120. case 1:
  121. do{
  122. colocBarcos.menu();
  123. Console.SetCursorPosition(24, 11);Console.Write("¿Con cuántos barcos quieres jugar? (Máx 30)");
  124. Console.SetCursorPosition(24, 13);Console.Write(">>> ");
  125. validar = int.TryParse(Console.ReadLine(), out barcosIniciales);
  126. }while(barcosIniciales<1 || barcosIniciales>30);
  127. colocBarcos.setBarcosIniciales(barcosIniciales);
  128. Console.SetCursorPosition(24, 15);Console.Write("Cambios guardados correctamente!");
  129. Thread.Sleep(1250);
  130. break;
  131. case 2:
  132. colocBarcos.menu();
  133. Console.SetCursorPosition(24, 11);Console.Write("Introduce el nombre de tu oponente ");
  134. Console.SetCursorPosition(24, 13);Console.Write(">>> ");
  135. nombreJ2 = Console.ReadLine();
  136. while(nombreJ2.Length>7){
  137. colocBarcos.menu();
  138. Console.SetCursorPosition(24, 11);Console.Write("Pon un nombre más corto");
  139. Console.SetCursorPosition(24, 13);Console.Write(">>> ");
  140. nombreJ2 = Console.ReadLine();
  141. }
  142. turnos.setNombreJ2(nombreJ2);
  143. Console.SetCursorPosition(24, 15);Console.Write("Nombre guardado correctamente!");
  144. Thread.Sleep(1250);
  145. break;
  146. case 3:
  147. colocBarcos.menu();
  148. Console.SetCursorPosition(24, 11);Console.Write("¿Qué desea hacer?");
  149. Console.SetCursorPosition(24, 12);Console.Write("-----------------");
  150. Console.SetCursorPosition(24, 13);Console.Write("(1)  Activar efectos de sonido ");
  151. Console.SetCursorPosition(24, 14);Console.Write("(2)  Desactivar efectos de sonido (defecto)");
  152. Console.SetCursorPosition(24, 16);Console.Write(">>> ");
  153. validar = int.TryParse(Console.ReadLine(), out opcion3);
  154. if(opcion3 == 1){
  155. DirectoryInfo DIR = new DirectoryInfo(".\\sonido");
  156. if (!DIR.Exists){
  157. Console.SetCursorPosition(24, 18);Console.Write("Error. No se encuentra la carpeta 'sonido'.");
  158. Thread.Sleep(1750);
  159. }else{
  160. sonido = true;
  161. Console.SetCursorPosition(24, 18);Console.Write("Sonido activado correctamente!");
  162. Thread.Sleep(1250);
  163. }
  164. }else if(opcion3 == 2){
  165. sonido = false;
  166. Console.SetCursorPosition(24, 18);Console.Write("Sonido desactivado correctamente!");
  167. Thread.Sleep(1250);
  168. }
  169. turnos.setSonido(sonido);
  170. colocBarcos.setSonido(sonido);
  171. break;
  172. case 4:
  173. volverAtras = false;
  174. break;
  175. }
  176.  }while(volverAtras == true);
  177. break;
  178. case 3:
  179. break;
  180. }
  181. }while(opcion1!=3);
  182. }
  183. }
  184. }
  185.  



ColocacionDeBarcos.cs
Código
  1. using System;
  2. using System.IO;
  3. using System.Threading;
  4.  
  5. namespace Hundir_la_Flota{
  6. public class ColocacionDeBarcos{
  7.  
  8. Program ppal = new Program();
  9. System.Media.SoundPlayer player = new System.Media.SoundPlayer();
  10.  
  11. private bool validar = false, sonido = false;
  12. private int[,] tableroJ1 = new int[6,8], tableroJ2 = new int[6,8], posJ2 = new int[6,8];
  13. private int fila = 0, columna = 0, colocarBarco = 1; // Fil + Colum = Agua (0)  || Barco (1)  || Hundido (2)
  14. private int barcosIniciales = 6, barcosJ1 = 0, barcosJ2 = 0;
  15. private string nombreJ1 = null;
  16.  
  17. public int[,] getTableroJ1(){            
  18. return tableroJ1;
  19. }
  20.  
  21. public int[,] getTableroJ2(){
  22. return tableroJ2;
  23. }
  24.  
  25. public int[,] getPosJ2(){
  26. return posJ2;
  27. }
  28.  
  29. public int getBarcosJ1(){
  30. return barcosJ1;
  31. }
  32.  
  33. public int getBarcosJ2(){
  34. return barcosJ2;
  35. }
  36.  
  37. public void setBarcosIniciales(int barcosIniciales){
  38. this.barcosIniciales = barcosIniciales;
  39. }
  40.  
  41. public void setNombreJ1(string nombreJ1){
  42. this.nombreJ1 = nombreJ1;
  43. }
  44.  
  45. public void setSonido(bool sonido){
  46. this.sonido = sonido;
  47. }
  48.  
  49. public void colocacionBarcosAutomatJ1(){
  50. menu();
  51. Console.Write("\n\n Cargando barcos");
  52.  
  53. for(int i=0;i<barcosIniciales;i++){
  54. Random h = new Random();
  55. int hfila = h.Next(1,6), hcolumna = h.Next(1,8);
  56. fila=hfila; columna=hcolumna;
  57. if(tableroJ1[fila-1,columna-1] != colocarBarco){
  58. tableroJ1[fila-1,columna-1] = colocarBarco;
  59. barcosJ1++;
  60. Console.Write(".");
  61. }else{
  62. i--;
  63. }
  64. }
  65. Console.Write("Listo!");
  66. Thread.Sleep(1500);
  67. }
  68.  
  69. public void colocacionBarcosManualJ1(){
  70.    for(int i=0;i<barcosIniciales;i++){
  71.     do{
  72. menu2();
  73. Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1));
  74. Console.SetCursorPosition(30, 12);Console.Write("-----------------");
  75. Console.SetCursorPosition(30, 14);Console.Write("Fila: ");
  76. validar = int.TryParse(Console.ReadLine(), out fila);
  77. }while(fila<1 || fila>6);
  78.  
  79. do{
  80. menu2();
  81. Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1));
  82. Console.SetCursorPosition(30, 12);Console.Write("-----------------");
  83. Console.SetCursorPosition(30, 14);Console.Write("Fila: "+fila);
  84. Console.SetCursorPosition(30, 15);Console.Write("Columna: ");
  85. validar = int.TryParse(Console.ReadLine(), out columna);
  86. }while(columna<1 || columna>10);
  87.  
  88. if(tableroJ1[fila-1,columna-1] != (char)'B'){
  89. tableroJ1[fila-1,columna-1] = colocarBarco;  
  90. barcosJ1++;
  91. if(sonido == true){
  92. player.SoundLocation = ".\\sonido\\ColocarBarco.wav";
  93. player.Play();
  94. }
  95. menu2();
  96. Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1));
  97. Console.SetCursorPosition(30, 12);Console.Write("-----------------");
  98. Console.SetCursorPosition(30, 14);Console.Write("Fila: "+fila);
  99. Console.SetCursorPosition(30, 15);Console.Write("Columna: "+columna);
  100. Console.SetCursorPosition(30, 17);Console.Write("Barco "+(i+1)+" colocado correctamente!");
  101. Thread.Sleep(1250);
  102.  
  103.     }else if(tableroJ1[fila-1,columna-1] == (char)'B'){
  104. if(sonido == true){
  105. player.SoundLocation = ".\\sonido\\PosicionYaDada.wav";
  106. player.Play();
  107. }
  108. menu2();
  109. Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1)+"\n\n");
  110. Console.SetCursorPosition(30, 12);Console.Write("-----------------");
  111. Console.SetCursorPosition(30, 14);Console.Write("Fila: "+fila+"\n");
  112. Console.SetCursorPosition(30, 15);Console.Write("Columna: "+columna);
  113. Console.SetCursorPosition(30, 17);Console.Write("Ya has colocado un barco en esta posición.");
  114. Thread.Sleep(1250);
  115. i--;
  116.     }
  117. } // Fin for
  118. } // Fin método
  119.  
  120. public void colocacionBarcosAutomatJ2(){
  121. for(int i=0;i<barcosIniciales;i++){
  122. Random r = new Random();
  123. int rfila = r.Next(1,6), rcolumna = r.Next(1,8);
  124. fila=rfila; columna=rcolumna;
  125. if(tableroJ2[fila-1,columna-1] != colocarBarco){
  126. tableroJ2[fila-1,columna-1] = colocarBarco;
  127. barcosJ2++;
  128. }else{
  129. i--;
  130. }
  131. }
  132. }
  133.  
  134. public void menu(){
  135. Console.Clear();
  136. Console.Write("   _      _\n");
  137. Console.Write("  |_| | | |\\ | | \\  | |_|\n");
  138. Console.Write("  | | |_| | \\| |__| | | \\\n");
  139. Console.Write("       _     __      _  ___   __\n");
  140. Console.Write("  |   |_|   |__ |    | |   |   |__|\n");
  141. Console.Write("  |__ | |   | |__  |_|   |   |  |\t\t  _|_\n");
  142. Console.Write("\t\t\t\t\t ___|___\n");
  143. Console.Write("\t\t\t\t\t \\______/\n");
  144. Console.Write("__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\\n");
  145. Console.Write("\n   A B C D E F G H\t\t\n");
  146. Console.Write(" 1 - - - - - - - -\n");
  147. Console.Write(" 2 - - - - - - - -\n");
  148. Console.Write(" 3 - - - - - - - -\n");
  149. Console.Write(" 4 - - - - - - - -\n");
  150. Console.Write(" 5 - - - - - - - -\n");
  151. Console.Write(" 6 - - - - - - - -\n\n\n");
  152. }
  153.  
  154. public void menu2(){
  155. Console.Clear();
  156. Console.Write("   _      _\n");
  157. Console.Write("  |_| | | |\\ | | \\  | |_|\n");
  158. Console.Write("  | | |_| | \\| |__| | | \\\n");
  159. Console.Write("       _     __      _  ___   __\n");
  160. Console.Write("  |   |_|   |__ |    | |   |   |__|\n");
  161. Console.Write("  |__ | |   | |__  |_|   |   |  |\t\t  _|_\n");
  162. Console.Write("\t\t\t\t\t ___|___\n");
  163. Console.Write("\t\t\t\t\t \\______/\n");
  164. Console.Write("__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\");
  165. Console.Write("\n\n");
  166. Console.Write("  Mapa de "+nombreJ1+"\n");
  167. Console.Write("  ---------------\n\n");
  168. for(int j=0;j<tableroJ1.GetLength(0);j++){
  169. for(int k=0;k<tableroJ1.GetLength(1);k++){
  170. if(tableroJ1[j,k] == 1){
  171. tableroJ1[j,k] = (char)'B';
  172. }
  173. if(tableroJ1[j,k] == 0){
  174. tableroJ1[j,k] = (char)'-';
  175. }
  176. Console.Write("  "+(char)tableroJ1[j,k]);
  177. }
  178. Console.Write("\n");
  179. }
  180. }
  181. } // Fin clase
  182. } // Fin namespace
  183.  



Turnos.cs

Código
  1. using System;
  2. using System.IO;
  3. using System.Threading;
  4.  
  5. namespace Hundir_la_Flota{
  6. public class Turnos{
  7.  
  8. Program ppal = new Program();
  9. ColocacionDeBarcos coloc = new ColocacionDeBarcos();
  10. System.Media.SoundPlayer player = new System.Media.SoundPlayer();
  11.  
  12. private bool validar = false, repetirTirada = true, sonido = false;
  13. private int[,] tableroJ1 = new int[6,8], tableroJ2 = new int[6,8], posJ2 = new int[6,8];
  14. private int fila = 0, columna = 0;
  15. private int barcosJ1 = 0, barcosJ2 = 0, hundidoJ1 = 0, hundidoJ2 = 0, rondasJ1 = 0, rondasJ2 = 0;
  16. private string nombreJ1 = null, nombreJ2 = "Máquina";
  17.  
  18. public void setNombreJ1(string nombreJ1){
  19. this.nombreJ1 = nombreJ1;
  20. }
  21.  
  22. public void setNombreJ2(string nombreJ2){
  23. this.nombreJ2 = nombreJ2;
  24. }
  25.  
  26. public void setTablero1(int[,] tableroJ1){
  27. this.tableroJ1 = tableroJ1;
  28. }
  29.  
  30. public void setTablero2(int[,] tableroJ2){
  31. this.tableroJ2 = tableroJ2;
  32. }
  33.  
  34. public void setPosJ2(int[,] posJ2){
  35. this.posJ2 = posJ2;
  36. }
  37.  
  38. public void setBarcosJ1(int barcosJ1){
  39. this.barcosJ1 = barcosJ1;
  40. }
  41.  
  42. public void setBarcosJ2(int barcosJ2){
  43. this.barcosJ2 = barcosJ2;
  44. }
  45.  
  46. public void setSonido(bool sonido){
  47. this.sonido = sonido;
  48. }
  49.  
  50. public bool getRepetirTirada(){
  51. return repetirTirada;
  52. }
  53.  
  54. public int getFila(){
  55. return fila;
  56. }
  57.  
  58. public int getColumna(){
  59. return columna;
  60. }
  61.  
  62. public int getBarcosJ1(){
  63. return barcosJ1;
  64. }
  65.  
  66. public int getBarcosJ2(){
  67. return barcosJ2;
  68. }
  69.  
  70. public void introducirFila(){
  71. do{
  72. Console.Clear();
  73. Console.Write("\n Mapa Jugador 1");
  74. Console.Write("\n ----------------\n\n"); // Muestra los barcos J1
  75. for(int i=0;i<tableroJ1.GetLength(0);i++){
  76. for(int j=0;j<tableroJ1.GetLength(1);j++){  
  77. if(tableroJ1[i,j]==1){
  78. tableroJ1[i,j]=(char)'B';
  79. }
  80. if(tableroJ1[i,j]==0){
  81. tableroJ1[i,j]=(char)'-';
  82. }
  83. Console.Write("  "+(char)tableroJ1[i,j]);
  84. }
  85. Console.Write("\n");
  86. }
  87. Console.Write("\n\n Mapa Jugador 2");
  88. Console.Write("\n ----------------\n\n");
  89. for(int i=0;i<tableroJ2.GetLength(0);i++){ // Muestra los barcos J2
  90. for(int j=0;j<tableroJ2.GetLength(1);j++){
  91. posJ2[i,j]=0;
  92. if(tableroJ2[i,j]==1){   // Si hay un barco
  93. posJ2[i,j]=tableroJ2[i,j];   // Guardo su posición
  94. tableroJ2[i,j]=(char)'-';   // y muestro agua por pantalla
  95. }
  96. if(tableroJ2[i,j]==0){
  97. tableroJ2[i,j]=(char)'-';
  98. }
  99. Console.Write("  "+(char)tableroJ2[i,j]);
  100. }
  101. Console.Write("\n");
  102. }
  103. //------
  104. for(int i=0;i<tableroJ2.GetLength(0);i++){
  105. for(int j=0;j<tableroJ2.GetLength(1);j++){
  106. if(posJ2[i,j]==1){
  107. tableroJ2[i,j]=posJ2[i,j]; // Revivo los barcos J2 (antes los borré del mapa)
  108. }
  109. }
  110. }
  111. Console.SetCursorPosition(32, 1);Console.Write("Turno J1 - "+nombreJ1);
  112. Console.SetCursorPosition(32, 2);Console.Write("-----------------\n\n");
  113. Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ1);
  114. Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ1);
  115. Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ2);
  116. Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ1);
  117. Console.SetCursorPosition(32, 9);Console.Write("Atacar J1  ==> Fila: ");
  118. validar = int.TryParse(Console.ReadLine(), out fila);
  119. }while(fila<1 || fila>6);
  120. }
  121.  
  122. public void introducirColumna(){
  123. do{
  124. Console.Clear();
  125. Console.Write("\n Mapa Jugador 1");
  126. Console.Write("\n ----------------\n\n");
  127. for(int i=0;i<tableroJ1.GetLength(0);i++){
  128. for(int j=0;j<tableroJ1.GetLength(1);j++){
  129. if(tableroJ1[i,j]==1){
  130. tableroJ1[i,j]=(char)'B';
  131. }
  132. if(tableroJ1[i,j]==0){
  133. tableroJ1[i,j]=(char)'-';
  134. }
  135. Console.Write("  "+(char)tableroJ1[i,j]);
  136. }
  137. Console.Write("\n");
  138. }
  139. Console.Write("\n\n Mapa Jugador 2");
  140. Console.Write("\n ----------------\n\n");
  141. for(int i=0;i<tableroJ2.GetLength(0);i++){
  142. for(int j=0;j<tableroJ2.GetLength(1);j++){
  143. if(tableroJ2[i,j]==1){   // Si hay un barco
  144. posJ2[i,j]=tableroJ2[i,j];   // Guardo su posición
  145. tableroJ2[i,j]=(char)'-';   // y muestro agua por pantalla
  146. }
  147. if(tableroJ2[i,j]==0){
  148. tableroJ2[i,j]=(char)'-';
  149. }
  150. Console.Write("  "+(char)tableroJ2[i,j]);
  151. }
  152. Console.Write("\n");
  153. }
  154. //------
  155. for(int i=0;i<tableroJ2.GetLength(0);i++){
  156. for(int j=0;j<tableroJ2.GetLength(1);j++){
  157. if(posJ2[i,j]==1){
  158. tableroJ2[i,j]=posJ2[i,j];
  159. }
  160. }
  161. }
  162. Console.SetCursorPosition(32, 1);Console.Write("Turno J1 - "+nombreJ1);
  163. Console.SetCursorPosition(32, 2);Console.Write("-----------------\n\n");
  164. Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ1);
  165. Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ1);
  166. Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ2);
  167. Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ1);
  168. Console.SetCursorPosition(32, 9);Console.Write("Atacar J1  ==> Fila: "+fila);
  169. Console.SetCursorPosition(32, 10);Console.Write("           ==> Columna: ");
  170. validar = int.TryParse(Console.ReadLine(), out columna);
  171.  
  172. }while(columna<1 || columna>8);
  173. Console.Write("\n\n");
  174. }
  175.  
  176. public void realizarComprobacionesJ1(){
  177. repetirTirada = true;
  178. if(tableroJ2[fila-1,columna-1] == 1){ // Realiza el ataque a la posición indicada
  179. Console.SetCursorPosition(32, 12);Console.Write("Barco Hundido. Vuelves a atacar J1.\n");
  180. tableroJ2[fila-1,columna-1]=(char)'X';
  181. if(sonido == true){
  182. player.SoundLocation = ".\\sonido\\Explosion.wav";
  183. player.Play();
  184. }
  185. hundidoJ1++;
  186. barcosJ2--;
  187. }else if(tableroJ2[fila-1,columna-1] == (char)'A'){
  188. if(sonido == true){
  189. player.SoundLocation = ".\\sonido\\PosicionYaDada.wav";
  190. player.Play();
  191. }
  192. Console.SetCursorPosition(32, 12);Console.Write("Ya has atacado esta posición. Pasas turno.");
  193. }else if(tableroJ2[fila-1,columna-1] == (char)'X'){
  194. if(sonido == true){
  195. player.SoundLocation = ".\\sonido\\PosicionYaDada.wav";
  196. player.Play();
  197. }
  198. Console.SetCursorPosition(32, 12);Console.Write("Ya has hundido este barco. Pasas turno.");
  199. repetirTirada = false;
  200. }else{
  201. if(sonido == true){
  202. player.SoundLocation = ".\\sonido\\NoHayBarco.wav";
  203. player.Play();
  204. }
  205. Console.Clear();
  206. tableroJ2[fila-1,columna-1] = (char)'A';
  207. Console.Write("\n Mapa Jugador 1");
  208. Console.Write("\n ----------------\n\n");
  209. for(int i=0;i<tableroJ1.GetLength(0);i++){
  210. for(int j=0;j<tableroJ1.GetLength(1);j++){
  211. Console.Write("  "+(char)tableroJ1[i,j]);
  212. }
  213. Console.Write("\n");
  214. }
  215. Console.Write("\n\n Mapa Jugador 2");
  216. Console.Write("\n ----------------\n\n");
  217. for(int i=0;i<tableroJ2.GetLength(0);i++){
  218. for(int j=0;j<tableroJ2.GetLength(1);j++){
  219. if(tableroJ2[i,j]==1){   // Si hay un barco
  220. posJ2[i,j]=tableroJ2[i,j];   // Guardo su posición
  221. tableroJ2[i,j]=(char)'-';   // y muestro agua por pantalla
  222. }
  223. if(tableroJ2[i,j]==0){
  224. tableroJ2[i,j]=(char)'-';
  225. }
  226. Console.Write("  "+(char)tableroJ2[i,j]);
  227. }
  228. Console.Write("\n");
  229. }
  230. //------
  231. for(int i=0;i<tableroJ2.GetLength(0);i++){
  232. for(int j=0;j<tableroJ2.GetLength(1);j++){
  233. if(posJ2[i,j]==1){
  234. tableroJ2[i,j]=posJ2[i,j];
  235. }
  236. }
  237. }
  238. Console.SetCursorPosition(32, 1);Console.Write("Turno J1 - "+nombreJ1);
  239. Console.SetCursorPosition(32, 2);Console.Write("-----------------\n\n");
  240. Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ1);
  241. Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ1);
  242. Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ2);
  243. Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ1);
  244. Console.SetCursorPosition(32, 9);Console.Write("Atacar J1  ==> Fila: "+fila);
  245. Console.SetCursorPosition(32, 10);Console.Write("           ==> Columna: "+columna);
  246. Console.SetCursorPosition(32, 12);Console.Write("Has tocado agua. Pasas turno a J2.\n");
  247. }
  248. rondasJ1++;
  249. Thread.Sleep(2000);
  250. }
  251.  
  252. public void ataqueAlAzarDeJ2(){
  253. Console.Clear();
  254. Random r = new Random(); // elige Fila y Columna AL AZAR EN CADA RONDA pa atacar
  255. int rfila7 = r.Next(1,6), rcolumna7 = r.Next(1,8);
  256. Console.Clear();
  257. Console.Write("\n Mapa Jugador 1");
  258. Console.Write("\n ----------------\n\n");
  259. for(int i=0;i<tableroJ1.GetLength(0);i++){
  260. for(int j=0;j<tableroJ1.GetLength(1);j++){
  261. if(tableroJ1[i,j]==1){
  262. tableroJ1[i,j]=(char)'B';
  263. }
  264. if(tableroJ1[i,j]==0){
  265. tableroJ1[i,j]=(char)'-';
  266. }
  267. Console.Write("  "+(char)tableroJ1[i,j]);
  268. }
  269. Console.Write("\n");
  270. }
  271. Console.Write("\n\n Mapa Jugador 2");
  272. Console.Write("\n ----------------\n\n");
  273. for(int i=0;i<tableroJ2.GetLength(0);i++){ // Muestra los barcos J2
  274. for(int j=0;j<tableroJ2.GetLength(1);j++){
  275. posJ2[i,j]=0;
  276. if(tableroJ2[i,j]==1){   // Si hay un barco
  277. posJ2[i,j]=tableroJ2[i,j];   // Guardo su posición
  278. tableroJ2[i,j]=(char)'-';   // y muestro agua por pantalla
  279. }
  280. if(tableroJ2[i,j]==0){
  281. tableroJ2[i,j]=(char)'-';
  282. }
  283. Console.Write("  "+(char)tableroJ2[i,j]);
  284. }
  285. Console.Write("\n");
  286. }
  287. //------
  288. for(int i=0;i<tableroJ2.GetLength(0);i++){
  289. for(int j=0;j<tableroJ2.GetLength(1);j++){
  290. if(posJ2[i,j]==1){
  291. tableroJ2[i,j]=posJ2[i,j]; // Revivo los barcos J2 (antes los borré del mapa)
  292. }
  293. }
  294. }
  295. Console.SetCursorPosition(32, 1);Console.Write("Turno J2 - "+nombreJ2);
  296. Console.SetCursorPosition(32, 2);Console.Write("------------------\n\n");
  297. Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ2);
  298. Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ2);
  299. Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ1);
  300. Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ2);
  301. Console.SetCursorPosition(32, 9);Console.Write("Atacar J2  ==> Fila: "); // Atacar J2 a J1
  302. Thread.Sleep(1500);
  303. Console.Write(rfila7);
  304. fila=rfila7;
  305. Console.SetCursorPosition(32, 10);Console.Write("           ==> Columna: ");
  306. Thread.Sleep(1500);
  307. Console.Write(rcolumna7);
  308. columna=rcolumna7;
  309. Thread.Sleep(1000);
  310. Console.Write("\n\n");
  311. }
  312.  
  313. public void realizarComprobacionesJ2(){
  314. repetirTirada = true;
  315. if(tableroJ1[fila-1,columna-1] == (char)'B'){
  316. Console.SetCursorPosition(32, 12);Console.Write("Barco Hundido. Vuelves a atacar jugador 2.\n");
  317. tableroJ1[fila-1,columna-1] = (char)'X';
  318. if(sonido == true){
  319. player.SoundLocation = ".\\sonido\\Explosion.wav";
  320. player.Play();
  321. }
  322. hundidoJ2++;
  323. barcosJ1--;
  324. }else if(tableroJ1[fila-1,columna-1] == (char)'A'){
  325. if(sonido == true){
  326. player.SoundLocation = ".\\sonido\\PosicionYaDada.wav";
  327. player.Play();
  328. }
  329. Console.SetCursorPosition(32, 12);Console.Write("Ya has atacado esta posición. Pasas turno.");
  330. }else if(tableroJ1[fila-1,columna-1] == (char)'X'){
  331. if(sonido == true){
  332. player.SoundLocation = ".\\sonido\\PosicionYaDada.wav";
  333. player.Play();
  334. }
  335. Console.SetCursorPosition(32, 12);Console.Write("Ya has hundido este barco. Pasas turno.");
  336. repetirTirada = false;
  337. }else{
  338. if(sonido == true){
  339. player.SoundLocation = ".\\sonido\\NoHayBarco.wav";
  340. player.Play();
  341. }
  342. Console.SetCursorPosition(32, 12);Console.Write("Has tocado agua. Pasas turno a J1.\n");
  343. tableroJ1[fila-1,columna-1]=(char)'A';
  344. }
  345. rondasJ2++;
  346. Thread.Sleep(2000);
  347. }
  348. }
  349. }
  350.  

Lo iré actualizando poquito a poco con el tiempo, así que nada de prisas ya que simplemente lo hago por aprender y el segundo motivo, por aburrimiento. Espero que os guste.

Feliz Navidad gente!  ;)
5  Programación / .NET (C#, VB.NET, ASP) / ¿Cómo evitar el ingreso de caracter en variable entera? en: 24 Noviembre 2012, 19:03 pm
Buenas, vengo de C/C++ y llevo solo cosa de 2 semanas en C# y me esta gustando mucho, son todo ventajas.

Pues eso, me preguntaba como podría evitar el error de que un usuario al acceder a un menú pulse por ejemplo la letra a y se quede pillado.

Si solo acepto variables enteras...¿que forma hay de que no ocurra nada y te vuelva a pedir introducir el valor?

He probado a poner un string para que acepte cualquier valor y funciona, pero únicamente acepta un caracter por pulsación de intro. Cuando pulsas más de uno se bloquea la app.
6  Programación / Programación C/C++ / Problema copiandose a si mismo a system32 en: 18 Agosto 2012, 18:20 pm
Pretendo que al ejecutar el programa, éste se autocopie a la ruta system32, detectando por sí mismo en que ruta se ha ejecutado.

El código a simple vista parece que funciona, lo llamas copiar.exe y debería de copiarse pero surge un problema a la hora de ejecutarse.

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3. main(){
  4.  
  5. char path[256];
  6. char nombre[60]="copiar";
  7. char* ruta=getenv("windir"); //obtiene la ruta de la instalacion de windows
  8.  
  9. strcat(ruta,"\\System32\\"); //agrega System32 a la ruta
  10. strcat(nombre,".exe"); //agrega .exe a wnws
  11. strcat(ruta,nombre); //agrega wnws.exe a C:\WINDOWS\System32
  12. HMODULE exe = GetModuleHandle(0); //nos retornara un handle al archivo usado para crear el proceso de llamada
  13. GetModuleFileName(exe, path, 256); //obtien la ruta de si mismo
  14. CopyFile(path,ruta,false); //se copia a la carpeta System32
  15. }
7  Programación / Programación C/C++ / [DUDA] añadir espacios al utilizar la función strcat en: 8 Agosto 2012, 17:23 pm
Estaba probando hacer un simple automatizador de netcat cuando me ha surgido un problema. Trata de que strcat concatena funciones y te devuelve la función final con la suma de todo, pero quiero que en dicha suma haya 2 espacios.

Quiero pasar de ncIPPuerto ---->    nc IP Puerto

El código que tengo es este.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>
  4.  
  5. int main(){
  6. char puerto[25], ip[25];
  7. char netcat[]="nc";
  8.  
  9. printf("Introduce la IP:\t");
  10. scanf("%s",&ip);
  11. printf("Introduce el puerto:\t");
  12. scanf("%s",&puerto);
  13. strcat(netcat,ip);
  14. strcat(netcat,puerto);
  15.  
  16. system(netcat);
  17. while(getchar() !='\n');  
  18. getchar();
  19.  
  20. }
8  Seguridad Informática / Bugs y Exploits / [Solucionado] Me salta error de permisos en metasploit en: 5 Agosto 2012, 14:43 pm
Resulta que al ejecutar el exploit con su payload me salta un error que a simple vista parece que es porque no tengo los permisos necesarios para poder ejecutarlo.

Citar
exploit failed: Errno::EACCES permission denied - bind(2)

El exploit y el payload que uso son para tomar el control de la shell de windows 7, son estos.

Citar
use windows/browser/ms10_046_shortcut_icon_dllloader
set payload windows/meterpreter/reverse_tcp

No sé cúal es el motivo exacto ni como podría solucionarlo, espero que podáis echarme una mano.
9  Programación / Programación C/C++ / [Source] Calculadora Calc Don 0.7 en: 9 Julio 2012, 23:11 pm
En mis ratos libres me he puesto a hacer una calculadora algo simple. Tiene las siguientes funciones:

-Suma                     -Seno               -Conocer multiplos
-Resta                     -Coseno            -Teorema Binomio
-Multiplicacion          -Tangente          -Calcular un descuento
-Division                  -Cosecante        -Multiplicar 2 matrices
-Raiz                       -Secante            -Area de un triangulo
-Potencia                 -Cotangente
-Logaritmo               -Conversor

Por ejemplo, el conversor nos permite transformar el valor de distintos tipos de monedas. Tambien permite pasar de decimal a binario.

Espero que con el tiempo esta calculadora mejore y tengas mas funciones y sea mas compleja.

PD: Hay algunas cosas como el teorema del binomio y el conversor de decimal a binario que no es mio, lo he incrustado en el code para abarcar mas.

PD2: Lo siento pero el goto no hay manera de reemplazarlo por otra funcion  :huh:

Versión 0.2

  • Code simplificado, suprimida la libreria iostream
  • Mejorada la limpieza del buffer
  • Solucionada la ausencia de un break en los case del switch
  • Eliminado el goto y sustituido
  • Corregidos pequeños errores

Versión 0.3

  • Ahora se utilizan menos variables
  • Codigo mas comprimido.
  • El codigo es portable, multiplataforma
  • Agregado nombre del programa a la consola (solo aparece en Win32)
  • Diseñada nueva interfaz y nuevo menu
  • Corregidas tildes en textos
  • Varios bugs menores

Versión 0.4

  • Codigo mas ordenado y limpio
  • Agregada Barra de transicion al menu
  • Añadida la funcion Angulos de un triangulo
  • Añadida la funcion Conversor de segundos a minutos y horas
  • Añadida la funcion Factorial
  • Añadida la funcion Conocer numeros primos
  • Añadido el Teorema de Pitagoras
  • Añadida la Serie de Fibonacci

Versión 0.5

  • Ahora se almacenan los resultados de las operaciones automaticamente en un archivo de texto (localizado en la misma raiz que la calc)
  • Pequeño bug al volver al menu
  • Solucionado problema con el buffer en saltos de linea
  • Agregadas tildes a las palabras

Versión 0.6 - 8/8/12

  • Corrección de tildes en archivo de texto generado
  • Pequeña mejora en la GUI
  • Añadida la funcion Binario a decimal
  • Añadida la funcion Decimal a Hexadecimal
  • Añadida la funcion Hexadecimal a Decimal
  • Añadida la funcion MCD y MCM
  • Añadida la funcion Área de un círculo
  • Añadida la funcion Longitud de un circulo

Versión 0.7 -20/10/12

  • Solucionado importante bug (ingreso de caracteres en variables enteras)
  • Arreglados bastantes bugs menores
  • Compatible con 64 bits
  • Cambios en la GUI
  • Optimizado el código de la Serie de Fibonacci y el del conversor de Decimal a Binario
  • Añadido conversión de Decimal a Octal y viceversa

Código v0.7
http://pastebin.com/Bz2x1ZS3
10  Programación / Programación C/C++ / [Duda C] Como añadir variable a la función system() en: 2 Julio 2012, 17:42 pm
Estoy tratando de hacer un simple código que te pida cuantas veces quieres crear un carpeta en C:// y posteriormente estas se creen con nombres aleatorios pero salta un problema.

Código:
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

main(){

int num,cifra;
char azar[] = "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z";

srand (time(NULL));   
azar=rand();

printf("Veces a abrir:\t");
scanf("%i",&cifra);

for(num=0;num<=cifra;num++)
system("mkdir c:\\%d",azar);
getchar();

}

Sé que no está bien meter la variable azar dentro de la función system(); ya que da error pero no se me ocurre como podría hacerlo.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines