Archivio categoria: Programmazione

PyFoil, disegna profili alari con il cellulare

PyFoil è un semplice programmino scritto da me in Python che permette di disegnare profili NACA a 4 e 5 cifre, direttamente dal cellulare.

Per poterlo utilizzare è necessario installare il software Python for S60 sul proprio cellulare, che è reperibile a questo indirizzo.

Ecco alcuni screenshot del programma:


Segue il codice dell’applicazione.

Leggi il resto dell’articolo »


Sette e mezzo in Python

In qualche ora di tempo libero ho scritto questo semplice giochino in Python. Dovrebbe rappresentare il gioco del Sette e mezzo ma, anche se le modalità di gioco sono quelle, non sono sicuro che a livello probabilistico sia lo stesso.

Il gioco si svolge contro il computer: prima vengono distribuite le due carte, poi il giocatore può richiederne altre finché non è soddisfatto del suo punteggio.
Successivamente il banco richiede le sue carte finché non si rivelano i punteggi.

Le carte fino a 7 corrispondono a un punteggio del loro valore, le carte 8, 9 e 10 corrispondono a mezzo punto.
Vince il giocatore con il punteggio maggiore, ma se si supera il punteggio di 7 e mezzo si perde, e in caso di punteggio pari vince il banco.

from random import randint
deck = [4 for foo in range(10)]
score = 0.0
dscore = 0.0

def give_card():
    # Return a card and remove it from the deck
    global deck
    while any(deck):
        card = randint(0, 9)
        if deck[card] > 0:
            deck[card] -= 1
            return card

def cscore(hit, score):
    # Calculate the score
    if hit < 7:
        return score + hit + 1
    else:
        # Gold King
        if hit == 10 and randint(0, deck[9]-1) == 0:
            print 'E\' uscita la matta!'
            return 7
        else:
            return score + 0.5

while True:
    print '***************************************'
    # I need first card value because dealer can't see it
    your_card = fcard = give_card()
    score = cscore(your_card, score)
    dealer_card = give_card()
    dscore = cscore(dealer_card, dscore)
    print 'Tua carta: %d (%.1f)' % (your_card+1, score)
    # Card request
    while True:
        # Your turn
        if raw_input('\nAltra carta? [y/n] ') == 'y':
            your_card = give_card()
            print '[Carta] %d' % (your_card+1)
            score = cscore(your_card, score)
            print 'Punteggio: %.1f' % score
            if score > 7.5:
                print '**** Hai sballato! ****'
                break
        # Dealer turn
        else:
            # Dealer ask for a card if his score is lower then your shown score
            # Dealer may think you are bluffing (randint)
            print 'Il banco ha: %d (%.1f)' % (dealer_card+1, dscore)
            while dscore < score - cscore(fcard, 0) or randint(0, 3) == 0\
                  and dscore < 7.5:
                dealer_card = give_card()
                print '[Carta] %d' % (dealer_card+1)
                dscore = cscore(dealer_card, dscore)
                if dscore > 7.5:
                    break
            print 'Punteggio del banco: %.1f' % dscore
            if score > dscore or dscore > 7.5:
                print '\o/ \o/ \o/ Hai vinto! \o/ \o/ \o/'
            else:
                print '**** Hai perso! ****'
            break
    # Game request
    if raw_input('\nGiochi ancora? [y/n] ') == 'y':
        score = 0.0
        dscore = 0.0
        print '\n'
    else:
        break

S60 – Un menù per i tuoi script in Python

PyMenu3Questa è la mia prima applicazione sviluppata utilizzando le classi in Python.
La sua funzione è molto semplice: una volta avviata, mostra un menù personalizzabile che permette l’avvio di uno script Python con la semplice pressione di un tasto.

È possibile personalizzare uno script per ogni tasto della tastiera, da 1 a #. Risulta molto utile se utilizzate spesso degli script in Python, dato che attualmente, per avviare uno script, bisogna utilizzare la shell di Python e cercare ogni volta lo script all’interno del file browser.
Con PyMenu basterà la semplice pressione di un tasto per avviare i vostri script.

Ne ho creato una versione .sis in modo da poterla mettere sul desktop o associare ad un tasto di funzione rapida.

– Download PyMenu.sis (3rd) –

L’id dell’applicazione è:
0xE263CB53

Segue il codice sorgente del programma.

Leggi il resto dell’articolo »


Usare il cellulare come mouse del pc

mouseL’unica limitazione (o quasi!), quando si impara a programmare in Python per Symbian, è la fantasia del programmatore.

Quest’ultima applicazione che ho appena creato permette di sfruttare il sensore accelerometro del cellulare per muovere il cursore del mouse sul pc.
Il principio di funzionamento è molto semplice: lo script sul cellulare legge le informazioni sul sensore e le invia tramite bluetooth al computer, sul quale è avviato un altro script che legge le informazioni via bluetooth e muove il cursore del mouse in base ai dati ricevuti.
Leggi il resto dell’articolo »


ShootNup: Upload su ImageShack dal tuo cellulare

Finestra principale

Ho finalmente terminato la mia ultima applicazione: ShootNup. Come suggerisce già il titolo (shoot and upload), quest’applicazione permette di caricare le tue foto online su ImageShack, direttamente dal cellulare.

Tra le varie opzioni, è possibile selezionare come oggetto dell’upload una foto salvata in memoria oppure uno screenshot dello schermo del cellulare.
Una volta che l’immagine è stata inserita online, verrà restituito il link diretto ad essa che sarà conservato per tutta la sessione di lavoro.

L’applicazione fa uso della connessione ad internet, e dato il grande numero di dati che viene trasferito (a causa del peso delle immagini) si consiglia l’utilizzo di una connessione wi-fi o di un abbonamento ad internet.

Questo programma è scritto in Python e richiede ovviamente che l’interprete del linguaggio sia installato sul vostro cellulare. Oltre a ciò utilizza due moduli esterni, che sono appswitch e dialog: il primo serve a passare l’applicazione dalla modalità background a foreground quando si salva uno screenshot, il secondo serve per mostrare le schermate di stato (caricamento in corso, upload in corso, ecc.). Non essendo strettamente necessari per l’upload, potete anche non installarli, ma li ho inclusi nel file .zip che segue e consiglio caldamente di installarli.

Ecco qualche screenshot (click per ingrandire):

Download link:

-Download ShootNup.zip (dialog.sis, appswitch.sis, ShootNup.sis)-

Segue il codice sorgente dell’applicazione.

Leggi il resto dell’articolo »


Symbian S60, Bluetooth Switch

screenshotmefHo appena scritto in Python questa semplicissima applicazione per Symbian, la quale non fa altro che switchare il bluetooth: se è acceso lo spegne, se è spento lo accende, chiudendosi automaticamente.
È utile tenerla sul desktop del cellulare, oppure associarla al tasto carosello (carousel key), in alternativa all’applicazione predefinita.

Richiede il modulo BlueS, che è già incluso nel file di installazione, ma è comunque scaricabile  QUI (unsigned, Symbian 3rd)

– Download BT Switch (.sis) –

L’id dell’applicazione è:
0xED10F1C1

Segue il codice dell’applicazione

Leggi il resto dell’articolo »


Bluetooth Flooder per Symbian – 24/08/2009

Screen shotQuesta applicazione è stata creata da me per puro scopo didattico. Dovevo imparare ad utilizzare il bluetooth in Python e ho finito per creare questa simpatica applicazione.

Descrizione:
Una volta selezionato un file presente sul vostro cellulare, BT Flooder tenterà di inviarlo a tutte le periferiche bluetooth che sono nei paragi, tenendo una conta delle vittime che accettano il vostro file.
L’applicazione può essere utile per inviare un’immagine, magari un vostro sticker o una foto che volete condividere con tutti, oppure una semplice nota testo contenente un messaggio, un indirizzo di un sito internet, o qualsiasi cosa vi venga in mente.
L’applicazione supporta inoltre un filtro che permette di esonerare determinate periferiche dall’assillante invito a ricevere un file, e una funzione di logging, tramite la quale potrete conoscere, al termine dell’esecuzione, tutte le periferiche che hanno accettato il vostro file.

BT Flooder è stato scritto in Python, quindi necessita (ovviamente) che l’interprete sia installato sul vostro cellulare. Oltre a questo l’applicazione fa uso del modulo esterno LightBlue, necessario per cercare periferiche bluetooth silenziosamente. Il file di installazione è scaricabile a questo indirizzo, e va installato nella memoria interna, non sulla memory card.

– Download BT Flooder (versione .sis) –
– Download BT Flooder (versione .py) –
– Download modulo LightBlue –

Aggiornamento – 24/08/2009

Ho aggiornato l’applicazione perché presentava un bug nella codifica UTF-8. Non era infatti possibile selezionare periferiche e file con caratteri non-ASCII.

Segue il codice sorgente dell’applicazione.
Leggi il resto dell’articolo »


Python Symbian, Colour Picker per cellulari

colour pyckerEcco un’applicazione che ho scritto in breve tempo in un nuovo (per me) linguaggio di programmazione: Python.

È un semplice color picker, che ho chiamato Colour Pycker. Permette di selezionare un colore sia nella forma rosso, verde e blu, sia in esadecimale.
I “dosatori di colore” variano di velocità quando si tiene premuto il tasto selezione, in modo da velocizzare la scelta del colore desiderato. In alternativa è possibile visualizzare il colore inserendo i valori dei singoli primari direttamente in forma numerica o esadecimale.

Essendo scritta in Python richiede che il software Python S60 sia installato sul vostro cellulare. Potete trovarlo a questo indirizzo.

Ecco il file .py che dovete inserire nella cartella c:\python (oppure e:\ per la memory card):
Download ColourPycker.py –

In alternativa, ecco la versione .sis per Symbian 3rd:
– Download ColourPycker.sis –

Segue il codice sorgente.

Leggi il resto dell’articolo »