Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Creare un programma in c sotto linux con "grafica ascii"

    Ciao a tutti, la sezione della domanda è un misto tra "programmazione" e "linux e software", cmq provo a postare qua, in quanto penso che ci sia più conoscenza in merito.

    Sto seguendo il corso di Laboratorio di Sistemi Operativi, dopo lo scritto (già passato con 29) c'è il progetto da fare, che consiste sostanzialmente in un programma di tipo client-server in c sotto linux (o meglio, confacente agli standard unix).
    Nel mio caso devo implementare il gioco del black-jack in modo che si può giocare dalla rete.

    Ora, anche se non è richiesto, mi piacerebbe cercare di creare un programma graficamente gradevole, magari visualizzando proprio le carte colorate etc.
    Prima di utilizzare linux, sotto windows ho creato un sacco di programmi in c che facevano uso della "grafica ascii", cioè l'ambiente grafico era la schermata dos, e ogni "disegno" era fatto da un insieme di caratteri ascii, ad esempio:

    codice:
     ____
    |A   |
    |    |
    |    |
    |___A|
    Tutto questo lo realizzavo grazie alla libreria conio.h presente nel software turbo c, utilizzando ad esempio funzioni del tipo:
    - gotoxy(int x, int y), che sposta il cursore in una certa coordinata (x,y)
    - textcolor(int c), che cambia il colore di stampa a video con cprintf
    ....
    Il problema è che questa libreria non è presente sotto linux (uso ubuntu), e non so come fare per risolvere il problema (non riesco nemmeno a cancellare lo schermo con clrscr)

    Cosa mi consigliate? Esiste una libreria simile, oppure ci sono altre funzioni analoghe?

  2. #2
    codice:
    cmq provo a postare qua, in quanto penso che ci sia più conoscenza in merito.
    http://forum.html.it/forum/showthread/t-604989.html

    :quote:
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  3. #3
    Originariamente inviato da Mutato
    codice:
    cmq provo a postare qua, in quanto penso che ci sia più conoscenza in merito.
    http://forum.html.it/forum/showthread/t-604989.html

    :quote:

  4. #4
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    aggiro in parte la domanda suggerendoti di dare uno sguardo a qt-designer
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  5. #5
    Puoi usare le ottime librerie ncurses: http://www.pluto.it/files/ildp/tradu...ses-intro.html.
    Hfish, mi spieghi che c'entrano le librerie QT con la modalità testuale ?
    NeapoliX GNU/Linux
    "Alla maggior parte della gente piace leggere la propria scrittura e annusare l'odore dei propri peti." (Auden)

  6. #6
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    Originariamente inviato da PinguinoGoloso
    Hfish, mi spieghi che c'entrano le librerie QT con la modalità testuale ?
    acidini?
    ho detto capposta che `aggiravo` la domanda.
    l'interfaccia grafica, ascii o realizzata con librerie grafiche, viene solo DOPO la realizzazione del motore del gioco. Se non ha restrizioni particolari sul progetto può usare le librerie qt e il semplicissimo e potentissimo qt designer per disegnare un'interfaccia grafica gradevole ed efficace
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  7. #7
    Grazie per tutte le risposte, vi aggiorno sulla situazione:
    Dalla traccia è specificato che "Oltre alle system call UNIX, i programmi possono utilizzare solo la libreria standard del C.", quindi niente qt-designer o n-curses

    Spulciando su internet ho però visto che si può sfruttare opportunamente la funzione standard printf, sapendo che determinati codici di caratteri impongono al terminale di cambiare colore di stampa a video, o cancellare lo schermo, o spostare il cursore.

    Ho così "ricreato" le funzioni clrscr, gotoxy, e setColor:

    codice:
    void clrscr() {
    	printf("\033[2J");
    }
    
    void gotoxy(int x, int y) {
    	printf("\033[%d;%df",y,x);
    }
    
    void setColor(int testo, int sfondo, int tipo) {
    	printf("\033[%d;%d;%dm", 30+testo, 40+sfondo, tipo);
    }
    Unico problema: diversamente dalla shell del dos che ha una dimensione definita (di solito 80x25 caratteri), la shell bash sembra dipendere (almeno così vedo su ubuntu) da quanto grande si setta la finestra del terminale...La cosa è un po' fastidiosa, perché se durante l'esecuzione io ridimensiono la finestra si crea un casino coi caratteri che o vanno daccapo, o salgono, insomma si ingrippa l'interfaccia!
    Secondo voi esiste una qualche direttiva o funzione o syscall che mi definisce quanti caratteri deve avere il terminale?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.