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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [source][no optimizado] creador de sopas de letras en consola vbnet
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [source][no optimizado] creador de sopas de letras en consola vbnet  (Leído 3,778 veces)
spiritdead

Desconectado Desconectado

Mensajes: 296


Ver Perfil
[source][no optimizado] creador de sopas de letras en consola vbnet
« en: 24 Enero 2013, 06:19 am »

pues en estas madrugadas ayudando a los amigos con sus proyectos subo este

Código
  1. Module Module1
  2.  
  3.    Sub Main()
  4.        Dim x As Integer = 0
  5.        Dim y As Integer = 0
  6.        Dim z As Integer = 99
  7.        Dim contpalabras As Integer = 0
  8.        Dim aux1 = "", aux2 As String = ""
  9.        Dim Formato As String = "" '(vertical/horizontal)
  10.        Dim posicionX = -1, posicionY As Integer = -1
  11.  
  12.        Dim cantPalabras As Integer = 0
  13.        Dim rep As Boolean = True 'variable para pedir palabras
  14.        While x <= 0
  15.            Console.Write("Ingresar el numero de Columnas[X](mayor a 0): ")
  16.            x = Console.ReadLine
  17.        End While
  18.        While y <= 0
  19.            Console.Write("Ingresar el numero de Filas[Y](mayor a 0): ")
  20.            y = Console.ReadLine
  21.        End While
  22.        Dim Sopa(x, y) As Char 'matriz de sopa
  23.        Dim Palabras(z) As String 'vector palabras
  24.        Console.WriteLine("============ DIBUJADO DE SOPA DE LETRAS ============")
  25.         Console.WriteLine("Caja de posiciones")
  26.        For i = 0 To y - 1
  27.            For j = 0 To x - 1
  28.                Console.Write(j & "," & i & "|")
  29.            Next
  30.            Console.WriteLine()
  31.        Next
  32.        Console.WriteLine("============FIN DIBUJADO DE SOPA DE LETRAS ============")
  33.        While rep
  34.            aux1 = ""
  35.            aux2 = ""
  36.            posicionX = -1
  37.            posicionY = -1
  38.            While aux1 = ""
  39.                Console.Write("añada una palabra: ")
  40.                aux1 = Console.ReadLine
  41.                If aux1.ToCharArray.Length >= 3 And aux1.ToCharArray.Length <= x Or aux1.ToCharArray.Length <= y Then
  42.                    Palabras(contpalabras) = aux1
  43.                    contpalabras += 1
  44.                Else
  45.                    aux1 = ""
  46.                    Console.WriteLine("ERROR -> la palabra debe tener mas de 3 letras y debe ser menor al maximo X y maximo Y")
  47.                End If
  48.            End While
  49.            While aux2 = ""
  50.                Console.Write("Horizontal o Vertical: ")
  51.                aux2 = Console.ReadLine
  52.                If (aux2.ToLower = "horizontal" And aux1.ToCharArray.Length < x) Or (aux1.ToCharArray.Length < y And aux2.ToLower = "vertical") Then
  53.                    Formato = aux2.ToLower
  54.                Else
  55.                    aux2 = ""
  56.                    Console.WriteLine("ERROR -> debe escribir una de las 2 opciones, y revisar que la palabra pueda ser añadida en esa opcion")
  57.                End If
  58.            End While
  59.            While posicionX = -1 And posicionY = -1
  60.                Console.Write("Posicion inicial de la palabra en la matriz en X: ")
  61.                posicionX = Console.ReadLine
  62.                Console.Write("Posicion inicial de la palabra en la matriz en Y: ")
  63.                posicionY = Console.ReadLine
  64.                If Formato = "horizontal" Then
  65.                    If posicionX + aux1.ToCharArray.Length > x Or posicionX < 0 Or posicionY < 0 Or posicionY > y Then
  66.                        posicionX = -1
  67.                        posicionY = -1
  68.                    End If
  69.                ElseIf Formato = "vertical" Then
  70.                    If posicionY + aux1.ToCharArray.Length > y Or posicionY < 0 Or posicionX < 0 Or posicionX > x Then
  71.                        posicionX = -1
  72.                        posicionY = -1
  73.                    End If
  74.                End If
  75.                If posicionX < 0 Or posicionY < 0 Then
  76.                    Console.WriteLine("ERROR -> la suma de la posicion y el tamaño de la palabra supera el limite de la sopa de letras")
  77.                End If
  78.            End While
  79.            If Formato = "horizontal" Then
  80.                For i = 0 To aux1.ToCharArray.Length - 1
  81.                    Sopa(posicionX + i, posicionY) = aux1.ToCharArray()(i).ToString.ToLower
  82.                Next
  83.            ElseIf Formato = "vertical" Then
  84.                For i = 0 To aux1.ToCharArray.Length - 1
  85.                    Sopa(posicionX, posicionY + i) = aux1.ToCharArray()(i).ToString.ToLower
  86.                Next
  87.            End If
  88.            'dibujado de la sopa de letras
  89.            Console.WriteLine("============ DIBUJADO DE SOPA DE LETRAS ============")
  90.            Console.WriteLine("Caja de posiciones")
  91.            For i = 0 To y - 1
  92.                For j = 0 To x - 1
  93.                    Console.Write(j & "," & i & "|")
  94.                Next
  95.                Console.WriteLine()
  96.            Next
  97.            Console.WriteLine()
  98.            For i = 0 To y - 1
  99.                For j = 0 To x - 1
  100.                    If Sopa(j, i) = "" Then
  101.                        Console.Write(" |")
  102.                    Else
  103.                        Console.Write(Sopa(j, i) & "|")
  104.                    End If
  105.                Next
  106.                Console.WriteLine()
  107.            Next
  108.            Console.WriteLine("============FIN DIBUJADO DE SOPA DE LETRAS ============")
  109.            'añadir mas palabras
  110.            aux2 = ""
  111.            While aux2 = ""
  112.                Console.Write("Desea añadir otra palabra[si/no]?: ")
  113.                aux2 = Console.ReadLine
  114.                If aux2 = "si" Then
  115.                    rep = True
  116.                ElseIf aux2 = "no" Then
  117.                    rep = False
  118.                Else
  119.                    aux2 = ""
  120.                End If
  121.            End While
  122.        End While
  123.        aux2 = ""
  124.        rep = True
  125.        While aux2 = ""
  126.            Console.Write("Desea Rellenar la sopa de letras[si/no]?: ")
  127.            aux2 = Console.ReadLine
  128.            If aux2 = "si" Then
  129.                rep = True
  130.            ElseIf aux2 = "no" Then
  131.                rep = False
  132.            Else
  133.                aux2 = ""
  134.            End If
  135.        End While
  136.        If rep Then
  137.            Dim r As New Random
  138.            Dim letras As Char() = {"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"}
  139.            For i = 0 To y - 1
  140.                For j = 0 To x - 1
  141.                    If Sopa(j, i) = "" Or Sopa(j, i) = Nothing Then
  142.                        Sopa(j, i) = letras(r.Next(0, letras.Length))
  143.                    End If
  144.                Next
  145.            Next
  146.        End If
  147.        Console.WriteLine()
  148.        Console.WriteLine("============ DIBUJADO FINAL DE SOPA DE LETRAS ============")
  149.        For i = 0 To y - 1
  150.            For j = 0 To x - 1
  151.                If Sopa(j, i) = "" Then
  152.                    Console.Write(" |")
  153.                Else
  154.                    Console.Write(Sopa(j, i) & "|")
  155.                End If
  156.            Next
  157.            Console.WriteLine()
  158.        Next
  159.        Console.WriteLine()
  160.        Console.WriteLine("Palabras utilizadas")
  161.        For i = 0 To Palabras.Length - 1
  162.            If Palabras(i) = Nothing Or Palabras(i) = "" Then
  163.            Else
  164.                Console.WriteLine(Palabras(i))
  165.            End If
  166.        Next
  167.        Console.WriteLine("============FIN DIBUJADO FINAL DE SOPA DE LETRAS ============")
  168.        Console.WriteLine("Presiona una tecla para salir...")
  169.        Console.ReadKey()
  170.    End Sub
  171.  
  172. End Module

NO ESTA OPTIMIZADO
USO TECNICAS PERMITIDAS EN SUS CURSOS (no hay subs, no hay functions,nada de eso)

desarrollado para consola, y en un simple Sub :)

UNICO DETALLE = NO INTERCEPTAR PALABRAS  ( me dio flojera añadirlo)

saludos :)


En línea

Facilitador De Tareas - Task Simplifier (FDT)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: [source][no optimizado] creador de sopas de letras en consola vbnet
« Respuesta #1 en: 24 Enero 2013, 07:06 am »

Gracias,
la idea de la sopa de letras me ha gustado, aunque da pereza tener que escribir "horizontal" "vertical", en el código podrías haber añadido una comparación adicional así: "¿H o V?" xD.

saludos


En línea

spiritdead

Desconectado Desconectado

Mensajes: 296


Ver Perfil
Re: [source][no optimizado] creador de sopas de letras en consola vbnet
« Respuesta #2 en: 24 Enero 2013, 15:13 pm »

Gracias,
la idea de la sopa de letras me ha gustado, aunque da pereza tener que escribir "horizontal" "vertical", en el código podrías haber añadido una comparación adicional así: "¿H o V?" xD.

saludos

era 1 trabajo de universidad, tenia q hacerlo bien por eso si te fijas uso metodos poco buenos,no uso subs/functions ni nada de eso, lo mas sencillo posible con lo q tenia disponible de algoritmia
En línea

Facilitador De Tareas - Task Simplifier (FDT)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Fuentes de letras en modo consola
.NET (C#, VB.NET, ASP)
Meta 1 4,116 Último mensaje 19 Septiembre 2009, 11:28 am
por jdc
Problema kon sopa de letras en consola
.NET (C#, VB.NET, ASP)
thedios 4 5,565 Último mensaje 24 Enero 2010, 20:09 pm
por MANULOMM
[Source] Numeros a Letras (De 1 hasta Octillónes Gugol? xS).
Programación Visual Basic
BlackZeroX 3 3,302 Último mensaje 28 Octubre 2010, 18:21 pm
por ranslsad
[SOURCE] Letras3D7913 Funcion que crea letras 3D Flasheras
Programación Visual Basic
79137913 1 3,232 Último mensaje 26 Mayo 2011, 02:06 am
por Edu
Criticas y mejoras para el juego de sopas de letras
Programación C/C++
peterfly 0 1,352 Último mensaje 9 Diciembre 2011, 21:03 pm
por peterfly
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines