PROBLEMA game of life xcode c++ help

Stato
Discussione chiusa ad ulteriori risposte.

dadde96

Nuovo Utente
4
0
CPU
i7 @ 2,8 GHz
HDD
254 GB SSD
RAM
8 GB 1600 MHz DDR3
GPU
Intel iris 1 GB
OS
OSX
premetto dicendo che sono uno studente di 4° liceo ( scientifico ) e da relativamente poco mi sono affacciato nel mondo della programmazione e attualmente utilizzo xcode 5.1

Dopo che il profe. di informatica ci ha mostrato un esempio del gioco game of life di conway ( John Conway’s Game of Life in Python | Amori in corso ) mi sono incuriosito e ho deciso di provare a crearlo da me in c++.
Il programma l'ho completato e funziona correttamente ma ho un piccolo ma fastidioso problema : ogni volta che il "mondo" del gioco cambia il programma lo scrive a monitor e lo scrive sotto quello precedente; su windows ho visto che esiste la funzione system ("clear") o system ("cls") ma non riesco a trovare nulla di analogo per mac ( xcode ) avevo pensato di utilizzare la libreria conio.h ma anche quella gira solo sotto windows.
ho già provato a cercare su internet ma con esiti molto scarsi.

Grazie in anticipo per le risposte
 

pabloski

Utente Èlite
2,868
916
Devi usare system("clear"). System è una funzione della stdlib ed esegue un comando di shell.

Tuttavia come soluzione temporanea può andare, ma non è quello il modo corretto di realizzare un'applicazione cli che fa un uso complesso di testi e simboli. La libreria ncurses è quello che ti serve, ed è anche multipiattaforma.

In caso contrario, ovviamente, si crea un'applicazione grafica, ma questo è tutt'altro discorso.

 

dadde96

Nuovo Utente
4
0
CPU
i7 @ 2,8 GHz
HDD
254 GB SSD
RAM
8 GB 1600 MHz DDR3
GPU
Intel iris 1 GB
OS
OSX
grazie per la risposta;

ho provato a includere la libreria #include <ncurses> e usare il comando erase() ma non cambia nulla, non mi pulisce lo schermo :(
anche il comando clear non funziona :( mi da questo errore

Schermata 2014-03-20 alle 19.49.59.png


p.s. il mio scopo ultimo è quello di creare uno salvaschermo ( anche se non so bene come si faccia, ma ho già visto che xcode propone tra le tante cose anche la base per quello )
 
Ultima modifica:

pabloski

Utente Èlite
2,868
916
Se devi usare ncurses, allora devi seguire il pattern previsto per lo sviluppo di un programma cli ( inizializzazione libreria, ecc... ).

Se usi le funzioni standard di i/o del c++, allora usa system("clear"),
 

dadde96

Nuovo Utente
4
0
CPU
i7 @ 2,8 GHz
HDD
254 GB SSD
RAM
8 GB 1600 MHz DDR3
GPU
Intel iris 1 GB
OS
OSX
scusa non avevo capito che ncurses era per cli.

comunque se provo a utilizzare system ("clear") il programma mi si compila ma anziché cancellare mi appare : TERM environment variable not set.e il programma va avanti come se nulla fosse
Schermata 2014-03-20 alle 20.12.15.png

per ora, per non far vedere le schermate precedenti, uso un trucchetto che però non mi piace molto :

for
(int i = 0; i < 10; i++)

{
cout<<"\n\n\n\n\n\n\n\n\n\n";
}

 

pabloski

Utente Èlite
2,868
916
Quello è l'output del terminale integrato in xcode. Se provi ad eseguire il programma dal terminale del sistema operativo, vedrai che funziona tutto perfettamente.

Un programma CLI è a riga di comando, cioè va eseguito all'interno di un terminale vero e proprio. XCode ovviamente è pensato principalmente per i programmi con gui, per cui non mette a disposizione un terminale con tutti gli attributi necessari.

Comunque sia, in xcode vai nel pannello a sinistra, apri Products e dovresti trovare il nome dell'eseguibile. Fai CTRL+click e Show in Finder. Dopo di che doppio click sul file e vedrai che lo esegue in un terminale.
 

dadde96

Nuovo Utente
4
0
CPU
i7 @ 2,8 GHz
HDD
254 GB SSD
RAM
8 GB 1600 MHz DDR3
GPU
Intel iris 1 GB
OS
OSX
Grazie mille, "problema" risolto da terminale funziona ! :lol:

grazie per la disponibilità
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!