Domingo 22 de Diciembre de 2024, 15:45
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
Minitraductor de ingles
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Minitraductor de ingles (Leído 3772 veces)
d4rwins
Nuevo Miembro
Mensajes: 12
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#
namespace
ConsoleApplication5
{
class
Program
{
static
void
Main
(
string
[
]
args
)
{
do
{
int
elegir
;
Console
.
WriteLine
(
"Bienvenido a las clases de ingles de D4rWiNSn"
)
;
Console
.
WriteLine
(
"Introduzca el modo que desea aprendernn"
)
;
Console
.
WriteLine
(
"1-Vocabulary"
)
;
Console
.
WriteLine
(
"2-Traducir frases"
)
;
elegir
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
if
(
elegir
==
1
)
{
Console
.
WriteLine
(
"nnTraduce las siguientes palabrasnn"
)
;
Console
.
WriteLine
(
" Espada"
)
;
string
text
=
(
Console
.
ReadLine
(
)
)
;
string
palabra1
=
(
"sword"
)
;
if
(
text
==
palabra1
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Oh nooo la respuesta era: {0})"
, palabra1
)
;
}
Console
.
WriteLine
(
"nn Raton"
)
;
string
text1
=
(
Console
.
ReadLine
(
)
)
;
string
palabra2
=
(
"mouse"
)
;
if
(
text1
==
palabra2
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Oh nooo la respuesta era: {0})"
, palabra2
)
;
}
Console
.
WriteLine
(
"Quiere pasar al traductor de frase?"
)
;
Console
.
WriteLine
(
"nn 1-Si"
)
;
Console
.
WriteLine
(
"2-no"
)
;
int
numero1
;
numero1
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
}
else
{
Console
.
WriteLine
(
"Traducidor de frases"
)
;
}
}
while
(
numero1
==
1
)
;
}
}
}
Tweet
tannke
Miembro MUY activo
Mensajes: 152
Nacionalidad:
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#
static
void
Main
(
string
[
]
args
)
{
int
numero1
=
0
;
do
{
int
elegir
;
....
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:
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#
namespace
ConsoleApplication5
{
class
Program
{
//Metodo Main, por aqui entra y sale el programa
static
void
Main
(
string
[
]
args
)
{
int
numero1
=
0
;
do
{
int
elegir
;
Console
.
WriteLine
(
"Bienvenido a las clases de ingles de D4rWiNSn"
)
;
Console
.
WriteLine
(
"Introduzca el modo que desea aprendernn"
)
;
Console
.
WriteLine
(
"1-Vocabulary"
)
;
Console
.
WriteLine
(
"2-Traducir frases"
)
;
elegir
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
if
(
elegir
==
1
)
{
numero1
=
Palabras
(
)
;
//invocamos el metodo palabras y el valor devuelto
//se lo asignamos a numero1
}
else
{
Frases
(
)
;
//invocamos el metodo frases
}
}
while
(
numero1
==
1
)
;
}
//Fin del Main
//Metodo Palabras
private
static
int
Palabras
(
)
//metodo que devuelve un int
{
Console
.
WriteLine
(
"nnTraduce las siguientes palabrasnn"
)
;
Console
.
WriteLine
(
" Espada"
)
;
string
text
=
(
Console
.
ReadLine
(
)
)
;
string
palabra1
=
(
"sword"
)
;
if
(
text
==
palabra1
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Oh nooo la respuesta era: {0})"
, palabra1
)
;
}
Console
.
WriteLine
(
"nn Raton"
)
;
string
text1
=
(
Console
.
ReadLine
(
)
)
;
string
palabra2
=
(
"mouse"
)
;
if
(
text1
==
palabra2
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Oh nooo la respuesta era: {0})"
, palabra2
)
;
}
Console
.
WriteLine
(
"Quiere pasar al traductor de frase?"
)
;
Console
.
WriteLine
(
"nn 1-Si"
)
;
Console
.
WriteLine
(
"2-no"
)
;
return
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
//devolvemos el int
}
//Fin Palabras
//Metodo Frases
private
static
void
Frases
(
)
//este metodo no devuelve nada "void"
{
Console
.
WriteLine
(
"Traducidor de frases"
)
;
}
//Fin metodo Frases
}
}
Espero se entienda. SALUDOS
d4rwins
Nuevo Miembro
Mensajes: 12
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#
namespace
ConsoleApplication5
{
class
Program
{
static
void
Main
(
string
[
]
args
)
{
int
numero2
=
1
;
Console
.
WriteLine
(
"Bienvenido a las clases de ingles de D4rWiNSn"
)
;
do
{
int
elegir
;
Console
.
WriteLine
(
"Introduzca el modo que desea aprendernn"
)
;
Console
.
WriteLine
(
"1-Vocabulary"
)
;
Console
.
WriteLine
(
"2-Traducir frases"
)
;
elegir
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
if
(
elegir
==
1
)
{
Console
.
WriteLine
(
"nnTraduce las siguientes palabrasnn"
)
;
Console
.
WriteLine
(
" Espada"
)
;
string
text
=
(
Console
.
ReadLine
(
)
)
;
string
palabra1
=
(
"sword"
)
;
if
(
text
==
palabra1
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Oh nooo la respuesta era: {0})"
, palabra1
)
;
}
Console
.
WriteLine
(
"nn Raton"
)
;
string
text1
=
(
Console
.
ReadLine
(
)
)
;
string
palabra2
=
(
"mouse"
)
;
if
(
text1
==
palabra2
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Oh nooo la respuesta era: {0})"
, palabra2
)
;
}
Console
.
WriteLine
(
"Quiere pasar a otro Traductor?"
)
;
Console
.
WriteLine
(
"nn 1-Si"
)
;
Console
.
WriteLine
(
"2-no"
)
;
numero2
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
}
else
{
Console
.
WriteLine
(
"nTraduce las siguientes frasesnn"
)
;
Console
.
WriteLine
(
" La guerra esta cambiando"
)
;
string
text
=
(
Console
.
ReadLine
(
)
)
;
string
frase1
=
"The war is changing"
;
if
(
text
==
frase1
)
{
Console
.
WriteLine
(
"nnCORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Ohhhhh as fallado"
)
;
Console
.
WriteLine
(
"La respuesta era : {0})"
, frase1
)
;
}
Console
.
WriteLine
(
"nnn Muere otro diann"
)
;
string
text2
=
(
Console
.
ReadLine
(
)
)
;
string
frase2
=
"Die another day"
;
if
(
text2
==
frase2
)
{
Console
.
WriteLine
(
"nnCORRECTO"
)
;
}
else
{
Console
.
WriteLine
(
"Ohhhhh as fallado"
)
;
Console
.
WriteLine
(
"La respuesta era : {0})nnn"
, frase2
)
;
}
Console
.
WriteLine
(
"Quiere pasar a otro Traductor?"
)
;
Console
.
WriteLine
(
"nn 1-Si"
)
;
Console
.
WriteLine
(
"2-no"
)
;
numero2
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
}
}
while
(
numero2
==
1
)
;
Console
.
WriteLine
(
"EXAMEN"
)
;
}
}
}
tannke
Miembro MUY activo
Mensajes: 152
Nacionalidad:
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#
# if (elegir == 1)
{
Palabras
(
)
;
//invocamos el metodo
numero2
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
//y acabamos de la manera que acababas tu anteriormente
}
Bueno, sobre tu segunda pregunta yo creo que lo mas facil es declarar una variable int, tipo:
Código: C#
int
nota
=
0
;
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#
if
(
palabra
==
palabra
)
{
Console
.
WriteLine
(
"CORRECTO"
)
;
nota
=
nota
+
2
;
//en caso de ser correcto sumamos 2 puntos a la nota
nota
+=
2
;
// ESTO es exactamente lo mismo que lo anterior, suma 2 puntos a la nota
}
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
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:
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#
static
void
Main
(
string
[
]
args
)
{
string
palabra
=
Console
.
ReadLine
(
)
;
Console
.
Clear
(
)
;
int
intentos
=
0
;
while
(
intentos
<
5
)
{
string
letra
=
Console
.
ReadLine
(
)
;
bool
esta
=
false
;
for
(
int
i
=
0
;
i
<
palabra
.
Length
;
i
++
)
{
if
(
palabra
[
i
]
.
ToString
(
)
==
letra
)
{
Console
.
WriteLine
(
"esta"
)
;
esta
=
true
;
}
}
if
(
!
esta
)
{
intentos
++;
Console
.
WriteLine
(
"la letra no esta"
)
;
Console
.
WriteLine
(
"intento {0} de 5"
, intentos
)
;
}
}
}
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:
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#
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
using
System.Threading
;
using
System.IO
;
namespace
AhorcadoConsola
{
class
Program
{
static
void
Main
(
string
[
]
args
)
{
int
select
=
0
;
while
(
select
!=
4
)
{
Pinta
.
Reset
(
)
;
select
=
MENU
(
)
;
if
(
select
==
1
)
DosJugadores
(
)
;
if
(
select
==
2
)
UnJugador
(
)
;
if
(
select
==
3
)
Diccionario
(
)
;
}
}
static
int
MENU
(
)
{
Console
.
WriteLine
(
"El Ahorcadon"
)
;
Console
.
WriteLine
(
"Elija una Opción:"
)
;
Console
.
WriteLine
(
"[1] Modo 2 Jugadores"
)
;
Console
.
WriteLine
(
"[2] Modo 1 Jugador"
)
;
Console
.
WriteLine
(
"[3] Introducir palabras al 'Diccionario'"
)
;
Console
.
WriteLine
(
"[4] Salirn"
)
;
Console
.
Write
(
"Teclee numero de opción: [ ]"
)
;
bool
incorrecto
=
true
;
int
seleccion
=
0
;
while
(
incorrecto
)
{
Console
.
SetCursorPosition
(
27
,
8
)
;
string
CAR
=
Console
.
ReadKey
(
)
.
KeyChar
.
ToString
(
)
;
if
(
CAR
==
"1"
||
CAR
==
"2"
||
CAR
==
"3"
||
CAR
==
"4"
)
{
incorrecto
=
false
;
seleccion
=
Int32
.
Parse
(
CAR
)
;
}
else
Console
.
Write
(
" ] OPCION NO VALIDA, VUELVA A TECLEAR"
)
;
}
Console
.
Clear
(
)
;
return
seleccion
;
}
static
void
DosJugadores
(
)
{
Console
.
WriteLine
(
"El Ahorcado 'Dos Jugadores'n"
)
;
string
palabra
=
Pinta
.
Palabra
(
)
;
string
letra
=
""
;
bool
jugamos
=
true
;
Pinta
.
Lineas
(
palabra
.
Length
)
;
while
(
jugamos
)
{
Console
.
SetCursorPosition
(
0
,
9
)
;
Console
.
Write
(
"Teclee una letra: "
)
;
letra
=
Console
.
ReadKey
(
true
)
.
KeyChar
.
ToString
(
)
;
Pinta
.
Usadas
(
letra
)
;
jugamos
=
Pinta
.
Comprovar
(
palabra, letra
)
;
}
}
static
void
UnJugador
(
)
{
Console
.
WriteLine
(
"El Ahorcado 'Un Jugador'n"
)
;
if
(
contar
(
)
==
0
)
{
Console
.
WriteLine
(
"Debe colocar palabras en el diccionario antes de jugar a esta modalidad."
)
;
Console
.
Write
(
"Pulse una tecla para volver al menú."
)
;
Console
.
ReadKey
(
)
;
Console
.
Clear
(
)
;
}
else
{
string
palabra
=
PalabraAleatDicc
(
)
;
Console
.
WriteLine
(
"Palabra con "
+
palabra
.
Length
+
" letras."
)
;
string
letra
=
""
;
bool
jugamos
=
true
;
Pinta
.
Lineas
(
palabra
.
Length
)
;
while
(
jugamos
)
{
Console
.
SetCursorPosition
(
0
,
9
)
;
Console
.
Write
(
"Teclee una letra: "
)
;
letra
=
Console
.
ReadKey
(
true
)
.
KeyChar
.
ToString
(
)
;
Pinta
.
Usadas
(
letra
)
;
jugamos
=
Pinta
.
Comprovar
(
palabra, letra
)
;
}
}
}
static
void
Diccionario
(
)
{
int
Total
=
contar
(
)
;
Console
.
WriteLine
(
"El Ahorcado 'Diccionario'n"
)
;
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
)
;
Console
.
Write
(
"Introduza Palabra: "
)
;
string
palabra
=
Console
.
ReadLine
(
)
;
StreamWriter escritura
=
new
StreamWriter
(
"palabras.txt"
,
true
)
;
while
(
palabra
!=
""
)
{
palabra
=
palabra
+
";"
;
escritura
.
Write
(
palabra
)
;
Console
.
Write
(
"Introduza Palabra: "
)
;
palabra
=
Console
.
ReadLine
(
)
;
}
escritura
.
Close
(
)
;
Console
.
Clear
(
)
;
}
static
int
contar
(
)
{
int
Total
=
0
;
if
(
File
.
Exists
(
"palabras.txt"
)
)
{
StreamReader leer
=
new
StreamReader
(
"palabras.txt"
)
;
string
total
=
leer
.
ReadToEnd
(
)
;
char
[
]
CHAR
=
{
';'
}
;
string
[
]
tot
=
total
.
Split
(
CHAR
)
;
Total
=
tot
.
Length
-
1
;
leer
.
Close
(
)
;
}
return
Total
;
}
static
string
PalabraAleatDicc
(
)
{
StreamReader leer
=
new
StreamReader
(
"palabras.txt"
)
;
string
total
=
leer
.
ReadToEnd
(
)
;
char
[
]
CHAR
=
{
';'
}
;
string
[
]
tot
=
total
.
Split
(
CHAR
)
;
int
Total
=
tot
.
Length
-
2
;
leer
.
Close
(
)
;
Random rnd
=
new
Random
(
)
;
int
numero
=
rnd
.
Next
(
0
, Total
)
;
return
tot
[
numero
]
;
}
}
}
CLASE 2
Código: C#
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
AhorcadoConsola
{
class
Pinta
{
private
static
int
posx
=
0
;
private
static
int
posy
=
12
;
private
static
int
intentos
=
0
;
private
static
int
correctes
=
0
;
private
static
void
pina
(
int
intentos
)
{
Console
.
SetCursorPosition
(
60
,
0
)
;
if
(
intentos
==
1
)
{
Console
.
SetCursorPosition
(
60
,
0
)
;
Console
.
WriteLine
(
@" ____"
)
;
Console
.
SetCursorPosition
(
60
,
1
)
;
Console
.
WriteLine
(
@" / "
)
;
Console
.
SetCursorPosition
(
60
,
2
)
;
Console
.
WriteLine
(
@" | |"
)
;
Console
.
SetCursorPosition
(
60
,
3
)
;
Console
.
WriteLine
(
@" |"
)
;
Console
.
SetCursorPosition
(
60
,
4
)
;
Console
.
WriteLine
(
@" |"
)
;
Console
.
SetCursorPosition
(
60
,
5
)
;
Console
.
WriteLine
(
@" |"
)
;
Console
.
SetCursorPosition
(
60
,
6
)
;
Console
.
WriteLine
(
@" |"
)
;
Console
.
SetCursorPosition
(
60
,
7
)
;
Console
.
WriteLine
(
@" _|_"
)
;
Console
.
SetCursorPosition
(
60
,
8
)
;
Console
.
WriteLine
(
@" / "
)
;
}
else
if
(
intentos
==
2
)
{
Console
.
SetCursorPosition
(
60
,
3
)
;
Console
.
WriteLine
(
@" ( ) |"
)
;
}
else
if
(
intentos
==
3
)
{
Console
.
SetCursorPosition
(
60
,
4
)
;
Console
.
WriteLine
(
@" | |"
)
;
Console
.
SetCursorPosition
(
60
,
5
)
;
Console
.
WriteLine
(
@" | |"
)
;
}
else
if
(
intentos
==
4
)
{
Console
.
SetCursorPosition
(
60
,
4
)
;
Console
.
WriteLine
(
@" /| |"
)
;
}
else
if
(
intentos
==
5
)
{
Console
.
SetCursorPosition
(
60
,
6
)
;
Console
.
WriteLine
(
@" / |"
)
;
}
}
public
static
string
Palabra
(
)
{
Console
.
Write
(
"Introduce Palabra: "
)
;
string
palabra
=
""
;
string
caracter
=
Console
.
ReadKey
(
true
)
.
KeyChar
.
ToString
(
)
;
Console
.
Write
(
"*"
)
;
palabra
+=
caracter
;
while
(
true
)
{
caracter
=
Console
.
ReadKey
(
true
)
.
KeyChar
.
ToString
(
)
;
if
(
caracter
==
"b"
)
{
palabra
=
palabra
.
Remove
(
palabra
.
Length
-
1
)
;
int
col
=
Console
.
CursorLeft
-
1
;
int
fil
=
Console
.
CursorTop
;
Console
.
SetCursorPosition
(
col, fil
)
;
Console
.
Write
(
" "
)
;
Console
.
SetCursorPosition
(
col, fil
)
;
}
else
if
(
caracter
==
"r"
)
break
;
else
{
Console
.
Write
(
"*"
)
;
palabra
+=
caracter
;
}
}
Console
.
Clear
(
)
;
Console
.
WriteLine
(
"El Ahorcado 'Dos Jugadores'n"
)
;
Console
.
WriteLine
(
"Palabra con "
+
palabra
.
Length
+
" letras."
)
;
return
palabra
;
}
public
static
void
Lineas
(
int
letras
)
{
Console
.
SetCursorPosition
(
25
,
6
)
;
for
(
int
i
=
0
;
i
<
letras
;
i
++
)
{
Console
.
Write
(
"_ "
)
;
}
}
public
static
void
Usadas
(
string
letra
)
{
Console
.
SetCursorPosition
(
posx, posy
)
;
Console
.
Write
(
letra
)
;
posx
+=
2
;
if
(
posx
>
79
)
{
posx
=
0
;
posy
++;
}
}
public
static
bool
Comprovar
(
string
palabra,
string
letra
)
{
bool
esta
=
false
;
for
(
int
i
=
0
;
i
<
palabra
.
Length
;
i
++
)
{
if
(
palabra
[
i
]
.
ToString
(
)
==
letra
)
{
colocar
(
i, letra
)
;
esta
=
true
;
correctes
++;
}
}
if
(
!
esta
)
{
intentos
++;
pina
(
intentos
)
;
}
if
(
correctes
==
palabra
.
Length
)
{
Console
.
SetCursorPosition
(
0
,
9
)
;
Console
.
ForegroundColor
=
ConsoleColor
.
Red
;
Console
.
WriteLine
(
"Enorabuena! Has logrado la palabra correcta!"
)
;
Console
.
ResetColor
(
)
;
Console
.
Write
(
"Pulse una tecla para volver al menu"
)
;
Console
.
ReadKey
(
)
;
Console
.
Clear
(
)
;
return
false
;
}
if
(
intentos
<
5
)
return
true
;
else
{
Console
.
SetCursorPosition
(
0
,
9
)
;
Console
.
ForegroundColor
=
ConsoleColor
.
Red
;
Console
.
WriteLine
(
"Lo siento mucho, la palabra correcta era {0}"
, palabra
)
;
Console
.
ResetColor
(
)
;
Console
.
Write
(
"Pulse una tecla para volver al menu"
)
;
Console
.
ReadKey
(
)
;
Console
.
Clear
(
)
;
return
false
;
}
}
private
static
void
colocar
(
int
Posicio,
string
lletre
)
{
int
POS
=
25
+
(
Posicio
*
2
)
;
Console
.
SetCursorPosition
(
POS,
6
)
;
Console
.
Write
(
lletre
)
;
}
public
static
void
Reset
(
)
{
posx
=
0
;
posy
=
12
;
intentos
=
0
;
correctes
=
0
;
}
}
}
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
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:
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:
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#
public
static
string
Palabra
(
)
{
Console
.
Write
(
"Introduce Palabra: "
)
;
string
palabra
=
""
;
string
caracter
=
Console
.
ReadKey
(
true
)
.
KeyChar
.
ToString
(
)
;
Console
.
Write
(
"*"
)
;
palabra
+=
caracter
;
while
(
true
)
{
caracter
=
Console
.
ReadKey
(
true
)
.
KeyChar
.
ToString
(
)
;
if
(
caracter
==
"b"
)
{
palabra
=
palabra
.
Remove
(
palabra
.
Length
-
1
)
;
int
col
=
Console
.
CursorLeft
-
1
;
int
fil
=
Console
.
CursorTop
;
Console
.
SetCursorPosition
(
col, fil
)
;
Console
.
Write
(
" "
)
;
Console
.
SetCursorPosition
(
col, fil
)
;
}
else
if
(
caracter
==
"r"
)
break
;
else
{
Console
.
Write
(
"*"
)
;
palabra
+=
caracter
;
}
}
Console
.
Clear
(
)
;
Console
.
WriteLine
(
"El Ahorcado 'Dos Jugadores'n"
)
;
Console
.
WriteLine
(
"Palabra con "
+
palabra
.
Length
+
" letras."
)
;
return
palabra
;
}
Seguro que tiene un monton de fallos mas, ya te digo que lo hice cuando aprendia del tema. Saludos
d4rwins
Nuevo Miembro
Mensajes: 12
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:
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
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!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
Minitraductor de ingles