|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Geo
Páginas: 1 ... 24 25 [26] 27 28 ... 41
626
« en: Miércoles 2 de Agosto de 2006, 05:57 »
¿Es tu primer post y ya quieres que hagan cosas por ti? En serio, algo así lo haría si lo pidiera alguien con más tiempo en los foors (y seguro que no lo van a pedir  , bueno, no sea que ahora se les ocurra  ). Ya puestos, algo fácil es, inicializa el array en 0, haz un ciclo que recorra todas las cartas, en cada iteración un ciclo interno que elija una posición al azar y que termine cuando encuentre una posición vacía, en esa posición vacía colocas la carta en turno. Saludos, JJ (Geo).
627
« en: Miércoles 2 de Agosto de 2006, 05:50 »
Nota : Al emular la libreria conio.h no me compilas los programas excepto si lo pongo en el templata que puse para la libreria, como puede hacer para que funcione solamente poniendo en cualquier templata #include <conio.h> ??? Bueno saludos y el foro esta de 10 Si sólo te funciona con el Template muy probablemente sea porque en los otros programas no estás enlazando con la librería (es que no pones el error o los problemas que te muestra Dev-C++), checa en las opciones del enlazador, allí verás la librería con la que tienes que enlazar tus demás programas para que funcionen. Sobre lo de la emulación, busca aquí en este foro, ya en otras discusiones se han colocado enlaces a alternativas, o a ver si alguien más tiene una mejor idea  . Saludos, JJ (Geo).
628
« en: Martes 1 de Agosto de 2006, 16:42 »
¿Por qué no pruebas con el paquete ya preparado para Win32/XP en lugar de tratar de compilar?
Saludos, JJ (Geo).
629
« en: Domingo 30 de Julio de 2006, 23:20 »
Tienen razón amigos, un juego es complicado y más lo es el involucrarse de lleno y seriamente.
Sin embargo, la propuesta de Amadeu me parece sincera y con buena intención, ojalá tenga suerte y alguien se una a su proyecto (que también, ojalá les vaya bien).
¡Suerte y ánimo!
Saludos, JJ (Geo).
630
« en: Viernes 28 de Julio de 2006, 01:44 »
Un array o "arreglo" es como un contenedor de X elementos del mismo tipo. Por ejemplo, para manejar diez números enteros podrías declarar un array de enteros así: int array_de_enteros[ 10 ];
Donde la variable array_de_enteros es el nombre del array y puedes acceder a los números enteros mediante un índice, en este caso tendríamos 10 índices que irían de 0 a 9 (los arrays se indexan desde 0), por ej., para acceder al primer y al tercer número del array podríamos usar: int primer_elemento, tercer_elemento; primer_elemento = array_de_enteros[ 0 ]; tercer_elemento = array_de_enteros[ 2 ];
Ahora, array_de_enteros es un array estático, esto se refiere a que nosotros hemos expresado explícitamente al momento de compilar que contendrá 10 elementos, y no podemos almacenar más que esos 10 espacios que hemos reservado. Si deseamos manejar un array que cambie de tamaño o pueda almacenar un número indeterminado (indeterminado al momento de compilar) de elementos, necesitamos hacer uso de la memoria de manera dinámica, creando arrays dinámicos. Estas páginas te pueden servir: http://www.aprendeaprogramar.com/course/view.php?id=3http://c.conclase.net/curso/index.php?cap=010Saludos, JJ (Geo).
631
« en: Jueves 27 de Julio de 2006, 21:54 »
¿n números? No entiendo muy bien el contexto bajo el que usarás n números, pero si necesitas tener varios números en memoria sería con un array, puedes usar un array dinámico y limitar a un máximo de números, o con un array dinámico y trabajar con cuantos números desees.
Saludos, JJ (Geo).
632
« en: Jueves 27 de Julio de 2006, 19:03 »
Por nada  . Aprovechando, me gustaría comentarte sobre el código, siendo pequeño no hay problema, pero una opción práctica sería que declararas al inicio las direcciones de los puertos, para no tener que escribirlas en todo el código, algo como: #define PTO_B 0x37b #define PTO_C 0x37c y en tu programa usar PTO_B y PTO_C  . Sólo un comentario, y gracias por compartir el código, puede servirle a alguien  . Saludos, JJ (Geo).
634
« en: Jueves 27 de Julio de 2006, 02:31 »
Supongo que para disminuir el número de aplicaciones/usuarios de PHP/Apache  . Saludos, JJ (Geo).
635
« en: Miércoles 26 de Julio de 2006, 19:04 »
¿Que es lo que no sale? Lo mismo (sólo para remarcar  ). Saludos, JJ (Geo).
636
« en: Miércoles 26 de Julio de 2006, 00:06 »
Si son de distinto tipo no los puedes poner en un array, un array es un arreglo de datos todos del mismo tipo.
Lo que te podría funcionar, es que te crearas una estructura en la que tengas el nombre y el tamaño como elementos, ya luego puedes crear un array de estas estructuras.
Por otro lado, el miembro d_name es un arreglo de chars (una cadena), para poder copiarlo tendrás que reservar la memoria necesaria, no puedes simplemente usar una asignación =.
Saludos, JJ (Geo).
637
« en: Martes 25 de Julio de 2006, 21:53 »
¿Para cuándo la próxima edición amigo?  . Saludos, JJ (Geo).
638
« en: Lunes 24 de Julio de 2006, 17:36 »
Saludos, con motivo que Geo me envio su programa con WxWidgets y C++ y me lo paso en versiones linux y windows y funciono OK, me propuse a revisar mejor lo del proyecto Mono asi que trate de ejecutar mis 2 proyectos del reto hechos en C# en un linux ubunto y no me funciono :'(...
la razon resulta que el runtime de mono en el momento solo soporta hasta C# 1.1, el soporte para C# 2.0 aun no esta completo y desde luego mis programas se compilaron con C# 2.0.
Asi que decidi instalar el monodevelop en linux ubuntu , cree un proyecto con mis fuentes de la libreria que hice y la compile... compilo perfecto!!!
Despues procedi a compilar los dos proyectos que hice para el reto, el extra y el de la entrega, el Extra compilo perfecto y funciono perfecto , pero el del reto no porque utiliza cosas de C# 2.0, pude haber instalado el gmcs ( el compilador de mono para c# 2.0) pero no porque eso implicaria invertirle mas tiempo, sin embargo vi la documentacion y verifique que el unico error por el que no compilabara ya esta soportado en C# 2.0 para mono.
Lo mas interesante fue que coji mi libreria y el aplicativo compilado en linux ubuntu con C#1.1 y me lleve el ejecutable tal como se genero en linux y me funciono en windosw XP sin hacerle nada ya que al tener en windows XP instalado el runtime del .net framework 2.0 tengo soporte para todas las versiones anteriores de c# .
Hice la prueba invertida, busque en mi pc algunos proyecto antiguos que tenia de C# 1.1 , un hola mundo y otra aplicacion de consola, y me lleve los exe tal cual a linux ubuntu... funcionaron de inmediadto... de maravilla Jeje, se me olvidó comentarte  . Cuando me pasaste tu código, lo compilé en Ubuntu instalando monodevelop, la librería compiló sin muchos problemas, el problema fué cuando intenté con tu aplicación principal, chequé documentación y versiones, no recuerdo si era algo con Windows.Forms (y también con las características del 2.0), así que ya no le busqué (te repito, no sé C# aunque poco a poco me voy metiendo  ). Es muy común que en los repositorios no cuentes con las últimas versiones de algún programa/librería, ya que pasan por un proceso de "candidato->estable", aunque hasta ahora desconozco el proceso real de integración de un paquete a Ubuntu y a Debian. Lo de tu ejecutable que funciona en Windows, era una de las cosas que me preguntaba pues, cuando compilé con mono, vi que le agrega la extensión .exe a los programas, chequé el formato del ejecutable resultante y dice ¡ejecutable de Windows  ! Saludos, JJ (Geo).
639
« en: Domingo 23 de Julio de 2006, 05:26 »
Yo usaría una variable global (no he programado una aplicación con la WinAPI), y para obtener el nombre del archivo mediante un diálogo: GetOpenFileName FunctionSaludos, JJ (Geo).
640
« en: Domingo 23 de Julio de 2006, 05:15 »
Muchos aquí lo leerán sin problemas  . Igual, podemos ir por párrafos y lo terminamos pronto. With the ease of installation, maintenance, and use of many recent Linux distributions, such as Ubuntu and Fedora, some are left wondering why Linux still isn't more widespread. Here's my theory.
Con la facilidad de instalación, mantenimiento y uso de varias distribuciones recientes de Linux, como Ubuntu y Fedora, algunos todavía se preguntan porqué Linux no es más ampliamente utilizado. Esta es mi teoría. First, the home computer. People at home generally want to use an OS compatible with what they use at work. Linux isn't at work, so it isn't at home. Additionally, you can't easily play many commercial games on Linux. An overwhelming majority of retail PC games are released for Windows only. Those PC games that are also released for other operating systems are usually released for Windows and MacIntosh. It's rare that a retail PC game is released for Linux.
Primero, la computadora en el hogar. En sus casas, la gente generalmente prefiere utilizar un SO compatible con lo que hacen en su trabajo. Linux no está presente en el trabajo, por tanto tampoco en casa. Además, muchos juegos comerciales no son fácilmente jugables en Linux. La inmensa mayoría de juegos para PC son liberados solo para Windows. Aquellos juegos que también son liberados para otros sistemas normalmente son liberados para Windows y Macintosh. Es poco común que un juego comercial sea liberado para Linux. But the primary reason that more home users aren't on Linux is because they don't use Linux at work. So the work environment is the root of the problem. As a network administrator, there's one and only one reason that I've never experimented with Linux on the desktop: Microsoft Exchange. The suits love Exchange. They don't love open source groupware that imitates Exchange. And since the suits sign my paycheck, I use it. In fact, at my current place of employment, Exchange is forced on us by the parent organization. So I don't even have the choice of changing.
Pero la razón principal por la que la mayoría de usuarios no usan Linux en su hogar es porque no lo usan en el trabajo. Por lo que la raíz del problema es el ambiente en el trabajo. Como administrador de redes, hay una y solo una razón por la que nunca he experimentado con Linux en mi PC de escritorio: Microsoft Exchange. (Hasta aquí llegué  ). Now, I know what you're thinking -- Evolution works with Exchange. Well, no, it doesn't. Evolution connects to Exchange via Exchange's Outlook Web Access functionality. The result is this:
* Evolution is significantly slower than Outlook. * Evolution can't engage in calendar sharing or look at public folders in an easy-for-the-lay-person or intuitive manner. * Evolution is necessarily limited in functionality in all the same ways that Outlook Web Access is limited in functionality. This is doubly crippling since certain Outlook Web Access features are available only to Internet Explorer clients.
And of course, Wine consistently fails to provide the ability to run Outlook (the single most important program that should work on Wine). Yes, Outlook 97 works. Nobody wants to run Outlook 97, OK? It's nearly a decade old, for crying out loud.
So, in my opinion, Linux will never be mainstream until Evolution or some other email client offers full-fledged Exchange compatibility via a real MAPI connection (not OWA) with all the same features and functionality of the current (or next-closest-to-current) version of Outlook.
It baffles me as to why more attention isn't paid to this issue. Full Exchange compatibility from the Linux desktop would go a long way toward more organizations -- and therefore home users -- adopting Linux. And to those conspiracy theorists who say that home users don't use Linux because Microsoft strongarms OEMs and retailers into selling only Windows computers, I say this: OEMs and retailers sell Windows PCs because most consumers would not buy a Linux computer, for the reasons I've already stated.
641
« en: Jueves 20 de Julio de 2006, 17:54 »
Una cosa, ¿con qué lenguaje estás trabajando ?
Estoy usando VB.Net.
Jaja, a ver si pongo más atención a los títulos en los nicks  .
642
« en: Jueves 20 de Julio de 2006, 17:43 »
He resuelto lo del padding despues de tanto buscar en internet jejee
Mi error fue que leia los byte del padding despues de cada pixel y se leen despues de cada linea horizontal. bueno asi me salio a mi jeje...
ahora el problema que tengo es con el ancho y alto de la imagen
por ejemplo cuandpo leo los 3 bytes del ancho tengo lo siguiente: 70, 0 ,0 Aqui no hayproblema el ancho es de 70...
Pero cuando me regresa 70, 2, 0 Ahi si no se como se calcula el ancho...... Alguna idea de como se calcula???
Imagino que ustedes leen los 3 byte en una variable de un tipo que soporte los tres byte y no en un arreglo y al leerlo ya les da el ancho sin tener que calcular pero pues yo leo 3 bytes en un arreglo y no tengo idea de como se calcula . Como dice Juank, el ancho es un entero de 4 bytes (un DWORD en la WinAPI), si usas fread puedes fácilmente leer esos 4 bytes en una sola operación de lectura. Si lo estás haciendo byte a byte, toma los 4 bytes y únelos con algo como: DWORD hiword = 0xaabb; DWORD loword = 0xccdd; DWORD resultado = ( hiword << 16 ) + loword; // resultado = 0xaabbccdd;
Aquí lo hice con dos variables de 2 bytes, se "unen" para formar una de 4 bytes, puedes hacer algo similar con los 4 bytes que lees del archivo y representan el ancho de la imagen. Una cosa, ¿con qué lenguaje estás trabajando  ? Saludos, JJ (Geo).
643
« en: Jueves 20 de Julio de 2006, 17:29 »
Instala gcc, g++, glib* y ld... por eso no me gusta Ubuntu Ja, si basta con un $sudo aptitude install build-essential
Y ya está. Sin descargar nada, todo está en el disco de instalación. Saludos, JJ (Geo).
644
« en: Miércoles 19 de Julio de 2006, 18:43 »
Tiene razón Juank, aunque hasta ahora todos los bitmap de 24 bits que he encontrado empiezan en ese byte (las cabeceras son siempre de 54 bytes). Sólo algunos detalles que recordar: - Las componentes están en orden BGR (azul, verde, rojo).</li>
- La imagen normalmente está "de cabeza", es decir, la última fila de información en el archivo es en realidad la línea superior de la imagen. Según la documentación que leí, esto lo determina el signo de la altura de imagen (dato leído del archivo), si la altura es negativa, la info de imagen está "bien", si la altura es positiva, la imagen está "de cabeza" y hay que invertirla. Aquí, comento que tampoco he encontrado una imagen en la que la altura sea negativa, y cuando yo intenté guardar una imagen así, no la pude ver en algunos programas
.</li> - Cuando una línea no tiene un número de bytes divisible entre 4, tiene bytes "de relleno", en el caso de la imagen 5x5 que mencionas, la info de imagen en el archivo estaría así:
BGRBGRBGRBGRBGRU BGRBGRBGRBGRBGRU BGRBGRBGRBGRBGRU BGRBGRBGRBGRBGRU BGRBGRBGRBGRBGRU
Cada letra es un byte, B, G y R representan componentes de color, y U es un byte de relleno para que la línea tenga un número de bytes múltiplo de 4 (16, en este caso).</li>
Saludos, JJ (Geo).
645
« en: Miércoles 19 de Julio de 2006, 05:59 »
Gracias por el comentario y por la página, voy a buscar allí  . Saludos, JJ (Geo).
647
« en: Martes 18 de Julio de 2006, 17:17 »
Qué tal amigos, estoy actualizando un pequeño script con PHP y estoy pensando en incluir una opción que permita seleccionar el idioma de la interfaz.Tenía pensado guardar los textos en archivos .php, uno por cada idioma, y colocar allí las variables con los textos. Ahora, estoy buscando si existirá por allí alguna clase o librería que permita trabajar con traducciones, al estilo de gettext, la cual me gusta mucho, pero en mi caso me gustaría trabajar solo con archivos de texto (es decir, sin compilar), ya que entre los textos no se encontrarán sólo mensajes del sistema, sino mensajes que puedan ser personalizados por el administrador. Por ahora tengo algo como: $strErrorFileNotFound = "File not found"; $strGoBack = "Go back"; $strSend = "Send";
y probando también he usado: $str[ 'ErrorFileNotFound' ] = 'File not found'; $str[ 'GoBack' ] = 'Go Back';
¿Conocen una mejor opción? Como dije, me encantaría algo al estilo de gettext pero que trabajara con archivos de texto, no compilados. Saludos, JJ (Geo).
648
« en: Martes 18 de Julio de 2006, 06:00 »
El primer ciclo for es muy probable que te cause problemas, pues si tu matriz es [alto][ancho], el indice de la última fila es alto - 1, y tú estás tratando de acceder a la última fila con el índice alto. for(y=alto; y > 0; y--) { for(x = 0; x < ancho*3; x++) cargarMatrizBMP(y-1,x,fgetc(arch),bmp); for(x = 0; x < bytesRelleno; x++) tmpByte = fgetc(arch); }
Como lo pones, me parece que estás guardando cada componente de color (1 byte) en un COLORREF (dword, 4 bytes), lo cual me parece un desperdicio pues bien podrías guardar las tres componentes de un pixel en un COLORREF. Porque, ahora habría que ver cómo estás pintando la matriz al HDC  . Lo más probable es que estés pintando solo rojo porque sólo estás estableciendo la componente roja de tus COLORREF  . Tal como está tu código, creo que tu matriz podría ser de unsigned chars[ alto ] [ ancho * 3 ] y pintarla así: unsigned char azul; unsigned char verde; unsigned char rojo; COLORREF color; for ( y = 0; y < alto; y++ ) { for( x = 0; x < ancho; x++ ) { azul = matriz[ y ] [ x * 3 ]; verde = matriz[ y ] [ x * 3 + 1 ]; rojo = matriz[ y ] [ x * 3 + 2 ]; color = RGB( rojo, verde, azul ); SetRGB( hdc, x, y, color ); } }
Otra opción podría ser que tu matriz fuera de COLORREF[ alto ][ ancho ] y llenarla con algo como esto: unsigned char azul; unsigned char verde; unsigned char rojo; for ( y = alto - 1; y >= 0; y-- ) { for ( x = 0; x < ancho; x++ ) { // Por cada punto leemos tres bytes (las tres componentes BGR) azul = fgetc( arch ); verde = fgetc( arch ); rojo = fgetc( arch ); matriz[ y ][ x ] = RGB( rojo, verde, azul ); } // Para cada línea saltamos los bytes de relleno for ( z = 0; z < bytesRelleno; z++ ) { tmpByte = fgetc( arch ); } }
Así, guardas cada pixel (las tres componentes, 3 bytes) en un solo COLORREF que luego podrías pintar más fácilmente  . for ( y = 0... for ( x = 0; x < ancho; x++ ) SetPixel( hdc, x, y, matriz[ y ][ x ];
Saludos, JJ (Geo).
649
« en: Lunes 17 de Julio de 2006, 18:39 »
Estoy teniendo problemas con la matriz de colores que la definí de la siguiente manera:
struct TMatriz{ COLORREF **coords; int maxX,maxY; };
... porque como estoy utilizando SetPixel, que tiene la sintaxis:
COLORREF SetPixel( HDC hdc, // manipulador a contexto de dispositivo int X, // coordenada x del pixel int Y, // coordenada x del pixel COLORREF crColor // color del pixel );
... el programa no logra mostrar el bmp en pantalla, supongo que sera porque la estructura de COLORREF almacena un valor de 32 bits y en el caso del bmp al tener una matriz de COLORREF la memoria se desborda... lo extraño es que no me sale ningún mensaje de error, simplemente ejecuto el programa y no aparece ni la ventana.
Lo que se me ocurrió entonces fue cambiar COLORREF por unsigned char, o sea:
struct TMatriz{ unsigned char **coords; int maxX,maxY; };
y ahora lo que esta pasando es que la imagen se carga en la ventana, pero se esta viendo en color rojo y negro, evidentemente estoy manejando mal los colores RGB, no se si existira alguna forma de convertir un unsigned char a COLORREF o si tendre que hacer una función que haga eso.
La parte de obtener el cabezal y la información del cabezal del archivo bmp está funcionando bien, también he intentado con SetPixelV como me sugirió inforsystem y tampoco me dio resultado. ¿Y cómo realizas la lectura de tu matriz de colores? Si lees directo hacia COLORREF, recuerda que es un DWORD y la información de colores en el archivo está en 3 bytes, no sé si por allí sea el problema. http://msdn.microsoft.com/library/default....colors_8bvm.aspSaludos, JJ (Geo).
650
« en: Domingo 16 de Julio de 2006, 06:41 »
Hola Geo: Te doy un consejo: utiliza la funcion SetPixelV que es mas rapida ¿por que? porque no devuelve un valor COLORREF;
Si necesitas saber como dibujar con funciones independientes a dispositivos ( las funciones que tiene las letras DIB) dimelo y te respondere a la brevedad.
saludos. Jeje, Danielo es quien está trabajando con la WinAPI, yo estoy con wxWidgets  . Lo que tengo: - El programa está "terminado" (falta la "limpieza del código" y lo del archivo de información), abre cualquier bitmap y lo muestra en una ventana. Esto lo hice en Linux (Ubuntu).</li>
- En Windows, me encontré con problemas con la clase wxFFile, se supone que es un "wrapper" para el tipo FILE de C, la usé pues mi intención es aprender bien el manejo de wxWidgets. Entonces, cambié las lecturas con esa clase por fread, logrando que funcionara
. Ahora tengo problemas para mostrar caracteres acentuados (p. ej. Menú ), ya no es parte del reto pero espero me echen una mano en los foros de wxWidgets . (Ya veo que el desarrollo multiplataforma no es sencillo .</li>
Bien, a más tardar en un par de días mando mi programa para Linux  . Saludos, JJ (Geo).
Páginas: 1 ... 24 25 [26] 27 28 ... 41
|
|
|