Creata il primo ottobre 2003
Aggiornata il 24 marzo 2008
Il mio primo programma in C!
/*
-> Avventura by Stefano Maria
i> 23 febbraio 2001
m> 24 febbraio 2001
m> 2 marzo 2001
m> 22,26 luglio 2001
m> 14 febbraio 2002
m> 29 agosto 2003
m> 5,7,12 settembre 2003
m> 30,31 dicembre 2004
m> 12 gennaio 2005
m> 7,8,9,11,13,24,28 aprile 2005
m> primo maggio 2005
---------------------
*/
#include <stdio.h>
#include <string.h>
#include <exec/types.h>
STATIC TEXT Esco[5]="esco";
STATIC TEXT FraseDigitata[81];
STATIC BOOL EsciDallAvventura=FALSE;
void main()
{
do
{
do
{
printf("Azione>");
gets(FraseDigitata);
}
while (FraseDigitata[0]==NULL);
printf("%s\n",FraseDigitata);
if(stricmp(Esco,FraseDigitata)==0) EsciDallAvventura=TRUE;
else(printf("Digita [esco] per uscire...\n"));
}
while (EsciDallAvventura==FALSE);/*fine ciclo do while/do while cycle end*/
printf("Fine dell'avventura!\n");
}/*fine ciclo main()/main() cycle end*/
Questa prima versione del mio programma in C è visibile se eseguita da linea di
comando, altrimenti la sua attività non è visibile.
L'evoluzione (bacata) del mio primo programma in C!
/*
-> PrimaAvventura by Stefano Maria
d> 3 febbraio 2006 da Avventura
m> 18,19 aprile 2006
m> 22,24 maggio 2006
m> 3,13,23,24,25 giugno 2006
----------------------------
*/
#include <stdio.h>
#include <string.h>
#include <exec/types.h>
#include <intuition/intuition.h>
struct IntuitionBase * IntuitionBase;
struct Library * OpenLibrary(CONST_STRPTR,ULONG);
struct Window * OpenWindow(struct NewWindow *);
struct Window * Finestra;
VOID SetWindowTitles(struct Window *,CONST_STRPTR,CONST_STRPTR);
VOID CloseWindow(struct Window *);
VOID CloseLibrary(struct Library *);
VOID Exit(ULONG);
UWORD XPosFinestra=0;
UWORD YPosFinestra=13;
UWORD XLunFinestra=640;
UWORD YLunFinestra=64;
UWORD YLunMaxFinestra=128;
WORD PennaDettagli=-1;
WORD PennaBlocchi=-1;
ULONG TipoFinestra=
WFLG_SIZEGADGET |
WFLG_DRAGBAR |
WFLG_DEPTHGADGET |
WFLG_CLOSEGADGET |
/*
WFLG_SIZEBRIGHT |
WFLG_SIZEBBOTTOM |
WFLG_REFRESHBITS |
WFLG_SMART_REFRESH |
WFLG_SIMPLE_REFRESH |
WFLG_SUPER_BITMAP |
WFLG_OTHER_REFRESH |
WFLG_BACKDROP |
WFLG_REPORTMOUSE |
WFLG_GIMMEZEROZERO |
WFLG_BORDERLESS |
*/
WFLG_ACTIVATE |
WFLG_RMBTRAP;
/*
WFLG_NOCAREREFRESH |
V36 new Flags which the programmer may specify in NewWindow.
WFLG_NW_EXTENDED |
V39 new Flags which the programmer may specify in NewWindow.
WFLG_NEWLOOKMENUS |
These flags are set only by Intuition.
YOU MAY NOT SET THEM YOURSELF!
WFLG_WINDOWACTIVE
WFLG_INREQUEST
WFLG_MENUSTATE
WFLG_WINDOWREFRESH
WFLG_WBENCHWINDOW
WFLG_WINDOWTICKED
V36 and higher flags to be set only by Intuition:
WFLG_VISITOR
WFLG_ZOOMED
WFLG_HASZOOM
Other window values:
DEFAULTMOUSEQUEUE
*/
TEXT Esco[5]="esco";
TEXT FraseDigitata[81];
BOOL EsciDallAvventura=FALSE;
struct NewWindow NuovaFinestra=
{
XPosFinestra,
YPosFinestra,
XLunFinestra,
YLunFinestra,
PennaDettagli,
PennaBlocchi,
CLOSEWINDOW|
NEWSIZE,
TipoFinestra,
NULL,
NULL,
"Avventura by Stefano Maria",
0,
NULL,
XLunFinestra,
YLunFinestra,
XLunFinestra,
YLunMaxFinestra,
WBENCHSCREEN
};
void main()
{
IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library",0L);
if (IntuitionBase==NULL) Exit(FALSE);
NuovaFinestra.Screen=(struct Screen *)WBENCHSCREEN;
Finestra=OpenWindow(NuovaFinestra);
if (Finestra==NULL)
{
CloseLibrary(IntuitionBase);
Exit(FALSE);
}
SetWindowTitles(Finestra,"Prima Avventura by Stefano Maria","Sintassi: Verbo Seconda parola[ Terza Parola[ Quarta Parola]]");
do
{
do
{
printf("Azione>");
gets(FraseDigitata);
}
while (FraseDigitata[0]==NULL);
printf("%s\n",FraseDigitata);
if(stricmp(Esco,FraseDigitata)==0) EsciDallAvventura=TRUE;
else(printf("Digita [esco] per uscire...\n"));
}
while (EsciDallAvventura==FALSE);/* fine ciclo do while/do while cycle end */ printf("Fine dell'avventura!\n"); CloseWindow(Finestra); CloseLibrary(IntuitionBase); Exit(TRUE); }/* fine ciclo main()/main() cycle end */
}
Questa seconda versione del mio programma in C contiene 3 errori che impediscono la
creazione dell'eseguibile, ed anche se li tolgo ed il mio AMIGA lo crea con successo
, lanciandolo la sua finestra non compare sullo schermo!
la seconda evoluzione (bacata) del mio primo programma in C!
/*
-> PrimaAvventura by Stefano Maria
d> 3 febbraio 2006 da Avventura
m> 18,19 aprile 2006
m> 22,24 maggio 2006
m> 3,13,23,24,25 giugno 2006
m> 22 dicembre 2006
--------------------
*/
#include <stdio.h>
#include <string.h>
#include <exec/types.h>
#include <intuition/intuition.h>
struct IntuitionBase * BaseDiIntuition;
struct Library * OpenLibrary(STRPTR,ULONG);
struct Window * Finestra;
struct Window * OpenWindow(struct NuovaFinestra *);
VOID SetWindowTitles(struct Window *,UBYTE *,UBYTE *);
VOID CloseWindow();
VOID CloseLibrary();
VOID Exit(ULONG);
STATIC UWORD XPosFinestra=0;
STATIC UWORD YPosFinestra=13;
STATIC UWORD XLunFinestra=640;
STATIC UWORD YLunFinestra=64;
STATIC UWORD YLunMaxFinestra=128;
STATIC WORD PennaDettagli=1;
STATIC WORD PennaBlocchi=2;
STATIC ULONG TipoFinestra=
WFLG_SIZEGADGET |
WFLG_DRAGBAR |
WFLG_DEPTHGADGET |
WFLG_CLOSEGADGET |
WFLG_SIZEBRIGHT |
WFLG_SIZEBBOTTOM |
/* WFLG_REFRESHBITS |
WFLG_SMART_REFRESH |
WFLG_SIMPLE_REFRESH |
WFLG_SUPER_BITMAP |
WFLG_OTHER_REFRESH |
WFLG_BACKDROP |
WFLG_REPORTMOUSE |
WFLG_GIMMEZEROZERO |
WFLG_BORDERLESS |*/
WFLG_ACTIVATE |
WFLG_RMBTRAP
/* WFLG_NOCAREREFRESH |
V36 new Flags which the programmer may specify in NewWindow.Flags
WFLG_NW_EXTENDED |
V39 new Flags which the programmer may specify in NewWindow.Flags
WFLG_NEWLOOKMENUS |
These flags are set only by Intuition. YOU MAY NOT SET THEM YOURSELF!
WFLG_WINDOWACTIVE
WFLG_INREQUEST
WFLG_MENUSTATE
WFLG_WINDOWREFRESH
WFLG_WBENCHWINDOW
WFLG_WINDOWTICKED
V36 and higher flags to be set only by Intuition:
WFLG_VISITOR
WFLG_ZOOMED
WFLG_HASZOOM
Other window values:
DEFAULTMOUSEQUEUE */;
struct NewWindow NuovaFinestra=
{
XPosFinestra,
YPosFinestra,
XLunFinestra,
YLunFinestra,
PennaDettagli,
PennaBlocchi,
IDCMP_CLOSEWINDOW|
IDCMP_NEWSIZE,
TipoFinestra,
NULL,
NULL,
NULL,
0,
NULL,
XLunFinestra,
YLunFinestra,
XLunFinestra,
YLunMaxFinestra,
WBENCHSCREEN
};
STATIC TEXT TitoloFinestra[33]="Prima Avventura by Stefano Maria";
STATIC TEXT TitoloSchermo[62]="Sintassi: Verbo Seconda parola[ Terza Parola[ Quarta Parola]]";
STATIC TEXT FraseDigitata[81];
STATIC TEXT Esco[5];
STATIC BOOL EsciDallAvventura=FALSE;
void main()
{
BaseDiIntuition=(struct IntuitionBase *)OpenLibrary("intuition.library",0L);
if (BaseDiIntuition==NULL) Exit(FALSE);
Finestra=OpenWindow(NuovaFinestra);
if (Finestra==NULL)
{
CloseLibrary(BaseDiIntuition);
Exit(FALSE);
}
SetWindowTitles(Finestra,TitoloFinestra,TitoloSchermo);
do
{
do
{
printf("Azione>");
gets(FraseDigitata);
}
while (FraseDigitata[0]==NULL);
printf("%s\n",FraseDigitata);
if(stricmp(Esco,FraseDigitata)==0) EsciDallAvventura=TRUE;
else(printf("Digita [esco] per uscire...\n"));
}
while (EsciDallAvventura==FALSE);/* fine ciclo do while/do while cycle end */
printf("Fine dell'avventura!\n");
CloseWindow(Finestra);
CloseLibrary(BaseDiIntuition);
Exit(TRUE);
}/* fine ciclo main()/main() cycle end */
Questa terza versione contiene solo un errore di compilazione e se lo rimuovo la finestra
non appare ancora sullo schermo!
Qui potete vedere l'AMBIENTE DI SVILUPPO C++ DI STORMC 3.0 all'avvio nel mio migliore
AMIGA emulato sul PC!