Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Psyke1

#151
Programación Visual Basic / Re: vb6 es tonto
2 Octubre 2011, 01:44 AM
Sí, probé compilado. :P
Yo también sabía esto de hace tiempo, pero ingenuo de mí, llegué a pensar que en todos los lenguajes era igual. :laugh:
Y la gente que no programa en vb6 no lo suele saber, así que no creo que esto haya sido 100% en vano.

DoEvents! :P
#152
Programación Visual Basic / vb6 es tonto
2 Octubre 2011, 01:08 AM
Hola chicos, bueno a raíz de una discusión con la profesora de programación he investigado sobre los Ifs de vb6... :rolleyes:

En esta situación:
Código (vb) [Seleccionar]
If A = True Or B = False Then
Lo lógico sería que al leer A=True no comprobara Lo siguiente puesto que la condición se cumpliría de todas formas. :)
Pero no, vb te comprueba TODO el If pase lo que pase en todos los casos. :¬¬

Aquí un código que lo demuestra:

Código (vb) [Seleccionar]
Option Explicit

Private Function OrTest(ByVal bReturn As Boolean) As Boolean
   '// Imprimo un texto para saber que he pasado por la función.
   Debug.Print Time$, "Función con el argumento " & bReturn & " llamada."
   OrTest = bReturn
End Function

Private Sub Form_Load()
   
   '// Aquí lo logico sería comprobar las dos ya que
   '// si la primera no es true, lo puede ser la segunda.
   If OrTest(False) Or OrTest(False) Then
       '// Nothing
   End If
   
   Debug.Print String$(75, "=")
   
   '// Lo lógico sería que se saltase la segunda función puesto
   '// que la primera es true, pero no, nuestro querido vb
   '// comprueba igual...
   If OrTest(True) Or OrTest(False) Then
       '// Nothing
   End If
End Sub


Retorno:
00:27:48      Función con el argumento Falso llamada.
00:27:48      Función con el argumento Falso llamada.
===========================================================================
00:27:48      Función con el argumento Verdadero llamada.
00:27:48      Función con el argumento Falso llamada.




Sé que alguno dirá: ¿y a mí qué más me da si el resultado es el mismo?
Bueno, pues imagina que tienes un If tal que así:

Código (vb) [Seleccionar]

If Calculo(1) Or Calculo(2) Or Calculo(3) Or Calculo(4) Or Calculo(5) Then
    '...
End If

La función Calculo() es un algoritmo complejo y tarda 1 segundo de media.
Si fuera otro lenguaje de programación si Calculo(1) es true se saltaría los demás, pero nuestro querido vb6 llamará a todas las demás funciones perdiendo tiempo innecesariamente... :-\ Pasando de 1 seg a 5 en este caso.
La alternativa que propongo en estos casos es (no son agradables a la vista, aviso :xD) :

Sustituir esto:
Código (vb) [Seleccionar]

   If A(324) = 45 Or B(12) = 2 Or B(4563) = 56 Then
       Call DoIt
   End If


Por esto:
Código (vb) [Seleccionar]

   If A(324) = 45 Then
        Call DoIt
   ElseIf B(12)=2 Then
        Call DoIt
   ElseIf B(4563) = 56 Then
       Call DoIt
    End If


Esto:
Código (vb) [Seleccionar]

   If A(324) = 45 And B(12) = 2 And B(4563) = 56 Then
       '...
   End If


Por esto:
Código (vb) [Seleccionar]

   If A(324) = 45 Then
       If B(12) = 2 Then
           If B(4563) = 56 Then
               '...
           End If
       End If
  End If

Con esto no quiero decir que lo hagáis así de normal, sólo cuando necesitemos velocidad.
Hice estas pruebas a ver si algún lenguaje más era tonto, pero por ahora sólo es vb6.
Si alguien sabe de otro hacedmelo saber, me interesa mucho.
Dedico este articulo a Karcrack, BlackZero, TheSwash y raul338 por orientarme y ayudarme con los test.

VB.NET tiene una expresion para evitar esto:
Short-Circuiting Logical Operations http://msdn.microsoft.com/en-us/library/wz3k228a.aspx

Más info:
http://en.wikipedia.org/wiki/Short-circuit_evaluation

Espero que al menos a alguien le sirva todo esto. :)

DoEvents! :P
#153
Está mal... algunos carácteres de esa palabreja:
iasxinu
Sólo con la mandíbula desencajada podría pronunciar eso. :laugh:

PD: Por cierto hay que hacer otra sesion de Skype! xD

DoEvents! :P
#154
HAHAHAHAHAHA :xD
¡Dios que fealdad! :laugh: :laugh: :laugh: :laugh:

DoEvents! :P
#155
Bueno, pues la idea es generar una funcion donde ingresemos la longitud de la cadena y te generara una palabra pronunciable.
Por supuesto deben estar contemplados las combinaciones entre dos consonantes.

Ejemplos falsos:

asdoijs
ouughjt
esrah
wilsohc


Ejemplos verdaderos:
hola
chema
llama
nikos
clueim
tefral


Sin límite de entrega, todo vale... :)

DoEvents! :P
#156
Programación Visual Basic / Re: Verificar celdas...
23 Septiembre 2011, 21:41 PM
Perfecto, muchas gracias, que buena idea, no se me había ocurrido. :-*
Lo de mirar todos los pixels no me lo planteo... demasiado tiempo. :-\
¿Alguna idea para verificar este?

Encima es una animación que gira... :xD
Igual podría ser: si no es ningun color en concreto y no es moneda por tanto es molino.

DoEvents! :P
#157
Programación Visual Basic / Verificar celdas...
23 Septiembre 2011, 18:58 PM
Hola buenas, pido vuestra ayuda:
Hay un juego del estilo al biotronic, y al igual que el bioSolver necesito hacer una plantilla que descifre los cuadros que hay debajo.
Para ello pensé hacer 4 GetPixel() por cada celda, si esos cuatro puntos son de un color similar, podré deducir el color de la celda.
El problema es que hay figuras diferentes que no sé como validar:
Este:

O podría confundir estos dos:


¿Alguna idea? ¿Alguna forma mejor de hacerlo?
Tened en cuenta que debe ser algo rápido, se debe actualizar cada 500ms o así... ::)
Igual con el CheatEngine se podría hacer algo, pero a todo el mundo que pregunto me llama loco.
Gracias. :D

DoEvents! :P
#158
Programación Visual Basic / Re: [RETO] Sudoku
23 Septiembre 2011, 16:13 PM
Cita de: madpitbull_99 en 23 Septiembre 2011, 09:27 AM
Las reglas del Sudoku:

Regla 1: hay que completar las casillas vacías con un solo número del 1 al 9.

Regla 2: en una misma fila no puede haber números repetidos.

Regla 3: en una misma columna no puede haber números repetidos.

Regla 4: en una misma región no puede haber números repetidos.

Regla 5: la solución de un sudoku es única.


Reglas explicadas con imágenes.

Ésto tendrá que confirmarlo el autor del reto, si se respetan las reglas o no.
Éso es madpitbull_99, pero como dice raul a veces hay más de una solución válida, a mí me a pasado.
http://es.answers.yahoo.com/question/index?qid=20110327233520AA7q9QG

@BlackZero: Precioso el código, voy a analizarlo. :D

DoEvents! :P
#159
Programación Visual Basic / Re: [RETO] Sudoku
23 Septiembre 2011, 00:39 AM
@Shell
Ok, gracias, ya entendí.



Un ej:
http://sudoku.friko.net/es/

DoEvents! :P
#160
Programación Visual Basic / Re: [RETO] Sudoku
22 Septiembre 2011, 16:53 PM
No, claro que hay datos de entrada.
Entra una matriz así:

Los huecos serán 0 en la matriz de entrada.
Y deberá retornar la matriz que corresponda a la solución.

@BlackZero
¿BackTracking? ¿Puedes explicar qué es? :huh:

DoEvents! :P