• Domingo 22 de Diciembre de 2024, 15:45

Autor Tema:  Minitraductor de ingles  (Leído 3772 veces)

d4rwins

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Minitraductor de ingles
« en: Lunes 4 de Enero de 2010, 13:50 »
0
Vereis estoy intentando hacer una especie de cursillo de ingles(solo para aprender c# porke no vale pa na xD)y el problema k me surje es el siguiente:

En el siguiente codigo(al final) el while no me dececta numero1 cuando se supone k lo e definido antes y luego el otro problema k me surje es que si se decide que no se quiere seguir traduciendo,como ago para k no lo lleve por el traductor de frases porke al estar el codigo seguido seria por ahi por donde seguiria el programa

No se si me explico xD

gracias por adelantado


Código: C#
  1.  
  2. namespace ConsoleApplication5
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             do
  9.             {
  10.                 int elegir;
  11.                 Console.WriteLine("Bienvenido a las clases de ingles de D4rWiNSn");
  12.                 Console.WriteLine("Introduzca el modo que desea aprendernn");
  13.                 Console.WriteLine("1-Vocabulary");
  14.                 Console.WriteLine("2-Traducir frases");
  15.                 elegir = Int32.Parse(Console.ReadLine());
  16.                 if (elegir == 1)
  17.                 {
  18.                     Console.WriteLine("nnTraduce las siguientes palabrasnn");
  19.                     Console.WriteLine("          Espada");
  20.                     string text = (Console.ReadLine());
  21.                     string palabra1 = ("sword");
  22.  
  23.                     if (text == palabra1)
  24.                     {
  25.                         Console.WriteLine("CORRECTO");
  26.                     }
  27.                     else
  28.                     {
  29.                         Console.WriteLine("Oh nooo la respuesta era: {0})", palabra1);
  30.                     }
  31.                     Console.WriteLine("nn          Raton");
  32.                     string text1 = (Console.ReadLine());
  33.                     string palabra2 = ("mouse");
  34.                     if (text1 == palabra2)
  35.                     {
  36.                         Console.WriteLine("CORRECTO");
  37.                     }
  38.                     else
  39.                     {
  40.                         Console.WriteLine("Oh nooo la respuesta era: {0})", palabra2);
  41.                     }
  42.                     Console.WriteLine("Quiere pasar al traductor de frase?");
  43.                     Console.WriteLine("nn 1-Si");
  44.                     Console.WriteLine("2-no");
  45.                     int numero1;
  46.                     numero1 = Int32.Parse(Console.ReadLine());
  47.                    
  48.                 }
  49.                 else
  50.                 {
  51.                     Console.WriteLine("Traducidor de frases");
  52.                 }
  53.  
  54.  
  55.  
  56.             } while (numero1 == 1);
  57.                
  58.                
  59.            
  60.             }
  61.  
  62.  
  63.  
  64.         }
  65.     }
  66.  

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #1 en: Lunes 4 de Enero de 2010, 15:18 »
0
Lo del numero1 para que te lo detecte, tienes que declararlo fuera del while, es decir:

Código: C#
  1.  
  2.  static void Main(string[] args)
  3.          { 
  4.              int numero1= 0;
  5.              do
  6.              {
  7.                 int elegir;
  8.                 ....
  9.  
  10.  

Ten encuenta que las variables creadas dentro de {  un conjunto  } solo son accesibles desde ese conjunto y subconjuntos, es decir por ejemplo, si creas una variable dentro de un "if", cuando salgas de este, la variable desaparece.

No se si me explique muy bien, si no es asi avisame e intentare explicarme mejor

Bueno la segunda pregunta creo no entenderte muy bien. Por lo que veo, al final cuando preguntas si quiere seguir al traductor de frases, si respondes SI(1) no te va ha ir al traductor de frases, sino que te saltrara otra vez al principio("en el menú de selección"). Si respondes NO(2) simplemente acabará la aplicación. Todo esto en el caso de haber elejido en un principio la 1ª apción.

Si elijes la 2ª opcion en el principio te saltara directamente al "else", que este te escribe la frase y directamente sale de la aplicación.


Creo que no te solucioné mucho la 2ª, si eso intenta formularla de otra manera o especificando algo mas, alomejor es que estoy algo lento yo pero la verdad que no entendi muy bien cual es la pregunta concretamente.

Saludos

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #2 en: Lunes 4 de Enero de 2010, 15:53 »
0
Buenas de nuevo, esta vez te escribo para darte un consejo (no se si ya sabras pero por si acaso te lo digo). Se trata de los metodos (creo se llamava asi) bueno, te poste tu codigo anterior dividido en metodos, esto te servira en el futuro con trabajos mayores para poder tenerlo mas organizado o lo que es mas importante codigos que tengas que usar mas de una vez ( ej.. ecuaciones, logaritmos, calculos, lo que sea) poderlos llamar en cualquier momento solo escribiendo el nombre de tu metodo.

Código: C#
  1.  
  2. namespace ConsoleApplication5
  3. {
  4.     class Program
  5.     {
  6.  
  7.         //Metodo Main, por aqui entra y sale el programa
  8.         static void Main(string[] args)
  9.         {
  10.             int numero1 = 0;
  11.             do
  12.             {
  13.                 int elegir;
  14.                 Console.WriteLine("Bienvenido a las clases de ingles de D4rWiNSn");
  15.                 Console.WriteLine("Introduzca el modo que desea aprendernn");
  16.                 Console.WriteLine("1-Vocabulary");
  17.                 Console.WriteLine("2-Traducir frases");
  18.                 elegir = Int32.Parse(Console.ReadLine());
  19.                 if (elegir == 1)
  20.                 {
  21.                     numero1 = Palabras(); //invocamos el metodo palabras y el valor devuelto
  22.                                           //se lo asignamos a numero1
  23.                 }
  24.                 else
  25.                 {
  26.                     Frases();  //invocamos el metodo frases
  27.                 }
  28.                
  29.  
  30.             }
  31.             while (numero1 == 1);
  32.         }//Fin del Main
  33.  
  34.  
  35.  
  36.         //Metodo Palabras
  37.         private static int Palabras() //metodo que devuelve un int
  38.         {
  39.             Console.WriteLine("nnTraduce las siguientes palabrasnn");
  40.             Console.WriteLine("          Espada");
  41.             string text = (Console.ReadLine());
  42.             string palabra1 = ("sword");
  43.  
  44.             if (text == palabra1)
  45.             {
  46.                 Console.WriteLine("CORRECTO");
  47.             }
  48.             else
  49.             {
  50.                 Console.WriteLine("Oh nooo la respuesta era: {0})", palabra1);
  51.             }
  52.             Console.WriteLine("nn          Raton");
  53.             string text1 = (Console.ReadLine());
  54.             string palabra2 = ("mouse");
  55.             if (text1 == palabra2)
  56.             {
  57.                 Console.WriteLine("CORRECTO");
  58.             }
  59.             else
  60.             {
  61.                 Console.WriteLine("Oh nooo la respuesta era: {0})", palabra2);
  62.             }
  63.             Console.WriteLine("Quiere pasar al traductor de frase?");
  64.             Console.WriteLine("nn 1-Si");
  65.             Console.WriteLine("2-no");
  66.  
  67.             return Int32.Parse(Console.ReadLine()); //devolvemos el int
  68.         }//Fin Palabras
  69.        
  70.  
  71.  
  72.         //Metodo Frases
  73.         private static void Frases() //este metodo no devuelve nada "void"
  74.         {
  75.             Console.WriteLine("Traducidor de frases");
  76.         }//Fin metodo Frases
  77.     }
  78. }
  79.  

Espero se entienda. SALUDOS

d4rwins

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Minitraductor de ingles
« Respuesta #3 en: Jueves 7 de Enero de 2010, 16:18 »
0
En cuanto a la segunda duda k plantee como me explico como el culo es normal k no la entendieses pero no importa porke me la autorespondi xD

Si me a quedado claro que en vez de meterlo todo en una piñata que cree las cosas mas organizadas (Perdona pero esque soy un chapucero asta pa esto!!!!)pero a partir de aora lo are como tu dices ya que para programas mas tochos en el futuro me vendra bien

pero no entiendo una cosa porke asignas el el valor a el metodo palabras?

Y luego otra pregunta e "terminado" mas o menos el traductor pero aora le quiero meter un examen el caso es :
Pongo 5 preguntas, como ago para que el programa dectecte que si aciertas 2 tengas un 4 si aciertas 5 un 10 y si acierta 3 un 6, es decir como ago para que te evalue en funcion de las que aciertes e leido algo por ai de TRUE y FALSE pero no me queda muy claro

Te dejo el nuevo codigo(esta aplicacion la terminare con todo en el metodo main)
Código: C#
  1. namespace ConsoleApplication5
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             int numero2= 1;
  8.             Console.WriteLine("Bienvenido a las clases de ingles de D4rWiNSn");
  9.             do
  10.             {
  11.                 int elegir;
  12.                
  13.                 Console.WriteLine("Introduzca el modo que desea aprendernn");
  14.                 Console.WriteLine("1-Vocabulary");
  15.                 Console.WriteLine("2-Traducir frases");
  16.                 elegir = Int32.Parse(Console.ReadLine());
  17.                 if (elegir == 1)
  18.                 {
  19.                     Console.WriteLine("nnTraduce las siguientes palabrasnn");
  20.                     Console.WriteLine("          Espada");
  21.                     string text = (Console.ReadLine());
  22.                     string palabra1 = ("sword");
  23.  
  24.                     if (text == palabra1)
  25.                     {
  26.                         Console.WriteLine("CORRECTO");
  27.                     }
  28.                     else
  29.                     {
  30.                         Console.WriteLine("Oh nooo la respuesta era: {0})", palabra1);
  31.                     }
  32.                     Console.WriteLine("nn          Raton");
  33.                     string text1 = (Console.ReadLine());
  34.                     string palabra2 = ("mouse");
  35.                     if (text1 == palabra2)
  36.                     {
  37.                         Console.WriteLine("CORRECTO");
  38.                     }
  39.                     else
  40.                     {
  41.                         Console.WriteLine("Oh nooo la respuesta era: {0})", palabra2);
  42.                     }
  43.                     Console.WriteLine("Quiere pasar a otro Traductor?");
  44.                     Console.WriteLine("nn 1-Si");
  45.                     Console.WriteLine("2-no");
  46.                    
  47.                     numero2 = Int32.Parse(Console.ReadLine());
  48.                    
  49.                 }
  50.                 else
  51.                 {
  52.                     Console.WriteLine("nTraduce las siguientes frasesnn");
  53.                     Console.WriteLine("          La guerra esta cambiando");
  54.                     string text = (Console.ReadLine());
  55.                     string frase1 = "The war is changing";
  56.  
  57.                     if (text == frase1)
  58.                     {
  59.                         Console.WriteLine("nnCORRECTO");
  60.                     }
  61.                     else
  62.                     {
  63.                         Console.WriteLine("Ohhhhh as fallado");
  64.                         Console.WriteLine("La respuesta era : {0})", frase1);
  65.                     }
  66.                     Console.WriteLine("nnn          Muere otro diann");
  67.                     string text2 = (Console.ReadLine());
  68.                     string frase2 = "Die another day";
  69.                     if (text2 == frase2)
  70.                     {
  71.                         Console.WriteLine("nnCORRECTO");
  72.                     }
  73.                     else
  74.                     {
  75.                         Console.WriteLine("Ohhhhh as fallado");
  76.                         Console.WriteLine("La respuesta era : {0})nnn", frase2);
  77.                     }
  78.                     Console.WriteLine("Quiere pasar a otro Traductor?");
  79.                     Console.WriteLine("nn 1-Si");
  80.                     Console.WriteLine("2-no");
  81.  
  82.                     numero2 = Int32.Parse(Console.ReadLine());
  83.  
  84.                 }
  85.  
  86.  
  87.      
  88.             }
  89.             while (numero2 == 1);
  90.             Console.WriteLine("EXAMEN");
  91.                
  92.                
  93.            
  94.             }
  95.  
  96.  
  97.  
  98.         }
  99.     }
  100.  

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #4 en: Jueves 7 de Enero de 2010, 17:05 »
0
Bueno haber si me explico con la primera pregunta(que tambien soy bastante mala para ello).
Lo que hacemos con "" numero1 = Palabras();  "" es invocar Palabras(), al hacer esto se procesa todo lo que esta dentro de este metodo.
Si te fijas este metodo lo hemos declarado como int, es decir "int Palabras()". Esto quiere decir que una vez terminado el proceso de Palabras() este tiene que devolver un valor entero (int). Y este valor es asignado a numero1, ya que hicimos "numero1 = Palabras();"

En pocas palabras, el resultado de Palabras() se lo asignamos a numero1

Esto te lo puse asi a modo de ejemplos, para que vieras que los metodos pueden retarnar valores de cualquier tipo, tambien podrias haberlo hecho asi:

Declarar el metodo palabras:
private static void Palabras() ---> void significa que no devuelve nada

y donde anteriormente llamavamos al metodo hacerlo asi:

Código: C#
  1. # if (elegir == 1)
  2.                  {
  3.                       Palabras();                                                    //invocamos el metodo
  4.                       numero2 = Int32.Parse(Console.ReadLine());   //y acabamos de la manera que acababas tu anteriormente                  
  5.                  }
  6.  
Bueno, sobre tu segunda pregunta yo creo que lo mas facil es declarar una variable int, tipo:
Código: C#
  1. int nota=0;
  2.  
a continuacion donde tu ya corriges el examen, supongo que lo harias del mismo modo que hasta ahora, con los if(...) else
pues donde el:
Código: C#
  1.  
  2. if(palabra == palabra)
  3. {
  4.         Console.WriteLine("CORRECTO");
  5.         nota = nota + 2;      //en caso de ser correcto sumamos 2 puntos a la nota
  6.         nota += 2;              // ESTO es exactamente lo mismo que lo anterior, suma 2 puntos a la nota
  7. }
  8.  
  9.  
al final de la corrección solo tendrias que poner un Console.WriteLine("Nota final: " + nota);

Espero haberme explicado bien. Ha y soblre lo de chapucero... Ni por asomo hombre, yo creo que empece bastante peor que tu!!, esto de la programación yo creo que es algo muy personal, cada uno tiene que hacerlo de la manera que mas le guste y mejor le vaya

Saludos

d4rwins

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #5 en: Sábado 9 de Enero de 2010, 21:39 »
0
Muchas gracias por ayudarme ya esta terminado y funcional 100% Queria aprovechar el mismo post para no spawnear el foro
y hacerte 2 preguntas

Veras esque queria hacer un aorcado y empezando tuve el primer problema k al escribir tu la palabra se volvia a reflejar
y quiero saber si puedo hacer que no salga, es decir esconderla

y la siguiente pregunta es de como hacer que al poner una letra compruebe si esta en la escrita. He leido por hay que se usa el comando for pero no me a quedado muy claro si me pudieras echar una mano me harias un gran favor


un saludo

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #6 en: Lunes 11 de Enero de 2010, 14:41 »
0
Bueno sobre la primera pregunta no se si una vez escrita la plabra esta desaparezca o que cuando la teclees esta directamente no se vea.
Si es la primera lo mas facil es hacer un Console.Clear(); que borra todo el contenido de la pantalla. Si no quieres que se borre todo ya tendrias que mover el cursor para borrar solo esa linea.
Si lo que quieres es lo otro(que directamente no quieres que se vea lo que teclees) ya es tema un poco mas complicado, pero supongo que no habria problema en hacerlo, solo es cuestion de mirar haber como se puede hacer.

Sobre tu segunda pregunta, te he escrito este codigo para que puedas entender un poco como podria ser la cosa, puedes testearlo copiando y pegando. Es algo muy simple, lo unico que hace es comprobar si esta o no la letra y a los 5 intentos sale de la aplicación.
Código: C#
  1. static void Main(string[] args)
  2.         {
  3.             string palabra = Console.ReadLine();
  4.  
  5.             Console.Clear();
  6.  
  7.             int intentos = 0;
  8.  
  9.             while (intentos < 5)
  10.             {
  11.                 string letra = Console.ReadLine();
  12.                 bool esta = false;
  13.  
  14.                 for (int i = 0; i < palabra.Length; i++)
  15.                 {
  16.                     if (palabra[i].ToString() == letra)
  17.                     {
  18.                         Console.WriteLine("esta");
  19.                         esta = true;
  20.                     }
  21.                 }
  22.                 if (!esta)
  23.                 {
  24.                     intentos++;
  25.                     Console.WriteLine("la letra no esta");
  26.                     Console.WriteLine("intento {0} de 5", intentos);
  27.                 }
  28.             }
  29.         }
  30.  

Para un buen ahoracado lo que tendrias que hacer es que almenos cuando este una palabra te la pusiera. Ejemplo:
palabra = PALABRA.
letra = A
resultado = _.A._.A._._.A

Es solo un ejemplo. Espero te sirva, si necesitas mas ayuda con esto avisa.

A todo esto, piensa que en modo consola tienes los comandos:
Console.CursorLeft
Console.CursorTop
o
Console.SetCursorPosition(x,y);
Estos te sirven para mover el cursor donde vayas a escribir.

saludos

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #7 en: Lunes 11 de Enero de 2010, 19:10 »
0
Bueno, acabo de acordarme que hace ya bastante tiempo tambien hice un ahorcado en modo consola, le fui haciendo algunas modificaciones por lo que alomejor el codigo esta un poco lioso. Te lo posteo aqui por si te puede dar alguna idea de como hacer el tuyo.

El codigo esta dividido en 2 CLASES, lo suyo seria que el primero lo pusieras en la primera pagina del proyecto consola y  el segundo codigo vas a (Proyecto/agregar clase...) y colocas ahi la segunda clase.

Ahunque si quieres, como estan en el mismo "namespace" podrias colocarlos uno destras del otro:

CLASE 1:
Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading;
  5. using System.IO;
  6.  
  7. namespace AhorcadoConsola
  8. {
  9.     class Program
  10.     {
  11.        
  12.         static void Main(string[] args)
  13.         {
  14.             int select = 0;
  15.  
  16.             while (select != 4)
  17.             {
  18.                 Pinta.Reset();
  19.                 select = MENU();
  20.  
  21.                 if (select == 1)
  22.                     DosJugadores();
  23.  
  24.                 if (select == 2)
  25.                     UnJugador();
  26.  
  27.                 if (select == 3)
  28.                     Diccionario();
  29.             }            
  30.         }
  31.  
  32.        
  33.  
  34.         static int MENU()
  35.         {
  36.             Console.WriteLine("El Ahorcadon");
  37.             Console.WriteLine("Elija una Opción:");
  38.             Console.WriteLine("[1] Modo 2 Jugadores");
  39.             Console.WriteLine("[2] Modo 1 Jugador");
  40.             Console.WriteLine("[3] Introducir palabras al 'Diccionario'");
  41.             Console.WriteLine("[4] Salirn");
  42.  
  43.             Console.Write("Teclee numero de opción: [   ]");
  44.  
  45.             bool incorrecto = true;
  46.             int seleccion = 0;
  47.  
  48.             while (incorrecto)
  49.             {
  50.                 Console.SetCursorPosition(27, 8);
  51.                 string CAR = Console.ReadKey().KeyChar.ToString();
  52.  
  53.                 if (CAR == "1" || CAR == "2" || CAR == "3" || CAR == "4")
  54.                 {
  55.                     incorrecto = false;
  56.                     seleccion = Int32.Parse(CAR);
  57.                 }
  58.                 else
  59.                     Console.Write(" ]  OPCION NO VALIDA, VUELVA A TECLEAR");
  60.             }
  61.             Console.Clear();
  62.             return seleccion;
  63.  
  64.         }
  65.  
  66.         static void DosJugadores()
  67.         {
  68.             Console.WriteLine("El Ahorcado 'Dos Jugadores'n");
  69.             string palabra = Pinta.Palabra();
  70.  
  71.             string letra = "";
  72.             bool jugamos = true;
  73.  
  74.             Pinta.Lineas(palabra.Length);
  75.  
  76.             while (jugamos)
  77.             {
  78.                 Console.SetCursorPosition(0, 9);
  79.                 Console.Write("Teclee una letra: ");
  80.                 letra = Console.ReadKey(true).KeyChar.ToString();
  81.                 Pinta.Usadas(letra);
  82.  
  83.                 jugamos = Pinta.Comprovar(palabra, letra);
  84.             }
  85.         }
  86.  
  87.         static void UnJugador()
  88.         {
  89.             Console.WriteLine("El Ahorcado 'Un Jugador'n");
  90.  
  91.             if (contar() == 0)
  92.             {
  93.                 Console.WriteLine("Debe colocar palabras en el diccionario antes de jugar a esta modalidad.");
  94.                 Console.Write("Pulse una tecla para volver al menú.");
  95.                 Console.ReadKey();
  96.                 Console.Clear();
  97.  
  98.             }
  99.             else
  100.             {
  101.  
  102.                 string palabra = PalabraAleatDicc();
  103.  
  104.                 Console.WriteLine("Palabra con " + palabra.Length + " letras.");
  105.  
  106.                 string letra = "";
  107.                 bool jugamos = true;
  108.  
  109.                 Pinta.Lineas(palabra.Length);
  110.  
  111.                 while (jugamos)
  112.                 {
  113.                     Console.SetCursorPosition(0, 9);
  114.                     Console.Write("Teclee una letra: ");
  115.                     letra = Console.ReadKey(true).KeyChar.ToString();
  116.                     Pinta.Usadas(letra);
  117.  
  118.                     jugamos = Pinta.Comprovar(palabra, letra);
  119.                 }
  120.             }
  121.         }
  122.  
  123.         static void Diccionario()
  124.         {
  125.             int Total = contar();
  126.            
  127.  
  128.             Console.WriteLine("El Ahorcado 'Diccionario'n");
  129.  
  130.             Console.WriteLine("Disponde de {0} palabras en el diccionario, para introducir una nueva palabra tecleela y pulse ENTER, para salir pulse ENTER sin ninguna palabra escrita.nn", Total);
  131.  
  132.             Console.Write("Introduza Palabra: ");
  133.             string palabra = Console.ReadLine();
  134.  
  135.             StreamWriter escritura = new StreamWriter("palabras.txt", true);
  136.  
  137.             while (palabra != "")
  138.             {
  139.                 palabra = palabra + ";";
  140.                 escritura.Write(palabra);
  141.  
  142.                 Console.Write("Introduza Palabra: ");
  143.                 palabra = Console.ReadLine();
  144.             }
  145.             escritura.Close();
  146.             Console.Clear();
  147.         }
  148.  
  149.         static int contar()
  150.         {
  151.             int Total = 0;
  152.             if (File.Exists("palabras.txt"))
  153.             {
  154.                 StreamReader leer = new StreamReader("palabras.txt");
  155.                 string total = leer.ReadToEnd();
  156.  
  157.                 char[] CHAR = { ';' };
  158.                 string[] tot = total.Split(CHAR);
  159.                 Total = tot.Length - 1;
  160.                 leer.Close();
  161.             }
  162.             return Total;
  163.         }
  164.  
  165.         static string PalabraAleatDicc()
  166.         {
  167.  
  168.             StreamReader leer = new StreamReader("palabras.txt");
  169.             string total = leer.ReadToEnd();
  170.  
  171.             char[] CHAR = { ';' };
  172.             string[] tot = total.Split(CHAR);
  173.             int Total = tot.Length - 2;
  174.             leer.Close();
  175.  
  176.             Random rnd = new Random();
  177.             int numero = rnd.Next(0, Total);
  178.  
  179.             return tot[numero];
  180.         }
  181.     }
  182. }
  183.  

CLASE 2
Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace AhorcadoConsola
  6. {
  7.     class Pinta
  8.     {
  9.         private static int posx = 0;
  10.         private static int posy = 12;
  11.         private static int intentos = 0;
  12.         private static int correctes = 0;
  13.  
  14.         private static void pina(int intentos)
  15.         {
  16.             Console.SetCursorPosition(60, 0);
  17.             if (intentos == 1)
  18.             {
  19.                 Console.SetCursorPosition(60, 0); Console.WriteLine(@"   ____");
  20.                 Console.SetCursorPosition(60, 1); Console.WriteLine(@"  /    ");
  21.                 Console.SetCursorPosition(60, 2); Console.WriteLine(@"  |     |");
  22.                 Console.SetCursorPosition(60, 3); Console.WriteLine(@"        |");
  23.                 Console.SetCursorPosition(60, 4); Console.WriteLine(@"        |");
  24.                 Console.SetCursorPosition(60, 5); Console.WriteLine(@"        |");
  25.                 Console.SetCursorPosition(60, 6); Console.WriteLine(@"        |");
  26.                 Console.SetCursorPosition(60, 7); Console.WriteLine(@"       _|_");
  27.                 Console.SetCursorPosition(60, 8); Console.WriteLine(@"      /   ");
  28.             }
  29.             else if (intentos == 2)
  30.             {                
  31.                 Console.SetCursorPosition(60, 3); Console.WriteLine(@" ( )    |");                
  32.             }
  33.             else if (intentos == 3)
  34.             {
  35.                 Console.SetCursorPosition(60, 4); Console.WriteLine(@"  |     |");
  36.                 Console.SetCursorPosition(60, 5); Console.WriteLine(@"  |     |");
  37.             }
  38.             else if (intentos == 4)
  39.             {
  40.                 Console.SetCursorPosition(60, 4); Console.WriteLine(@" /|    |");
  41.             }
  42.             else if (intentos == 5)
  43.             {
  44.                 Console.SetCursorPosition(60, 6); Console.WriteLine(@" /     |");
  45.             }
  46.         }
  47.  
  48.        public static string Palabra()
  49.         {
  50.             Console.Write("Introduce Palabra: ");
  51.             string palabra = "";
  52.             string caracter = Console.ReadKey(true).KeyChar.ToString();
  53.             Console.Write("*");
  54.             palabra += caracter;
  55.             while(true)
  56.             {                
  57.                 caracter = Console.ReadKey(true).KeyChar.ToString();
  58.                 if (caracter == "b")
  59.                 {
  60.                     palabra = palabra.Remove(palabra.Length - 1);
  61.                     int col = Console.CursorLeft - 1;
  62.                     int fil = Console.CursorTop;
  63.                     Console.SetCursorPosition(col, fil);
  64.                     Console.Write(" ");
  65.                     Console.SetCursorPosition(col, fil);
  66.                 }
  67.                 else if (caracter == "r")
  68.                     break;
  69.                 else
  70.                 {
  71.                     Console.Write("*");
  72.                     palabra += caracter;
  73.                 }
  74.             }
  75.  
  76.             Console.Clear();
  77.             Console.WriteLine("El Ahorcado 'Dos Jugadores'n");
  78.             Console.WriteLine("Palabra con "+palabra.Length+" letras.");
  79.             return palabra;
  80.         }
  81.  
  82.         public static void Lineas(int letras)
  83.         {
  84.             Console.SetCursorPosition(25, 6);
  85.             for (int i = 0; i < letras; i++)
  86.             {
  87.                 Console.Write("_ ");
  88.             }
  89.         }
  90.  
  91.         public static void Usadas(string letra)
  92.         {
  93.             Console.SetCursorPosition(posx, posy);
  94.             Console.Write(letra);
  95.             posx += 2;
  96.             if (posx > 79)
  97.             {
  98.                 posx = 0;
  99.                 posy++;
  100.             }
  101.         }
  102.  
  103.         public static bool Comprovar(string palabra, string letra)
  104.         {
  105.             bool esta = false;
  106.             for (int i = 0; i < palabra.Length; i++)
  107.             {
  108.                 if (palabra[i].ToString() == letra)
  109.                 {
  110.                     colocar(i, letra);
  111.                     esta = true;
  112.                     correctes++;
  113.                 }
  114.             }
  115.             if (!esta)
  116.             {
  117.                 intentos++;
  118.                 pina(intentos);
  119.             }
  120.             if (correctes == palabra.Length)
  121.             {
  122.                 Console.SetCursorPosition(0, 9);
  123.                 Console.ForegroundColor = ConsoleColor.Red;
  124.                 Console.WriteLine("Enorabuena! Has logrado la palabra correcta!");
  125.                 Console.ResetColor();
  126.                 Console.Write("Pulse una tecla para volver al menu");
  127.                 Console.ReadKey();
  128.                 Console.Clear();
  129.                 return false;
  130.             }
  131.  
  132.             if (intentos < 5)
  133.                 return true;
  134.  
  135.             else
  136.             {
  137.                 Console.SetCursorPosition(0, 9);
  138.                 Console.ForegroundColor = ConsoleColor.Red;
  139.                 Console.WriteLine("Lo siento mucho, la palabra correcta era {0}", palabra);
  140.                 Console.ResetColor();
  141.                 Console.Write("Pulse una tecla para volver al menu");
  142.                 Console.ReadKey();
  143.                 Console.Clear();
  144.                 return false;
  145.             }
  146.         }
  147.  
  148.         private static void colocar(int Posicio, string lletre)
  149.         {
  150.             int POS = 25 + (Posicio * 2);
  151.             Console.SetCursorPosition(POS, 6);
  152.             Console.Write(lletre);
  153.         }
  154.  
  155.         public static void Reset()
  156.         {
  157.             posx = 0;
  158.             posy = 12;
  159.             intentos = 0;
  160.             correctes = 0;
  161.         }
  162.  
  163.  
  164.  
  165.     }
  166. }
  167.  
  168.  

Espero te sirva para guiarte. Un saludo

Edit: El fallo descrito mas adelante ya esta corregido
« última modificación: Martes 12 de Enero de 2010, 16:03 por tannke »

d4rwins

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #8 en: Martes 12 de Enero de 2010, 14:07 »
0
Me ha servido muchisimo gracias he hecho ya lo que vendria siendo la base tengo que hacer muchos arreglos y tal, pero tengo una amiga que no sabe si quiere entrar a ingenieria informatica y queria pasarselo para k viera un poco todo lo que se puede hacer, como lo grabo para que sea una aplicacion que pueda pasar?

Muchas gracias por antelacion

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #9 en: Martes 12 de Enero de 2010, 15:10 »
0
con el visual studio lo abres, vas a Archivo y Nuevo Proyecto, Abres una "Aplicacion de consola. En la pagina que te sale lo borras todo y copias el primer codigo que te puse.

A continuación le das a la pestaña Proyecto y pulsas sobre Agregar Clase... Donde nombre le pones "Pinta.cs" y le das a Agregar. Ahora en la pagina que te ha generado nueva, vuelves a borrarlo todo y copias el segundo codigo que te pasé.

Una vez echo esto ya esta listo para compilar. Un saludo

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #10 en: Martes 12 de Enero de 2010, 15:55 »
0
Corijo el metodo Palabra() de la segunda clase "Pinta" por lo visto tenia un error cuando intentabas borrar una letra al ingresar una palabra. Aqui pongo la correccion del metodo, Tambien lo modificare en el codigo original:

Código: C#
  1. public static string Palabra()
  2.         {
  3.             Console.Write("Introduce Palabra: ");
  4.             string palabra = "";
  5.             string caracter = Console.ReadKey(true).KeyChar.ToString();
  6.             Console.Write("*");
  7.             palabra += caracter;
  8.             while(true)
  9.             {                
  10.                 caracter = Console.ReadKey(true).KeyChar.ToString();
  11.                 if (caracter == "b")
  12.                 {
  13.                     palabra = palabra.Remove(palabra.Length - 1);
  14.                     int col = Console.CursorLeft - 1;
  15.                     int fil = Console.CursorTop;
  16.                     Console.SetCursorPosition(col, fil);
  17.                     Console.Write(" ");
  18.                     Console.SetCursorPosition(col, fil);
  19.                 }
  20.                 else if (caracter == "r")
  21.                     break;
  22.                 else
  23.                 {
  24.                     Console.Write("*");
  25.                     palabra += caracter;
  26.                 }
  27.             }
  28.  
  29.             Console.Clear();
  30.             Console.WriteLine("El Ahorcado 'Dos Jugadores'n");
  31.             Console.WriteLine("Palabra con "+palabra.Length+" letras.");
  32.             return palabra;
  33.         }
  34.  

Seguro que tiene un monton de fallos mas, ya te digo que lo hice cuando aprendia del tema. Saludos

d4rwins

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #11 en: Miércoles 13 de Enero de 2010, 21:43 »
0
no te preocupes por los fallos es lo de menos me ayuda bastante mirar ahi, y lo de como copilarlo que te pregunte me referia al que yo ice xD es decir donde esta el boton para acerlo ejecutable esque no encuentro lo de copilar por ningun lado muxas gracias x adelantado

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #12 en: Jueves 14 de Enero de 2010, 13:26 »
0
Esto es arriba en la pestaña Generar y le das a Generar Solución. O tambien pulsando la tecla F6.
El archivo te lo genera en la carpeta que hayas creado el proecto, en la carpeta "bin", ahi te encuentras 2 carpetas, "debug" y "release", en la primera esta el .exe que se genera cuando depuras la aplicacón y en la segunta está el .exe que se genera cuando le das a generar solucion.

Espero sea esto, un saludo

d4rwins

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Minitraductor de ingles
« Respuesta #13 en: Domingo 17 de Enero de 2010, 17:00 »
0
sip si eraeso muxas gracias tanke ni te imaginas la de favores que me estas aciendo me estas ayudando muxo a aprender este lenguaje , creo que empezare a entrar con las aplicaciones de windows y supongo que seguire teniendo mil dudas que espero que me ayudes a resolver

MUXISIMAS GRACIAS!