PDA

Visualizza la versione completa : [C] Creare tabella grafica con linee


giackk83
06-10-2005, 15:35
Salve,

io devo afre un disegno come indirizzo http://gilda.it/ludomax/giochi/halma.wmf

e mi domandavo come si fa cioè che comando si utilizza in C per fare le linee continue??

xche se utilizzo i " -----" linette mi viene tutto spezettato quando eseguo a video......

Samuele_70
06-10-2005, 23:32
Puoi provare con i caratteri semi-grafici, ma ti avverto
subito che il risultato non è certamente esaltante...

Queste poche righe di codice stampa una griglia, di esempio,
e poi mostra una tabella con tutti i caratteri ASCII disponibili.

Codice x Borland C++ v5.5 (free)


#include <stdio>
#include <iostream>
#include <windows>
#include <conio>

void main()
{
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",218,196,194,196,194,196,194,196,194,196,194,196,1 91);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",192,196,193,196,193,196,193,196,193,196,193,196,2 17);

printf("\n\n Mappa dei caratteri disponibili in 'MS-DOS'\n\n");
for(int ch = 0; ch < 255; ch ++) {
printf(" %3i ",(int)ch ); // Stampa tutti i valori
if(ch >14) // salta i caratteri non 'stampabili'
printf("%c ", ch);
else
printf("%c ", ' ');
}
getch();
}

giackk83
07-10-2005, 08:10
grazie per il codice che mi hai dato :)

pero non so xche mi da degli errori nel ciclo for......

un altra domanda sai per caso dove posso trovare il gioco HALMA scritto in c??

giackk83
07-10-2005, 16:21
pre creare una linea continua posso utilizzare ad esempio il comando

printf("\n%c%c%c%c",196,196,196,196); ok pero se devo formare una linea sempre continua pero diciamo piu marcata quindi di spessore piu grosso che comando devo utilizzare?

Samuele_70
07-10-2005, 20:08
Originariamente inviato da giackk83
grazie per il codice che mi hai dato :)

pero non so xche mi da degli errori nel ciclo for......


Che tipo di errori ? Che compilatore usi ?

Originariamente inviato da giackk83
un altra domanda sai per caso dove posso trovare il gioco HALMA scritto in c??


Prova a cercare con Google :

"halma" game c++ "source code"
Invece di "halma" puoi cercare "chinese checkers" (è così che lo chiamano in USA).

Spiegazione sul gioco (in Inglese):
http://www.cs.laurentian.ca/dgoforth/cosc4117/gameproject/project2003.html
http://www.jijbent.nl/spelregels/halma.php


Codice di esempio :
http://www.xs4all.nl/~hwiegman/
http://chinesecheckers.vegard2.no/freeware.html

Prova questa variante, in codice C#, potrebbe esserti utile comunque :

http://www.c-sharpcorner.com/Code/2003/Feb/ProjectTrilma.asp


Originariamente inviato da giackk83
se devo formare una linea sempre continua però diciamo più marcata
quindi di spessore più grosso che comando devo utilizzare?


Prova così :



// basic template file for C++

#include <stdio>
#include <iostream>
#include <windows>
#include <conio>

using namespace std;

void main()
{
// Puoi memorizzarli in una stringa
char LineaSup[40] = {218,196,194,196,194,196,194,196,194,196,194,196,1 91,
10, 13, // Per il ritorno a capo
179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179};
//Metodi alternativi :
printf("\nAngolo a linea doppia : ");
cout << CHAR(201) << endl;
printf("Linea doppia verticale : ");
putch( CHAR(186) );
printf("\nLinea doppia orizzontale : ");
putch( CHAR(205) );
printf("\nLinea + spessa superiore : ");
putch( CHAR(223) );
printf("\nLinea + spessa inveriore: ");
putch( CHAR(220) );
printf("\nCarattere pieno : ");
putch( CHAR(219) );

printf("\n\n%s",LineaSup);// Visualizza la stringa
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",218,196,194,196,194,196,194,196,194,196,194,196,1 91);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",195,196,197,196,197,196,197,196,197,196,197,196,1 80);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",179, 32,179, 32,179, 32,179, 32,179, 32,179, 32,179);
printf("\n%c%c%c%c%c%c%c%c%c%c%c%c%c",192,196,193,196,193,196,193,196,193,196,193,196,2 17);

printf("\n\n Mappa dei caratteri disponibili in 'MS-DOS'\n\n");
for(int ch = 0; ch < 255; ch ++) {
printf(" %3i ",(int)ch ); // Stampa tutti i valori
if(ch >14) // salta i caratteri non 'stampabili'
printf("%c ", ch);
else
printf("%c ", ' ');
}
getch();
}

pprllo
07-10-2005, 23:00
Se vuoi fare qualcosa di più impegnativo (come realizzazione) ma anche più bello a vedersi allora puoi ripiegare su una libreria grafica 2D, tipo Allegro (che io ti consiglio), che ti pemette di fare praticamente qualunque cosa a livello di grafica bidimensionale. Tuttavia, siccome non sono esattamente facili da usare (per esempio la gestione dell'input può risultare più complessa che non in C "liscio"), se sei un principiante ti consiglio di fare il tutto con i caratteri ASCII. Poi magari in futuro potresti pensare a trasformarlo. Tuttavia se non hai problemi di tempo/voglia/esperienza ti consiglio caldamente di farlo con una libreria grafica (ripeto, ti consiglio Allegro, davvero facile da usare).

giackk83
10-10-2005, 08:02
Grazie mille per l'aiuto che mi avete dato :D ,

cmq come compilatore uso visual studio 6......

con i comandi che mi hai dato ci sono riuscito :zizi:

provero a guardare in google se trovo qualche esempio di gioco per basarmi un attimo

Loading