Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

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.

Mostrar Mensajes Menu

Mensajes - nostromo

#61
General Programadores / Concurso De Programacion
01 de Abril de 2005, 12:21:03 PM
 Hay va mi codigo(128bytes contando un 0xA)...



#include<stdio.h>
s,j;main(d){for(scanf("%d",&d);~6&d-3?0:j<d*d;printf("\n%-3d"+(j++%d>0),(s-j%d+d/2)%d*d+s%d+1))s=j%d*2-j/d+d;}


Por cierto, es interesante ver de donde vienen estas formulas: http://mathforum.org/te/exchange/hosted/su...are.OddbyC.html
Creo que deberia haberme puesto a calcular las formulas a mano según la idea del link anterior, simplemente es una rotacion de 45º!!!    <_<

Bueno, que el ganador sea quien sea lo disfrute   (ole)

Un saludo a todos,
#62
General Programadores / Concurso De Programacion
24 de Marzo de 2005, 09:44:57 PM
 
Citarpero entonces que es hacer backtracking?

Es un esquema/patron para resolver problemas a lo bruto. Consiste en probar casi todas las posibles soluciones a un problema hasta encontrar la/s solucion/es correctas.

Citarcomo se hace?

Lo importante es definir el problema y su espacio de soluciones.
Un ejemplo tonto: dados dos numeros x e y. Si 1<=x<=10 1<=y<=10  ¿cuando sumarán x+y=10?
Espacio de soluciones: todos los pares (x,y) con 1<=x<=10 1<=y<=10  ...tendrás que probar las combinaciones...

Se puede hacer recursivamente o sin recursividad, esto no tiene que ver con backtracking. Lo que caracteriza a backtracking es que recorre "un arbol" de soluciones, donde cada nodo es una posible solucion  y puede descartar ramas enteras con lo que acelera algo el proceso.

Citaro con que temas se relaciona para poder buscar y aprender a hacerlo?
Algoritmos.
Libros:
Aho, A.V.; Hopcroft, J.E.; Ullman, J.D.: Estructura de datos y algoritmos. Addison- Wesley, 1988.
- Brassard, G.; Bratley, P.: Fundamentos de Algoritmia. Prentice-Hall, 1998.
- Cormen, Leiserson, Rivest: Introduction to algorithms. MIT Press, 1991.


Un saludo
#63
General / Edevi Magazine #6
10 de Marzo de 2004, 12:15:52 PM
 Felicidades otra vez por la revista, este numero os habeis superado.

Los articulos postmorten son muy bienvenidos de gente de aqui.
El articulo sobre el shareware como alternativa es muy bueno. Muy buena base para que la gente comienze con una alternativa que considero mucho más real que la de ir directo al mercado tradicional.

Un saludo
Nostromo
#64
General Programadores / Guardar Antes De Cerrar
28 de Septiembre de 2003, 08:10:39 PM
 El problema que creo que tienes es que la clase de MFC CFormView llama a DestroyWindow por si sola (dentro de OnClose), es decir que solo te avisa...

Citar
afx_msg void OnClose( );

Remarks

The framework calls this member function as a signal that the CWnd or an application is to terminate. The default implementation calls DestroyWindow

Tienes que tratar de capturar el evento WM_CLOSE a lo bruto(antes de que que lo haga el MFC). Y dentro de este evento llamar a OnClose según te convenga.  Aunque lo dificil es capturar el WM_CLOSE.

Otra opción que puede funcionar es implementar la función virtual CWnd::DestroyWindow  :
virtual BOOL DestroyWindow( );

Y llamar desde ahi a DestroyWindow según sea...

Y la mejor opción es pasarse a C++Builder que ya va preparado para estas cosas :)

Un saludo

Nostromo
#65
General Programadores / Errores Incomprensibles!
16 de Septiembre de 2003, 11:55:51 AM
 Si ambos estan compilados con las mismas opciones puede ser un problema con algun puntero que trate con la pila, es decir con alguna variable local de una funcion. Estas variables locales son las que más cambian al añadir nuevas funciones.

En fin, vigila las variables locales y los punteros. Es una idea.

Un saludo
Nostromo
#66
General / Game Boy Advance Para Palm Os
31 de Agosto de 2003, 03:15:04 PM
 Para pocket pc si hay, echale un vistazo a:

MorphGear

Por otro lado,
Aqui tienes la fuentes de VisualBoyAdvance:
SourceForge VisualBoy Advance

"Solo" hay que hacer un port a palmos....

Es un buen proyecto para quien tenga tiempo y una palm a color. :)

Un saludo
Nostromo
#67
Programación gráfica / Formato Para Tilemaps
25 de Agosto de 2003, 01:48:16 PM
 Ante todo, bienvenido al foro.

Como conseguir un editor de tilemaps.:
1. Utilizas uno de los sistemas de creación de juegos que hay por ahi. Para lo que tendrias que adaptarte al lenguaje que ya llevan implementado estos sistemas, que tiene la desventaja de no adaptarse a todas tus necesidades y de ser más lento .

Otra idea seria utilizar solo el editor de tilemaps de uno de estos sistemas para crear tus mapas e intentar leer los ficheros que crea. Yo desconozco el formato de estos ficheros, ademas tambien tienes la posibilidad nada remota de no adaptarse a tus necesidades.

2. Crear tu propio editor de tilemaps. Esta opción sin duda se adapta a tus necesidades. Lo malo evidentemente es que requiere su tiempo, por otra parte es una buena manera de aprender.


Centrandome en el segundo punto.  Tenemos 2 cosas por hacer, por un lado la herramienta editor de tilemaps y por el otro el juego en si.

Hacer un editor de tilemaps requiere de mucho interface de usuario por lo que te recomendaria utilizar c++builder,delphi o vc.net.

Respecto el lenguaje con el que realizar el juego:
Elegir java por aprender esta bien, para hacer juegos online mediante applets tambien esta muy bien. Para hacer juegos ejecutables me parece un error.

En fin espero que te sean de ayuda mis comentarios.

Un saludo,
Nostromo
#68
General Programadores / Toolbars
23 de Agosto de 2003, 02:32:54 PM
 Me temo que tendrás que hacerlo "a  mano" copiando los ficheros .cpp .h de la barra de herramientas, añadiendolos al proyecto nuevo  y retocando el codigo donde se necesite. El proceso entero es un rollo.

El VC++ es asi. Supongo que el VC.NET mejora este aspecto.

Para otro proyecto que te surja te recomiendo el C++ Builder de Borland para realizar proyectos con mucho interface de usuario.

Un saludo
Nostromo
#69
 Hola Helius, antes que nada felicitarte por la iniciativa de vender tu juego por internet.

Respecto ese problema que tienes:
La mejor manera es que lo pruebes mucho mediante gente que te eche una mano con el betatesting.

Una cosa que te puede servir es añadirle un comando o una combinación de teclas (como si fuera un "cheat") para que se active una funcion de log dentro de tu juego. Lo que principalmente guardaria serian las variables que definen el estado del juego, como si hicieras un savegame pero continuo.
Con esto último podrias pedirle a un cliente tuyo que activara ese log y que intentara reproducirlo y una vez llegado al "cuelgue" que te envie el log.... Segun como sea el cliente esto puede ser una pesadilla para él claro....

En fin,

Un saludo
Nostromo
#70
Off-topic / El último modelo en 1989
18 de Junio de 2003, 06:11:17 PM
                                Astharoth, lo que me paso fue que los 16bits entraron con fuerza y vi que hacer un emulador era una manera de amortizar todas las horas de estudio del viejo cpc  :)

Que maquinas, Que tiempos :)

Mi emulador se llama CPC2PC el caso es que cuando lo hice no pude colocarlo en internet, primero me lo echaron para atras en simtel porque le puse la beta al final del nombre :) y luego no tenia acceso a internet, aparecio publicado en la PC-World Nº102 de 1994 en la seccion de Dominio Publico. Tambien estaba en alguna bbs y en algun Cd-rom de la epoca.

En el emulador de Marco Vieth en la documentación esta mi nombre por ahi....  ( Esta como "en desarrollo desde 1993" o algo asi  :-?   XDDDDD)

El caso es que es para Ms-Dos y esta echo con un dos-extender que hice en aquella epoca para emular las jodias commutaciones de memoria con la paginacion del 386 XDDD
Conclusion, entre trabajos y otras cosas que he estado haciendo no he sacado tiempo para portarlo a windows/linux.  

Es curioso, luego viendo la lista de emuladores de cpc si que es verdad que me pica el gusanillo...

Saludos

Nostromo                                
#71
Off-topic / El último modelo en 1989
18 de Junio de 2003, 05:03:05 PM
                                Snif, Snif.... yo tenia un 6128.... con la unidad de disco de 178kb por cara... y 64Kb más de ram ..... que lujo!!!

Citar

Graficos (hubo varios modelos "compatibles entre si" pero el mas extendido en España) UM-6845R (como curiosidad, SI es el chip base de las CGA's).
3 Modos,
160x200 (16 colores)
320x200 (4 colores)
640x200 (2 colores)

A elegir de una paleta de 32 colores!!!!!

El chip grafico al que se accedia era uno propio que llamaban el "Gate Array" y hacia de interface entre el bus y el 6845

me duro mucho la nostalgia!!!! hice un emulador en el 93 :)  

Un saludo
Nostromo                                
#72
General Programadores / Una Macro
18 de Junio de 2003, 04:46:51 PM
                                SHORT GetAsyncKeyState(int vKey)

Le pasas una tecla virtual (por ejemplo VK_LEFT)
Y te devuelve en el bit más significativo un 1 si la tecla esta pulsada.
El 0x8000 es 8000 en hexadecimal
del numero binario 1000 0000 00000000 00000000 00000000 como puedes ver el bit más significativo, el de la izquierda esta a 1....

El AND como has intuido es para utilizar una mascara(0x8000).... la macro sirve para comprobar si una tecla esta pulsada o no.... devuelve true en caso afirmativo

funciones normales - funciones inline:   (explicación a lo bruto)

Si tenemos la funcion

int lafuncion(int a,int B)
{
  return a + b;
}

// y la llamamos aqui
.........
x = lafuncion(y,z); // Sumamos los numeros
.......

Si coges un compilador y le dices que en vez de codigo objeto te genere un listado en ensamblador te genera algo asi:

lafuncion:
   mov ebp,esp
   mov eax,[ebp+4]
   add eax,[ebp+0]
   ret

............
  push z
  push y
  call  lafuncion    ; sumamos los numeros
  add esp,8  
  mov x,eax
............

Es decir, en una funcion normal,  los parametros los pasa a traves de la pila, apila parametros , hace la llamada , los utiliza , vuelve y desapila....

Si utilizas inline... seguramente con suerte el compilador no pasa los parametros por pila y tampoco realiza la llamada sino que directamente haria la suma tal que asi:

   mov eax,y             ; sumamos los numeros
   add eax,z
   mov x,eax

Con lo que se ahorra toda la llamada y el papeleo de la pila en el mejor de los casos. Ahora bien, siempre que se llame a esta funcion el compilador te metera el codigo de la funcion en el lugar donde la llamas... por lo que si llamas mucho y la funcion ocupa bastante te ocupara mucho el codigo.........

Un saludo
Nostromo                                
#73
General / ¿Para qué se matricula la gente en informática?
18 de Junio de 2003, 01:04:04 PM
                                Mars Attacks:
jejejeje  :jaja:  Bueno, es algo que hago de vez en cuando más por lo divertido y entre gente que me vaya a entender claro  :)

A mi que me gusta pensar en los modelos matematicos y graficos del mundo que nos rodea me pongo a pensar cuando miras cualquier cosa ¿como se modela esto? ¿con esta ecuación diferencial se podria? ¿si, pero podria hacerlo en tiempo real? etc.....

El colmo para mi fue cuando hice un engine para un juego tipo doom hace 10 años, estubiera donde estubiera hacia el mapa de la habitación, del recinto... la ventana... "a ver, esto son 4 sectores, 10 walls, este wall es transparente con desnivel superior, este otro es una textura con alpha... aqui hay un exterior con textura mapeada en cilindrico..." en fin, la verdad es que llego a preocuparme un poco  :-?  Sobre todo porque la tecnologia de entonces tampoco daba para mucho y ver mapas del doom por la calle no era sano.  :)

Un saludo
Nostromo                                
#74
General / ¿Para qué se matricula la gente en informática?
18 de Junio de 2003, 11:51:08 AM
                                Yo soy un caso raro en este tema porque empece la universidad hace 10 años alla por el 93, entre porque ya me gustaban muchos temas, graficos, cpus, programación etc.... El caso es que sali a principios del segundo año y el año pasado volvi a matricularme(de hecho ahora mismo deberia estar estudiando  :jaja:   )

Sali de la uni embarcandome en un megaproyecto de juego.... que ha marcado mi existencia...

En fin, Entonces......... como ya he vuelto a entrar a la uni  puedo votar dos veces ¿no?  8)

La segunda vez que entre ha sido porque me sigue interesando mucho la "computer science".(que suena mejor que informatica  :ojo:  ) y tambien porque el titulo "abre puertas"...

Desde mi experiencia, he trabajado en muchas cosas en esto de los ordenadores y a veces te encuentras en la calle y el titulo es un seguro.... el año pasado no pude acceder a ciertos trabajos por no tener un titulo.
En fin, son cosas que con el paso del tiempo entiendes(asumes),  entiendes porque tus padres te machacaban con el bucle:
while( true )   {  cout << "tu sacate el titulo"; }

Los chicos/as que hay en mi clase, algunos tienen experiencia en programar y les gusta, otros estan alli porque les gustaba "la informatica", otros muchossss por hacer algo. Ninguno que yo sepa por hacer juegos. Pocos, pocos he conocido que les guste el tema de los juegos.

"Solidaridad": Creo que eso es algo que tiene que ver con el ritmo de la sociedad, cada vez es más competitiva, hay más gente, y menos espacio... esto se va calando en estas generaciones que me siguen y algunos se lo toman muy en serio, hay un aire "elitista" desmedido y esos casos(que de momento hay pocos) no suelen ser "elite", más bien un "pertenezco a un grupo superior" y un continuo dialogo interno "ves lo mucho que valgo ¿no? si claro ¿seguro? si, si". En fin, temas a tratar por la psicologia....

"Sobreinformación": Lo que mi generación anhelaba era poder conseguir ese libro, o algo de información de aqui o de alla.... Como habia poca podias ir asimilando los conceptos poco a poco,  ahora hay información de absolutamente todo, demasiada.... eso hace que la gente no pueda "elegir" con facilidad porque no se puede digerir todo... entonces se apuntan directamente a "corrientes" que ve, y todo esto sin poder comparar... es una mezcla entre tener conocimientos y tener desinformación.

Bueno, se me ha ido la mano un poco..... mejor me voy a estudiar un poco  :jaja:

Un saludo a todos,
Nostromo                                
#75
                                Hola a todos,

No dejo de sorprenderme cada vez que veo como la gente que esta empezando lo primero que se le pasa por la cabeza es meterse a hacer un proyecto con graficos 3d. Y no es que me parezca mal que la gente quiera hacer sus pinitos con 3d, es que sencillamente entender la programación grafica en 3d es un tema harto complejo como para usarlo en la introducción a la programación de juegos.

Y es más que sorpresa ( seguro que a más de uno que lleve bastante tiempo con estos temas me entiende ) , porque lo que yo veo es gente cogiendo velocidad y que va derecha hacia un muro de acero de grosor significativo.

Incluso de la gente que llega a manejarse con las 3d, con muchas horas de trabajo, de esa gente un altisimo porcentaje se queda en un escenario ( o varios ) estatico por el que mover la camara de un lado al otro con algun que otro efecto de iluminación y ya esta. ¿y es eso un juego? Evidentemente no.

Dentro de este mundillo existen diferentes niveles, a saber:
1. Aprendiz: Aun esta iniciandose en la programación.

2. Aficionado: Sabiendo programar hace algunas cosillas, principalmente graficos. Esta aplicando sus conocimientos base de programación.

3. Amateur: Comienza a programar cosas algo más grandes, aqui se empieza a querer hacer juegos. Empieza a ver que hay más cosas aparte del lenguaje.

4. Amateur Experto: Comienza un proyecto para realizar un juego, normalmente contando con otra gente. Aqui se empieza a madurar la idea que uno tiene de realizar un juego, se empieza a ver todos los detalles ocultos inherentes al desarrollo de un juego. Al final de esta fase se esta dando el salto de "vamos a poner este efecto, y este, y esto tambien etc"  a "vamos a concretar lo que queremos hacer y hacerlo".

5  Profesional: Es un experto en la programación de juegos siempre dentro de una especialidad: 2d, 3d, sonido, IA, gestion de recursos, diseño, utilidades, red...  Se involucra en proyectos que se finalizan o trabaja en una empresa del sector. Tiene claras cuales son sus posibilidades como individuo o como grupo.


Bueno, tan solo ha sido una primera clasificación. Volviendo al tema inicial lo que quiero decir es que:
A.- Por un lado existen muchos puntos a tratar en el desarrollo de un juego y diferentes niveles dentro del  aprendizaje de este "arte".
B.- Y por otro lado existen otras cosas aparte de las 3D y las mil y una APIs("engines" quieren llamarse muchas) que pululan por ahi.

Me parece que lo más correcto para alguien que empieza es desarrollar su capacidad para programar y empezar a hacer pinitos con DirectX y dentro de este con DirectDraw. Y poco a poco, una vez que se tenga cierta soltura comenzar a pensar en otras cosas dentro de la programación grafica (no hay necesidad de meterse en las 3d) , el sonido y la logica del juego.

Una buena base matematica y fisica es importante para ir avanzando en según que temas.

Quizas deberiamos desarrollar una ruta a seguir para la gente que empieza, donde ir poniendo la buena bibliografia sobre cada tema. Creo que hay libros en español sobre la iniciación a la programación de juegos, no se si alguno merece la pena para iniciarse...

En fin, creo que me he extendido demasio... :D

Un saludo a todos.                                





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.