¿Por qué no funciona?

06/12/2005 - 17:56 por Novato | Informe spam
Hola. Estoy haciendo un juego de hundir la flota con botonés. El caso es que
estoy apunto de finalizarlo pero tengo unos pequeños problemas. Estos son:
1-Primero creo las barcos de la máquina aplicando un número aleatorio y
después dependidendo el número se hace unas cosas. El problema es que no se
porque siempre da el mismo número aleatorio. ¿Por qué pasa? Las declaraciones
de los 8 barcos para el número aleatorio son:
Dim barcos1 As Integer = 119 * Rnd() + 1
Dim barcos2 As Integer = 119 * Rnd() + 1
Dim barcos3 As Integer = 152 * Rnd() + 1
Dim barcos4 As Integer = 152 * Rnd() + 1
Dim barcos5 As Integer = 135 * Rnd() + 1
Dim barcos6 As Integer = 135 * Rnd() + 1
Dim barcos7 As Integer = 174 * Rnd() + 1
Dim barcos8 As Integer = 174 * Rnd() + 1
2-He añadido la opción de música. Para ello he puesto un cuadro de diálogo
abrir y todo lo seleccionado se guarda en un documento de texto con
FileSystemObject. Pero después para abrirlo le paso estas líneas:
Dim FSO As New Scripting.FileSystemObject
Dim Parametro2 As Scripting.TextStream
Dim Lugar As String = Application.StartupPath & "/opciones3.txt"
Dim Temporal
Dim Temporal2 As String
Dim Temporal3
Dim datos
Parametro2 = FSO.OpenTextFile(Lugar, Scripting.IOMode.ForReading,
True, Scripting.Tristate.TristateUseDefault)
Temporal = Parametro2.Read(4)

If Temporal <> "" Then
Temporal = Parametro2.Line - 1
MusicaFondo.currentPlaylist.clear()
For datos = 0 To Temporal
Temporal2 = Parametro2.ReadLine

MusicaFondo.currentPlaylist.appendItem(MusicaFondo.mediaCollection.add(Parametro2.ReadLine))
Temporal3 = Parametro2.AtEndOfLine()
Parametro2.Skip(1)
Next
MusicaFondo.Ctlcontrols.play()
End If
Parametro2.Close()
Todo va bien pero al acabar la primera canción no continua a la siguiente.
¿Me he equivocado en algo?¿Por qué no salta automático a la siguiente línea?
3 - Esta duda ya hace tiempo que la tengo: ¿Como pongo una animación hecha
con macromedia flash?
Muchas gracias

Preguntas similare

Leer las respuestas

#1 Excel el Bard
07/12/2005 - 11:39 | Informe spam
"Novato" escribió en el mensaje
news:
Hola. Estoy haciendo un juego de hundir la flota con botonés. El caso es
que
estoy apunto de finalizarlo pero tengo unos pequeños problemas. Estos son:
1-Primero creo las barcos de la máquina aplicando un número aleatorio y
después dependidendo el número se hace unas cosas. El problema es que no
se
porque siempre da el mismo número aleatorio. ¿Por qué pasa? Las
declaraciones
de los 8 barcos para el número aleatorio son:
Dim barcos1 As Integer = 119 * Rnd() + 1
Dim barcos2 As Integer = 119 * Rnd() + 1
Dim barcos3 As Integer = 152 * Rnd() + 1
Dim barcos4 As Integer = 152 * Rnd() + 1
Dim barcos5 As Integer = 135 * Rnd() + 1
Dim barcos6 As Integer = 135 * Rnd() + 1
Dim barcos7 As Integer = 174 * Rnd() + 1
Dim barcos8 As Integer = 174 * Rnd() + 1
2-He añadido la opción de música. Para ello he puesto un cuadro de diálogo
abrir y todo lo seleccionado se guarda en un documento de texto con
FileSystemObject. Pero después para abrirlo le paso estas líneas:
Dim FSO As New Scripting.FileSystemObject
Dim Parametro2 As Scripting.TextStream
Dim Lugar As String = Application.StartupPath &
"/opciones3.txt"
Dim Temporal
Dim Temporal2 As String
Dim Temporal3
Dim datos
Parametro2 = FSO.OpenTextFile(Lugar, Scripting.IOMode.ForReading,
True, Scripting.Tristate.TristateUseDefault)
Temporal = Parametro2.Read(4)

If Temporal <> "" Then
Temporal = Parametro2.Line - 1
MusicaFondo.currentPlaylist.clear()
For datos = 0 To Temporal
Temporal2 = Parametro2.ReadLine

MusicaFondo.currentPlaylist.appendItem(MusicaFondo.mediaCollection.add(Parametro2.ReadLine))
Temporal3 = Parametro2.AtEndOfLine()
Parametro2.Skip(1)
Next
MusicaFondo.Ctlcontrols.play()
End If
Parametro2.Close()
Todo va bien pero al acabar la primera canción no continua a la siguiente.
¿Me he equivocado en algo?¿Por qué no salta automático a la siguiente
línea?
3 - Esta duda ya hace tiempo que la tengo: ¿Como pongo una animación hecha
con macromedia flash?
Muchas gracias



Hola solo te puedo ayudar en la primera duda.
Por el problema que me has dicho el problema lo tienes en el random. El
objeto random tiene que ser un atributo privado i no una vairable local como
me parece que haces. Tienes que declarar la vaiable i crear el objeto en el
constructor del programa o en el Load del programa. De esta forma creo que
se te arreglara el problema de los numeros aleatorios.
Respuesta Responder a este mensaje
#2 Jorge Serrano [MVP VB]
07/12/2005 - 12:35 | Informe spam
1.- Inicializa previamente la función Random mediante la instrucción:

Randomize


2.- Para abrir un fichero en .NET, te sugiero la siguiente instrucción:

Dim sr As System.IO.StreamReader = System.IO.File.OpenText("C:\Texto.txt")
Dim strLongString As String
Do While sr.Peek <> -1
strLongString = sr.ReadLine
TextBox1.Text = TextBox1.Text & IIf(Len(TextBox1.Text) = 0, strLongString,
vbCrLf & strLongString)
Loop

Esto leerá el fichero línea a línea, por lo que tan sólo deberás poner un
bucle que recorra el fichero y por ejemplo, meter todas las líneas del
fichero en un array y recorrerlo en la ejecución de tu juego.


3.- lo hice una vez pero no recuerdo muy bien como.
Creo que deberás utilizar el control OCX Shockwave Flash. Luego se le pone
algo así como:

ShockwaveFlash1.Movie = ruta_y_nombre_archivo_flash

Creo (de esto si que no estoy nada seguro), que el player de Flash tiene el
control:
http://sdc.shockwave.com/shockwave/...wnload.cgi

También encontrarás más información en (pero es algo antigua):
http://www.macromedia.com/support/f...withflash/

También hay componentes específicos para .NET:
http://www.e-iceblue.com/

Vamos, que en Internet encontrarás más información si buscas un poco.



Espero que te sirva.

Un saludo,

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Novato" wrote:

Hola. Estoy haciendo un juego de hundir la flota con botonés. El caso es que
estoy apunto de finalizarlo pero tengo unos pequeños problemas. Estos son:
1-Primero creo las barcos de la máquina aplicando un número aleatorio y
después dependidendo el número se hace unas cosas. El problema es que no se
porque siempre da el mismo número aleatorio. ¿Por qué pasa? Las declaraciones
de los 8 barcos para el número aleatorio son:
Dim barcos1 As Integer = 119 * Rnd() + 1
Dim barcos2 As Integer = 119 * Rnd() + 1
Dim barcos3 As Integer = 152 * Rnd() + 1
Dim barcos4 As Integer = 152 * Rnd() + 1
Dim barcos5 As Integer = 135 * Rnd() + 1
Dim barcos6 As Integer = 135 * Rnd() + 1
Dim barcos7 As Integer = 174 * Rnd() + 1
Dim barcos8 As Integer = 174 * Rnd() + 1
2-He añadido la opción de música. Para ello he puesto un cuadro de diálogo
abrir y todo lo seleccionado se guarda en un documento de texto con
FileSystemObject. Pero después para abrirlo le paso estas líneas:
Dim FSO As New Scripting.FileSystemObject
Dim Parametro2 As Scripting.TextStream
Dim Lugar As String = Application.StartupPath & "/opciones3.txt"
Dim Temporal
Dim Temporal2 As String
Dim Temporal3
Dim datos
Parametro2 = FSO.OpenTextFile(Lugar, Scripting.IOMode.ForReading,
True, Scripting.Tristate.TristateUseDefault)
Temporal = Parametro2.Read(4)

If Temporal <> "" Then
Temporal = Parametro2.Line - 1
MusicaFondo.currentPlaylist.clear()
For datos = 0 To Temporal
Temporal2 = Parametro2.ReadLine

MusicaFondo.currentPlaylist.appendItem(MusicaFondo.mediaCollection.add(Parametro2.ReadLine))
Temporal3 = Parametro2.AtEndOfLine()
Parametro2.Skip(1)
Next
MusicaFondo.Ctlcontrols.play()
End If
Parametro2.Close()
Todo va bien pero al acabar la primera canción no continua a la siguiente.
¿Me he equivocado en algo?¿Por qué no salta automático a la siguiente línea?
3 - Esta duda ya hace tiempo que la tengo: ¿Como pongo una animación hecha
con macromedia flash?
Muchas gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida