Página 1 de 2

Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Vie, 21 Mar 2014, 00:09
por radastan
Bien, necesito feedback para ver si voy bien encaminado. Bajaros este ficherito y leerlo:

http://www.bytemaniacos.com/ficheros/zxspectrum/cursoz88dkbasico.pdf

Necesitaréis estos dos ficheros, con el "SDK megapowa" y el "Z88DK ready to go":

http://www.bytemaniacos.com/ficheros/zxspectrum/cursoz88dk.zip
http://www.bytemaniacos.com/ficheros/zxspectrum/z88dk10.zip

Todavía tengo que terminar el curso con varios ejemplos de juegos, pero con lo que ya hay tenéis suficiente para empezar a hacer vuestros pinitos con poco esfuerzo. La parte de Amstrad CPC la realizaré cuando termine la de ZX Spectrum (la idea es poder hacer juegos en ambos ordenadores sin apenas cambiar nada).

El curso está enfocado al que no tiene ni pajoletillera idea de C, incluso creo que es fácil de seguir para el que no sabe programar, pero si sabéis BASIC u otro lenguaje os ayudará mucho.

¡Feeedback, feedback! tanto cosas buenas como cosas malas, por favor.

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Vie, 21 Mar 2014, 07:49
por son_link
Mañana lo miro, que ahora por la mañana voy a estar liado y por la tarde tengo el curso.

Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Vie, 21 Mar 2014, 15:33
por jrodriguezv
Le he echado un vistazo rápido porque estoy hasta arriba, pero ya lo miraré con calma.

Está muy chulo, orientado a gente que no sepa c para nada. Moola :-)

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Vie, 21 Mar 2014, 18:17
por elborra
Y tamién le echaré un vistazo en profundidad que también estoy hiper liado (ha habido cambios en mi juego; habrá exteriores y otras sorpresas ¡¡maldigo los 128K XD!!)

Sólo me he leído el principio, aunque ya me ha surgido una duda al respecto (sinceramente no se si luego lo aclaras, si es un gazapo o es así y punto XD) comentas que #define LOQUESEA 32 es una variable global ¿no sería una constante?...
Tiene muy buena pinta como el resto de tus tutoriales, así que puedes contar con mi feedback. :corchoneta:

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Vie, 21 Mar 2014, 22:43
por radastan
$this->bbcode_second_pass_quote('elborra', 'Y') tamién le echaré un vistazo en profundidad que también estoy hiper liado (ha habido cambios en mi juego; habrá exteriores y otras sorpresas ¡¡maldigo los 128K XD!!)

Sólo me he leído el principio, aunque ya me ha surgido una duda al respecto (sinceramente no se si luego lo aclaras, si es un gazapo o es así y punto XD) comentas que #define LOQUESEA 32 es una variable global ¿no sería una constante?...
Tiene muy buena pinta como el resto de tus tutoriales, así que puedes contar con mi feedback. :corchoneta:


Variable global -> existe en todas las funciones
Variable local -> sólo existe en la función en la que está definida

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Vie, 21 Mar 2014, 23:10
por elborra
$this->bbcode_second_pass_quote('radastan', 'V')ariable global -> existe en todas las funciones
Variable local -> sólo existe en la función en la que está definida

No, no me refiero al termino global o local, sino a que lo llames variables. De hecho nunca consideré que los #defines fueran siquiera constantes, me lo imaginaba más como sustituciones de un literal por cualquier cosa. Un #define obviamente es algo "global" porque se sustituirá por su "valor" hasta el final del fichero; a no ser que se use #undef. Además una variable por definición debería de poder cambiar de valor en el transcurso del programa ¿no? y este no es tampoco el caso de los #defines.

No se si en z88dk se comportan los #defines de otra manera y por eso te lo señalaba, pero si es como en otros compiladores yo diría que no entran dentro de la terminología de variable ni constante porque son ajenas al programa en sí.

Edito: por ejemplo, si no hay alguna limitación (no he probado nunca esto obviamente), puedes hacer$this->bbcode_second_pass_code('', '#define BUCLE_SUMA for(i=0;i<5;i++) { a=a+b; };')y en cualquier sitio tener$this->bbcode_second_pass_code('', 'char i,a,b;
a=2;
b=1;
BUCLE_SUMA
')

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Sab, 22 Mar 2014, 00:20
por Nightwolf
¡Me he quedado con ganas de mas! :)

Está genial, muy al tema, como debe ser. ¡Sigue, sigue!

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Sab, 22 Mar 2014, 01:08
por antoniovillena
Lo que dice elborra es verdad. No se pueden llamar ni constantes ni variables, el término correcto es macro del preprocesador (o macro a secas). El preprocesador es la primera etapa que ejecuta el compilador, y es una herramienta muy potente si se quiere escribir código rápido sin tener que repetir cosas, o compilación condicional (que un mismo programa use distintas llamadas en Windows que en Linux, por ejemplo).

Para "dar órdenes" al preprocesador se usan directivas específicas, que son esas órdenes que empiezan por #. La más conocida el la #define que crea las macros. Las macros más simples son las que reemplazan una secuencia por otra, pero también se pueden usar parámetros en las macros (a modo de funciones).

Para poner un ejemplo de cómo funciona el preprocesador, si tenemos este código:

$this->bbcode_second_pass_code('', '
#define PI 3.1416

int main(){
printf("PI vale %f", PI); // esto es un comentario
}
')

El preprocesador es una especie de filtro. Simplificando, éste le pasaría al compilador este otro programa. Digamos que ya ha digerido algunas cosas como la expansión de macros o la eliminación de comentarios.

$this->bbcode_second_pass_code('', '
int main(){
printf("PI vale %f", 3.1416);
}
')

Es un concepto que cuesta entender al principio, si no se entiende bien recomiendo hacer el filtrado (transcribir lo que el preprocesador entrega al compilador) mentalmente hasta que te acostumbres.

Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Sab, 22 Mar 2014, 15:35
por radastan
Ok, tomo nota y lo cambio.
Lo mejor será llamar como globales a las que definamos en MAIN y locales a las que se definen en cada subrutina.


Enviao con un esmarfón

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Publicado: Mar, 10 Nov 2015, 23:31
por Lord Raptor
Keda mucho para otro avance del curso ?
Hay mono y me he kedado a medias.... XD
Con un par de cosicas más... el motor ya sería la lesshe !! :corchoneta: