|
Paroliamo!
Paroliamo nasce dal gioco televisivo francese ideato da Armand Jammot col nome Des chiffres et des lettres.
Il gioco ebbe grande fortuna in Francia (dove ancora si pubblicano riviste dedicate) e in molti altri paesi.
Raggiunse anche l’Italia, dove approdò prima su Telemontecarlo poi su Raidue, per la conduzione di
Marco Danè.
Si estraggono 10 lettere da due mazzi di carte (uno contenenti sole consonanti, l'altro sole vocali), e si ha a
disposizione un minuto di tempo per cercare di comporre la pił lunga parola di senso compiuto ottenibile
utilizzando le dieci lettere a disposizione.
Il "Paroliamo" versione Sarasoft consente di replicare il meccanismo televisivo, generando una sequenza a
caso, oppure di utilizzare una propria combinazione a piacere di consonanti e vocali (di lunghezza massima 15
caratteri).
Il programma non replica i meccanismi propri della competizione (cronometro, gara fra giocatori, ecc.) ma
determina tutte le parole valide a partire dalla sequenza di lettere.
La versione originale televisiva prevedeva la validità di sostantivi (esclusi nomi propri), aggettivi
(in qualunque genere e numero), e verbi all'infinito, participio presente e participio passato.
La versione Sarasoft ha invece un dizionario di 705mila parole italiane, contenenti tra l'altro anche nomi propri
e verbi coniugati, con un'estensione quindi molto più ampia rispetto alla versione televisiva.
|
|
|
Contiamo!
Contiamo nasce dal gioco televisivo francese ideato da Armand Jammot col nome Des chiffres et des lettres.
Il gioco ebbe grande fortuna in Francia (dove ancora si pubblicano riviste dedicate) e in molti altri paesi.
Raggiunse anche l’Italia, dove approdò prima su Telemontecarlo poi su Raidue, per la conduzione di
Marco Danè.
Si estraggono a sorte sei numeri da un mazzetto che contiene i numeri da 1 a 10 ripetuti due volte, e uno ciascuno
da 25, 50, 75 e 100. Usando le quattro operazioni aritmetiche elementari bisogna avvicinarsi quanto più
possibile ad un numero "obiettivo" di tre cifre (casuale da 100 a 999).
Il programma estrae casualmente il numero obiettivo (modificabile a piacere, se si vuole) e i sei numeri.
Con una serie di algoritmi, quindi, determina la combinazione di numeri e calcoli per arrivare esattamente al
risultato, oppure per avvicinarcisi il più possibile.
Scritto e compilato in Delphi 2010.
Il sorgente contiene tutti gli algoritmi utilizzati, con commenti sulle parti più importanti degli stessi.
|
|
|
|
ThreadLab
Il programma genera un labirinto casuale, vi posiziona 10 topi in punti a caso, e lo fa percorrere da questi,
ciascuno a velocità diversa e con un colore diverso, finchè non sarà stata coperta l'intera
superficie del labirinto. Durante il percorso dei topi si può interagire con il labirinto, sia col mouse
(rotellina per zoomare, o trascinamento in tutte le direzioni) che con la tastiera (tastierino per spostare il
labirinto, e "+" e "-" per zoomare).
Scritto e compilato in Delphi 2010.
Il sorgente
è ricco di algoritmi (dalla generazione del labirito, al movimento dei topi, alle routine di zoom) e di
commenti. Vengono sviluppati in modo originale anche l'interrogazione di tastiera e mouse, interrogazione resa
sincrona rispetto al thread di movimento dei topi per garantire la massima fluidità nella visualizzazione.
|
|
|
|
|
ThreadSort con uso delle librerie Omnithread Library
Il programma inizializza 4 array e li ordina, contemporaneamente (e graficamente, a video), usando 4 thread di
Quicksort distinti.
Usa le librerie Omnithread 3.02 - scritto e compilato in Delphi 2010.
Il sorgente
è utile per chiunque voglia esplorare il complesso mondo del multithreading. Il programma affronta e risolve
le problematiche relative all'aggiornamento dell'interfaccia utente da parte di più thread, l'ottimizzazione
del disegno sulla form, l'evitare l'accodarsi dell'esecuzione della procedura di aggiornamento, altrimenti richiamata
più volte contemporaneamente da più thread, e l'annullamento forzato e corretto dei thread, se l'utente
preme il pulsante "Annulla" oppure chiude l'applicazione mentre l'ordinamento è in corso.
|
|
|
L'arte della programmazione in 1 Kbyte di memoria
(programmi completi di listato per Sharp PC-1430)
|
|
Stampa di calendari software per Sharp PC-1430 + Sharp CE-126P
|
Programma in basic per stampare calendari mensili, singoli o per gruppi di più mesi o anni.
Si seleziona il mese e l'anno iniziale e si indica il numero dei mesi da stampare.
Il programma implementa la Formula di Zeller per determinare il giorno della settimana corrispondente al primo
giorno del mese. I giorni successivi sono ricavati di conseguenza.
A lato esempio di output e listato.
|
Esempio di risultato
(clicca per ingrandire)
|
Listato
(clicca per ingrandire)
|
|
|
Pasqua e Carnevale software per Sharp PC-1430 + Sharp CE-126P
|
Programma in basic per determinare le date della Pasqua, di Giovedì Grasso e di Martedì Grasso
di un anno a scelta.
Inserire l'anno. Verrà visualizzata a video, per circa un secondo, la data della Pasqua, quindi verranno
stampate su carta le date della Pasqua e di Giovedì e Martedì Grasso.
A lato esempio di output e listato.
|
Esempio di risultato
(clicca per ingrandire)
|
Listato
(clicca per ingrandire)
|
|
|
Labirinti casuali software per Sharp PC-1430 + Sharp CE-126P
|
Programma in basic per generare e stampare labirinti casuali, diversi ad ogni esecuzione.
Mandare in RUN, e attendere che si completi l'elaborazione. Il labirinto verrà quindi stampato.
Questo programma, tra listato e variabili, occupa l'intero kilobyte di memoria della Sharp. Al termine
dell'esecuzione restano appena 33 byte liberi.
Le righe da 20 a 50 inizializzano il labirinto.
La riga 60 stabilisce il punto d'origine per il disegno.
Le righe da 100 a 150 individuano una direzione per il cursore di disegno, se possibile.
Le righe da 200 a 270 si occupano di gestire il caso in cui si sia arrivati in un vicolo cieco,
e fanno tornare indietro il cursore di disegno sui propri passi, fino a tornare all'origine.
A quel punto l'algoritmo termina, al posto del punto di origine viene messo uno spazio bianco
(linea 400) e si procede alla stampa (linea 410).
|
Esempio di risultato
(clicca per ingrandire)
|
Listato
(clicca per ingrandire)
|
|
|
Banner software per Sharp PC-1430 + Sharp CE-126P
|
Programma in basic per stampare dei banner, in verticale, sulla CE-126P.
Le righe da stampare sono memorizzate nelle DATA in formato raster: ogni dato corrisponde ad una sequenza di 8 bit, che verrà stampata su una riga.
Il programma converte in binario i dati, e associa a 3 spazi ogni "0" binario e a 3 "#" ogni "1" binario, col risultato di occupare un'intera riga di stampa (8 bit x 3 caratteri a bit = 24 caratteri, la larghezza massima di stampa della CE-126P).
|
Esempio di risultato
(clicca per ingrandire)
|
Listato
(clicca per ingrandire)
|
|
Rotazione di figure geometriche software per Sharp PC-1500 + plotter Sharp CE-150
|
Programma in basic per plottare figure geometriche ad n lati in rotazione, con diametro crescente, con un ottimo
effetto grafico. Usa le funzioni trigonometriche seno e coseno.
Le variabili:
LA=dimensione del lato della figura (inizialmente = 20)
QL=quanti lati deve avere la figura da plottare (lo inserisce l'utente)
A=ciclo usato per rappresentare una intera rotazione della figura (da 0 a 360° a passi di 20°)
L=ciclo usato per disegnare la figura singola, a step di 360 gradi / numero di lati - ad esempio 90° nel caso di un quadrato
|
Esempio di risultato
|
Listato
|
|
|
Combinazioni di lettere software per Sharp PC-1500 + plotter Sharp CE-150
|
Programma per ottenere tutte le combinazioni di lettere, a partire da una parola data.
Usa un algoritmo particolare, ad alta efficienza e bassissima occupazione di memoria, che trasforma i numeri
corrispondenti alle combinazioni da 1 a 2^n-1 in binario, quindi costruisce il risultato di ciascuna combinazione
con le lettere della parola originale corrispondenti agli "1" della rappresentazione binaria.
Ad esempio: se la parola è "ABCD", di 4 lettere, le combinazioni utili saranno 2^4-1 = 15.
Le rappresentazioni binarie dei numeri da 1 a 15, e le combinazioni corrispondenti, sono le seguenti:
1=0001=D
2=0010=C
3=0011=CD
4=0100=B
5=0101=BD
6=0110=BC
7=0111=BCD
8=1000=A
9=1001=AD
10=1010=AC
11=1011=ACD
12=1100=AB
13=1101=ABD
14=1110=ABC
15=1111=ABCD
|
Esempio di risultato
|
Listato
|
|
|
Plottaggio di una funzione in 3D software per Sharp PC-1500 + plotter Sharp CE-150
|
Algoritmo tratto da un listato per il VIC-20 pubblicato su MC Microcomputer n.14 del dicembre 1982
(leggi), e adattato opportunamente a girare
sotto la 1500.
Esegue il plottaggio in 3 dimensioni della classica funzione trigonometrica: SIN(Q)/Q, con Q=SQR(X^2+Y^2),
nella porzione di piano compresa tra -9,5 e 9,5 sia per X che per Y.
Particolarità interessante della routine: la memorizzazione nell'array A(220) del valore massimo
di ogni Y per ciascun punto X, così da evitare il plottaggio dei punti nascosti.
Il risultato finale, considerando anche la brevità della routine, è davvero notevole!
Il tempo di plottaggio è piuttosto elevato (circa 30 minuti), si potrebbe ridurre leggermente
ottimizzando l'algoritmo, introducendo una nuova variabile in linea 255 per evitare la doppia elaborazione
della radice quadrata.
|
Esempio di risultato
|
Listato
|
|
|
Plottaggio di una sfera software per Sharp PC-1500 + plotter Sharp CE-150
|
Tratto da MC Microcomputer n.14 del dicembre 1982
(leggi) e adattato opportunamente a girare
sotto la 1500. La sfera viene calcolata in tre dimensioni, trasformata in assonometria isometrica, e le coordinate
quindi convertite in 2D per il plottaggio su carta. L'algoritmo, che fa uso intenso di funzioni trigonometriche,
è progettato in modo da occupare la minore quantità di memoria possibile, a scapito della
velocità. I punti infatti vengono calcolati tutti due volte, tanto per i meridiani che per i paralleli.
Il tempo di tracciamento è di circa 50 minuti (su un computer moderno lo stesso algoritmo produce un
disegno a video in circa un decimo di secondo (!!!) ).
Le variabili:
C e D=gli angoli dell'assonometria (30°)
R=raggio della sfera
XC e YC=le coordinate dell'origine (punto centrale della sfera)
|
Esempio di risultato
|
Listato
|
|
Disegno di una funzione in 3D software in Basica
|
Versione in Basica per pc dell'algoritmo tratto da un listato per il VIC-20 pubblicato su MC Microcomputer n.14 del
dicembre 1982 (leggi).
Analogamente alla versione per Sharp PC-1500, esegue il plottaggio in 3 dimensioni della stessa funzione
trigonometrica, e include l'ottimizzazione del calcolo della funzione ; la maggior risoluzione a video (320 pixel)
ha richiesto l'aumento della dimensione dell'array che tiene traccia delle linee nascoste.
|
Esempio di risultato
|
Listato
|
|
|
Disegno di una sfera software in Basica
|
Tratto da MC Microcomputer n.14 del dicembre 1982 (leggi)
e adattato per il basica a e la grafica cga (320x200). La sfera viene calcolata in tre dimensioni, trasformata in
assonometria isometrica, e le coordinate quindi convertite in 2D per il disegno a video. I cicli sono in gradi
sessagesimali, poi convertiti in radianti per l'elaborazione delle funzioni trigonometriche in basica.
Le variabili:
C e D=gli angoli dell'assonometria (30°)
R=raggio della sfera
XC e YC=le coordinate dell'origine (punto centrale della sfera)
|
Esempio di risultato
|
Listato
|
|
CAP, comuni e localitą italiane ed estere oltre 10 mila referenze online, e in continua estensione
Per accedere dal proprio pc ad un enorme archivio di località italiane ed estere, da usare per la
compilazione di schede anagrafiche, indirizzi, buste, ecc.
Salvare il file sul desktop,
quindi avviarlo.
Digitare alcuni caratteri per cercare una località e premere invio per confermare.
Verranno mostrate tutte le località corrispondenti, che si potranno ordinare alfabeticamente, per CAP,
regione, provincia, codice ISTAT, o prefisso telefonico.
L'archivio delle località comprende oltre 10 mila referenze, ed è in continua crescita.
Potete contribuire anche voi all'estensione dell'archivio, aggiungendo località qualora non ci fossero,
oppure modificando o cancellando quelle esistenti, qualora doveste riscontrare eventuali errori nel nome, CAP,
provincia, o doveste trovare località duplicate.
Note:
1) per poter usare questo software è necessario avere una connessione internet attiva ; l'archivio delle località
è online
2) la modifica e la cancellazione delle località non viene fatta in tempo reale, ma ci viene sottoposta,
poi saremo noi ad approvare la cosa; l'inserimento di una nuova località, invece, avviene immediatamente.
|
|
|
|
|
UnrealSpeccy su Maximus Arcade integrazione dell'emulatore nel frontend
UnrealSpeccy è l'unico
emulatore di Sinclair ZX Spectrum che si presti ad essere usato nei frontend per cabinato. E' l'unico, infatti,
che consenta di rimappare l'intera tastiera del pc verso gli assi/pulsanti dei joystick, emulando anche i
dispositivi propri dello Spectrum (ad esempio il joystick Kempston).
Questi sono i passi necessari:
1) dopo aver installato UnrealSpeccy, scaricare e salvare nella cartella di UnrealSpeccy il file setkeyblayout.exe
2) creare nella cartella di UnrealSpeccy un file run.bat contenente:
@echo off
setkeyblayout.exe %~n1
unreal.exe %2
taskkill /F /IM unreal.exe
3) editare il file unreal.ini, aggiungendo in coda le sezioni relative alla definizione dei tasti per il gioco desiderato ; ad esempio, per Ant Attack 3D, supponendo che lo snapshot sia antattac.z80, aggiungere all'ini:
[ZX.KEYS.antattac]
Name=antattac
JB3=A
JB1=C
JB2=D
JLEFT=M
JRIGHT=SYM
JFIRE=V
che rimappa i tasti dello spectrum (la rotazione oraria/antioraria sull'asse orizzontale del joystick, e le azioni di salto, sparo, movimento, sui pulsanti del joystick)
4) dalle preferenze di Maximus Arcade, sezione relativa allo ZX Spectrum, avviare run.bat con parametri %name %file. "%name" sarà sostituito dal nome del file (antattac.z80, ad esempio), "%file" dal nome con percorso completo. Il file batch imposterà nella sezione [INPUT] dell'ini il parametro KeybLayout=%name, senza estensione, quindi richiamerà l'emulatore (unreal.exe) passandogli il nome completo di percorso del file.
N.B. per aggiungere nuovi giochi, sarà necessario creare nuove sezioni nell'ini relative alla rimappatura dei vari tasti. Per farlo, richiamare da prompt run.bat come segue:
run.bat default percorsogiochi\nomegioco.estensione
(il parametro default farà si che l'emulatore usi la configurazione di default della tastiera) - usarlo normalmente, con la tastiera, prendendo nota dei vari tasti necessari, quindi uscire dall'emulatore, editare unreal.ini e aggiungere la definizione dei tasti, associandoli opportunamente ad assi/pulsanti del joystick.
|
|
|
SMTP Relay software per l'invio diretto di email senza server smtp
Salvare il file in una
qualunque cartella, quindi avviarlo.
Compilare i campi mittente, destinatario, oggetto, e testo, infine premere il pulsante di invio email.
La mail sarà inoltrata direttamente al server destinazione, senza passare da nessun smtp.
Note:
-
qualche server di posta potrebbe rifiutare questo tipo di invio diretto, interpretandolo come spam, e rifiutare il messaggio
- l'uso di questo programma non è consentito per l'invio di spam o di mail in forma anonima ; vi ricordiamo, a riguardo, che tutte le attività effettuate sulla rete sono tracciate e rintracciabili, quindi anche dalle email inviate con SMTP Relay si può benissimo risalire al mittente reale
-
il programma non permette l'invio contemporaneo di un messaggio a più destinatari
|
|
|
|
|
DirGuard software di utilitą per il monitoraggio di file e cartelle
DirGuard segnala i file nuovi, modificati o cancellati in un numero qualunque di cartelle locali o in rete locale ;
le notifiche sono mostrate a video e/o inviando email a intervalli programmati.
Note: Software in inglese.
|
|
|
|