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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20
91  Programación / Programación C/C++ / Re: Juego del gato en: 14 Abril 2012, 03:08 am
Bueno aqui yo hice el propio aunque aun me falto hacer el codigo para checar si hubi un ganador hehehe! xD
Solo puse que siempre regrese 0, pero ahi se ocupa solo checar la tabla y pues que recorra y ya si encuentra un ganador pues regresa el numero del jugador 1 si el ganador es el X o 2 si el ganador es el O. Por ahora pues debo salir so lo hice rapido, si tengo tiempo luego pues hago la parte que me falto si es que alguien no la hace por aca xP

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define MAX_TURNO 9
  5. #define COLUMNA 3
  6. #define FILA 3
  7.  
  8. void MostrarTabla(char TABLA[FILA][COLUMNA]);
  9. int ChecarGanador(char TABLA[FILA][COLUMNA]);
  10.  
  11. int main()
  12. {
  13. char TABLA[FILA][COLUMNA];
  14. int turno = 1, fila, columna, ganador = 0;
  15. bool bandera = false;
  16. MostrarTabla(TABLA);
  17.  
  18. do{
  19. ganador = ChecarGanador(TABLA);
  20. if(ganador != 0)
  21. {
  22. cout << "El Ganador es el JUGADOR [ " << ganador << " ]" << endl;
  23. break;
  24. }
  25. cout << "Turno del jugador: " << ((turno%2 == 0) ? "2" : "1") << endl;
  26. do{
  27. bandera = false;
  28. do{
  29. cout << "Selecciona Fila (1 - 3) : ";
  30. cin >> fila;
  31. }while(fila > 3 && fila < 1);
  32. do{
  33. cout << "Selecciona Columna (1 - 3) : ";
  34. cin >> columna;
  35. }while(columna > 3 && columna < 1);
  36. if(TABLA[fila-1][columna-1] != -52)
  37. {
  38. bandera = true;
  39. cout << "Esta posicion ya fue seleccionada" << endl;
  40. }else
  41. TABLA[fila-1][columna-1] = ((turno%2 == 0) ? 'O' : 'X');
  42.  
  43. }while(bandera);
  44. MostrarTabla(TABLA);
  45. turno++;
  46. }while(MAX_TURNO >= turno);
  47.  
  48. if(ganador == 0)
  49. {
  50. cout << "Empate!! ;D" << endl;
  51. }
  52. cout << "Fin del Juego!" << endl;
  53. cin.get();cin.get();
  54. return 0;
  55. }
  56.  
  57. void MostrarTabla(char TABLA[FILA][COLUMNA])
  58. {
  59. cout << endl << "----------" << endl;
  60. for(int x = 0; x < FILA; x++)
  61. {
  62. for(int xx = 0; xx < COLUMNA; xx++)
  63. {
  64. cout << "| " << ((TABLA[x][xx] != -52) ? TABLA[x][xx] : ' ');
  65. }
  66. cout << "|" << endl;
  67. }
  68. cout << "----------" << endl;
  69. }
  70.  
  71. int ChecarGanador(char TABLA[FILA][COLUMNA])
  72. {
  73. int p1 = 0, p2 = 0;
  74.  
  75. // Horizontal
  76. for(int x = 0; x < FILA; x++)
  77. {
  78. for(int xx = 0; xx < COLUMNA; xx++)
  79. {
  80. if(TABLA[x][xx] == 'X')
  81. p1++;
  82. else if(TABLA[x][xx] == 'O')
  83. p2++;
  84. }
  85. if(p1 == 3)
  86. return 1;
  87. else if(p2 == 3)
  88. return 2;
  89. else{
  90. p1 = 0;
  91. p2 = 0;
  92. }
  93. }
  94. // Vertical
  95. for(int x = 0; x < COLUMNA; x++)
  96. {
  97. for(int xx = 0; xx < FILA; xx++)
  98. {
  99. if(TABLA[xx][x] == 'X')
  100. p1++;
  101. else if(TABLA[xx][x] == 'O')
  102. p2++;
  103. }
  104. if(p1 == 3)
  105. return 1;
  106. else if(p2 == 3)
  107. return 2;
  108. else{
  109. p1 = 0;
  110. p2 = 0;
  111. }
  112. }
  113.  
  114. // Diagonales
  115. if(TABLA[0][0] == 'X' && TABLA[1][1] == 'X' && TABLA[2][2] == 'X')
  116. return 1;
  117. else if(TABLA[0][0] == 'O' && TABLA[1][1] == 'O' && TABLA[2][2] == 'O')
  118. return 2;
  119. else if(TABLA[0][2] == 'X' && TABLA[1][1] == 'X' && TABLA[2][0] == 'X')
  120. return 1;
  121. else if(TABLA[0][2] == 'O' && TABLA[1][1] == 'O' && TABLA[2][0] == 'O')
  122. return 2;
  123.  
  124. return 0;
  125. }
92  Programación / Programación C/C++ / Re: Juego del gato en: 14 Abril 2012, 02:09 am
Yo le agregaria ahi en el codigo un chequeo que en la posicion que se decea ingresar que este vacia o que no exista una X u O, y si en tal posicion existe alguna de ellas vuelva a pedir la posicion.
93  Programación / Programación C/C++ / Re: Duda funcion witch dev c++ en: 9 Abril 2012, 19:25 pm
si el switch nos sirve cuando usaremos muchpor lo que aqui no aplicaas condicionales, pero que la condicion nunca va a cambiar ... por lo que en este ejercicio no aplica, lo que deberias hacer es

leer a
mayor = a
menor = a
leer b
if(mayor < b)
   mayor = b
if(menor > b)
   menor = b
leer c
if(mayor < c)
   mayor = c
if(menor > c)
   menor = c

....

y asi y ya al terminar de leer u ya tendras el mayor y menor
94  Programación / Programación C/C++ / Re: ayuda con este codigo en: 7 Abril 2012, 20:29 pm
Código
  1. #include<stdio.h>
  2. #inlcude<conio.h>
  3. main()
  4. {
  5.    int a,b,c,d;
  6.    bool bandera = true;
  7.    clrscr();
  8.    printf("dame el nuemro de contenedores");
  9.    scanf("%d", &a);
  10.    if(a > 0)
  11.    {
  12.        printf("\n Dame los litros del contenedor");
  13.        scanf("%d",&b);
  14.        if(b > 0)
  15.        {
  16.            printf("\n dame el n&#250;mero de casas");
  17.            scanf("%d",&c);
  18.            if(c <= 0)
  19.                bandera = false;
  20.        }else{
  21.            bandera = false;
  22.        }
  23.    }else{
  24.        bandera = false;
  25.    }
  26.    if(bandera)
  27.    {
  28.        d=(a*b)/c;
  29.        printf("\n La cantodad de litros por casa es %d", d);
  30.    }else{
  31.        printf("No existen n&#250;meros negativos ni un numero en fraccion");
  32.    }
  33.    getch();
  34. }
  35.  
95  Programación / Programación C/C++ / Re: Duda funcion incrementar en: 7 Abril 2012, 12:04 pm
A como entendi seria asi:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. char numero[10];
  5.  
  6. bool incrementar ( char numero[10])
  7. {
  8. cout << endl;
  9. int aux, var;
  10. char aux2[10];
  11. strcpy(aux2, numero);
  12.  
  13. for(int x = 0; x < 10; x++)
  14. if((numero[x] < 48 || numero[x] > 57) && numero[x] != 0)
  15. return false;
  16.  
  17. aux = atoi(numero);
  18. if(aux == 999999999)
  19. strcpy(numero, "0");
  20. else{
  21. aux++;
  22. itoa(aux, aux2, 10);
  23. var = 9-strlen(aux2);
  24. for(int x = 0; x < 9; x++)
  25. {
  26. if(x < var)
  27. numero[x] = '0';
  28. else
  29. numero[x] = aux2[x-var];
  30. }
  31. }
  32.  
  33. return true;
  34. }
  35.  
  36. int main()
  37. {
  38. cout << "Introduzca un numero de nueve digitos o menos: " << endl;
  39. cin >> numero;
  40. if(incrementar(numero))
  41.                cout << endl << "Resultado: " << numero << endl;
  42.        else
  43.                cout << "Error, no son numeros";
  44. cin.get();cin.get();
  45. return 0;
  46. }
  47.  
96  Programación / Programación C/C++ / Re: Duda funcion incrementar en: 7 Abril 2012, 09:33 am
Hola de nuevo, ahora tengo otro problema... no me incrementa nada ni un numero y deberia incrementar hasta 999999999.
Código
  1. #include <iostream>
  2. using namespace std;
  3. bool incrementar (char numero[10]);
  4. char numero[10];
  5. int main()
  6. {
  7.   cout << "Introduzca un numero de nueve digitos o menos: \n";
  8.   cin >> numero[10];
  9.   incrementar(numero);
  10.   cout << numero;
  11.   system("pause");
  12.  
  13. }
  14.  
  15. // Funci&#243;n incremetnar----------------------------------------------
  16. bool incrementar ( char numero[10])
  17. {
  18.   int aux;
  19.   aux = atoi(numero);
  20.   if(aux < 9)
  21.   {
  22.      for( ; aux < 9; aux++)
  23.       {
  24.         cout << numero[aux];
  25.      }
  26.      return true;
  27.   }
  28.  
  29.   else
  30.   {
  31.      cout << "El numero no es correcto";
  32.      return false;
  33.   }
  34.   return 0;
  35. }

He probado con if(aux < 999999999) y luego for( ; aux < 999999999; aux++) pero se ve que accede a memoria que no deberia.

Una ayudita, gracias!!

Exactamente, tu mismo lo estas diciendo estas accediendo a memoria que no deberia porque la variable "numero", tiene capacidad de hasta 10 caracteres, y luego utilizando esto: if(aux < 999999999) y luego for( ; aux < 999999999; aux++) , estaras intentando acceder a memoria que no existe.

Creo que podrias ponerlo mas sencillo asi:

Código
  1. int aux;
  2.   aux = atoi(numero);
  3.   if(aux < 999999999)
  4.   {
  5.        strcpy(numero, "999999999");
  6.        cout << numero;
  7.        return true;
  8.   }
  9.  

Aunque se podria decir que es trampa xD, pero pues si uno pone nose 9 o un numero bajo tardara demasiado :/

Otra cosa que veo es que cuando lees el numero lo ingresas directamente en una posicion de numero, deberia ser
cin >> numero;

Yo lo haria asi:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. char numero[10];
  5.  
  6. bool incrementar ( char numero[10])
  7. {
  8. cout << endl;
  9. int aux;
  10. aux = atoi(numero);
  11. if(aux < 999999999)
  12. {
  13.                strcpy(numero, "999999999");
  14. return true;
  15. }else{
  16. cout << "El numero no es correcto" << endl;
  17. return false;
  18. }
  19. return 0;
  20. }
  21.  
  22. int main()
  23. {
  24. cout << "Introduzca un numero de nueve digitos o menos: " << endl;
  25. cin >> numero;
  26. incrementar(numero);
  27. cout << endl << "Resultado: " << numero << endl;
  28. cin.get();cin.get();
  29. return 0;
  30. }

O si tiene que ser a fuerza el incremento pues asi:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. char numero[10];
  5.  
  6. bool incrementar ( char numero[10])
  7. {
  8. cout << endl;
  9. int aux;
  10. aux = atoi(numero);
  11. if(aux < 999999999)
  12. {
  13. while(aux < 999999999)
  14. {
  15. aux++;
  16. cout << aux << endl;
  17. }
  18. itoa(aux, numero, 10);
  19. return true;
  20. }else{
  21. cout << "El numero no es correcto" << endl;
  22. return false;
  23. }
  24. return 0;
  25. }
  26.  
  27. int main()
  28. {
  29. cout << "Introduzca un numero de nueve digitos o menos: " << endl;
  30. cin >> numero;
  31. incrementar(numero);
  32. cout << endl << "Resultado: " << numero << endl;
  33. cin.get();cin.get();
  34. return 0;
  35. }
  36.  
97  Programación / .NET (C#, VB.NET, ASP) / Re: [C#]TrojanWIFI - Claves de wifi al descubierto en: 6 Abril 2012, 19:58 pm
he igual no esta "program.bat" ni "wirelesskeyview", podria nose poner que el program.bat lo cree automaticamente como un archivo de texto y ya y el otro pues si no pesa mucho igual como un archivo de bytes o algo por el estilo :/
98  Programación / PHP / Re: [PHP][AYUDA]Como tengo acceso a la segunda fila de datos extraidos?. en: 3 Abril 2012, 02:13 am
Ok, la verdad me confundi con tu pregunta aunque si lo que deceas es la segunda fila en si sobre tu busqueda podrias hacerlo asi:

Código
  1. <?php
  2. $conexion=Conectar();
  3. $busqueda="select * from wp_posts where post_type='page'";
  4. $consulta=mysql_query($busqueda,$conexion);
  5. $x = 0;
  6. while($extraccion=mysql_fetch_array($consulta))
  7. {
  8.    $x++;
  9.    if($x == 2)
  10.    {
  11.    ?>
  12.    <li><a href="<?php echo $extraccion['guid'];?>/"><?php echo $extraccion['post_title'];?></a></li>
  13.    <?
  14.    }
  15. }
  16. ?>
99  Programación / Programación C/C++ / Re: Código fuente para sumar números enteros aleatorios en: 1 Abril 2012, 20:26 pm
Oooh nice, me gusto la forma que lo haces hehee mas esta partesita:
Código
  1.       int haciaAdelante = 1;
  2.       int haciaAtras = 11;
  3.  
  4.    // se declara una estructura de control para hacer la suma de los arreglos de forma diagonal
  5.  
  6.    for (haciaAdelante = 0; haciaAdelante < 11; haciaAdelante++)
  7.    {
  8.        z [haciaAdelante] = x[haciaAdelante] + y[haciaAtras];
  9.        haciaAtras--;
  10.    }

Lo que yo cambiaria es al rellenar los arreglos y checar no repetidos, lo haria de la forma siguiente:

Código
  1. for(int x = 0; x < 10; x++)
  2. {
  3. do{
  4. existe = false;
  5. arr1[x] = (1 + rand() % 15);
  6. for(int i = 0; i < x; i++)
  7. if(arr1[x] == arr1[i])
  8. existe = true;
  9. }while(existe);
  10.  
  11. do{
  12. existe = false;
  13. arr2[x] = (1 + rand() % 15);
  14. for(int i = 0; i < x; i++)
  15. if(arr2[x] == arr2[i])
  16. existe = true;
  17. }while(existe);
  18. cout << (x+1) << setw(17) << arr1[x] << setw(17) << arr2[x] << endl;
  19. }
  20.  

Aunque pues yo lo hice de 0 a 9, y tu de 1 a 10 hehehe al parecer no usas el index 0 hehehehe
100  Programación / PHP / Re: Alojamiento de información en: 14 Marzo 2012, 22:36 pm
Codigos:

- config.php // Donde contendra los datos de conexion

- functions.php // Aqui contendra funciones especiales que te puedan servir tales como limpiar variables u otras cosas que nos faciliten las cosas

- login.php // Codigo que recibira el user y pass, para loguear si es que este NO esta logueado y guardara en session un identificador de el usuario logueado, si es que logueo

- logout.php // Aqui checara si esta logueado, hara un unset_session() al session que contiene el identificador de logueado

- publicar.php // Este recibira titulo, url video, comentario y etiquetas, aqui lo que tienes que hacer es checar si esta logueado continuamos validando, y luego insertar los datos en una tabla llamada algo como 'Publicaciones' la cual su estructura sera asi (id del tipo int , idusuario de tipo int, titulo de tipo varchar, urlvideo de tipo varchar, comentario del tipo varchar), luego insertar en ella tales datos en idusuario sera el id del usuario logueado asi saber quien publico esa publicacion hehe y en otra tabla llamada 'Etiquetas' de estructura asi (id de tipo int, idPublicacion de tipo int, nombre de tipo varchar) asi donde dice idPublicacion se obtendra del id de la nueva publicacion insertada y ya se inserta la etiqueta, claro para la insersion de etiquetas tendras que hacer algo como un split para separar cada etiqueta por "," o algo como "-" eso ya sera de tu eleccion y de ahi correr ese array e ir insertando las etiquetas en tal tabla.

- videos.php // Este cargara unos 10 videos por pagina esto ya sera usando para ello puedes buscar codigos de paginadores y de ahi obtener los datos de la tabla publicaciones y en la url del video pues implementar algo que por la url te ponga el reproductor de youtube eso es sencillo viendo como youtube te da el codigo de su reproductos y solo cambiando unas partesitas por la url con eso ya la haces hehe, y lo de videos anteriores pues con lo del paginador bastara ya que para eso son hehe

Bueno y claro una pagina de registro hehe

Saludos*!

Ahi en si seria lo que ocuparias de codigos mas que nada y de tablas serian
Publicaciones
- ID
- IDUsuario
- Titulo
- UrlVideo
- Comentario

Etiquetas
- ID
- IDPublicacion
- Nombre

Usuarios
- ID
- Usuario
- Password
- Email
- Administrador // Este por si haces un panel te sirve para checar si el usuario es Admin o No
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines