How do you do this?

Started by
4 comments, last by overflowed_ 18 years, 8 months ago
How do you use the arrows in c????? and can you press a key without having to press enter after it?????
Advertisement
Quote:Original post by t5hoo6
How do you use the arrows in c?????


You use a platform-specific API. C has no notion of 'key', it only knows about files.

Quote:and can you press a key without having to press enter after it?????


Linux: cbreak()
Win32: kbhit() and getch()
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
Thanks, also how do tou use graphics in C and the colors, My book dont explane that.
C doesn't really know how to do anything except mess with memory, in the plain language. All the various functions like printf() are part of a library called libc, but libc only gives you the very basics. For higher-level stuff like graphics and keyboard IO, you want to be using some API/library or another. Instead of piecing things together, you might want to look into a more general API like Win32 or SDL, or you might want to consider playing with a language that does do graphics and IO itself, like Java or C#.
-----http://alopex.liLet's Program: http://youtube.com/user/icefox192
How would you This header file?
/*	graphics.h	Definitions for Graphics Package.	Copyright (c) Borland International 1987,1988	All Rights Reserved.*/#if __STDC__#define _Cdecl#else#define _Cdecl	cdecl#endif#if     !defined(__GRAPHX_DEF_)#define __GRAPHX_DEF_enum graphics_errors {		/* graphresult error return codes */	grOk		   =   0,	grNoInitGraph	   =  -1,	grNotDetected	   =  -2,	grFileNotFound	   =  -3,	grInvalidDriver    =  -4,	grNoLoadMem	   =  -5,	grNoScanMem	   =  -6,	grNoFloodMem	   =  -7,	grFontNotFound	   =  -8,	grNoFontMem	   =  -9,	grInvalidMode	   = -10,	grError 	   = -11,   /* generic error */	grIOerror	   = -12,	grInvalidFont	   = -13,	grInvalidFontNum   = -14,	grInvalidVersion   = -18};enum graphics_drivers { 	/* define graphics drivers */	DETECT, 		/* requests autodetection */	CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514,	/* 1 - 6 */	HERCMONO, ATT400, VGA, PC3270,			/* 7 - 10 */	CURRENT_DRIVER = -1};enum graphics_modes {		/* graphics modes for each driver */    CGAC0      = 0,  /* 320x200 palette 0; 1 page	*/    CGAC1      = 1,  /* 320x200 palette 1; 1 page	*/    CGAC2      = 2,  /* 320x200 palette 2: 1 page	*/    CGAC3      = 3,  /* 320x200 palette 3; 1 page	*/    CGAHI      = 4,  /* 640x200 1 page			*/    MCGAC0     = 0,  /* 320x200 palette 0; 1 page	*/    MCGAC1     = 1,  /* 320x200 palette 1; 1 page	*/    MCGAC2     = 2,  /* 320x200 palette 2; 1 page	*/    MCGAC3     = 3,  /* 320x200 palette 3; 1 page	*/    MCGAMED    = 4,  /* 640x200 1 page			*/    MCGAHI     = 5,  /* 640x480 1 page			*/    EGALO      = 0,  /* 640x200 16 color 4 pages	*/    EGAHI      = 1,  /* 640x350 16 color 2 pages	*/    EGA64LO    = 0,  /* 640x200 16 color 1 page 	*/    EGA64HI    = 1,  /* 640x350 4 color  1 page 	*/    EGAMONOHI  = 0,  /* 640x350 64K on card, 1 page - 256K on card, 4 pages */    HERCMONOHI = 0,  /* 720x348 2 pages 		*/    ATT400C0   = 0,  /* 320x200 palette 0; 1 page	*/    ATT400C1   = 1,  /* 320x200 palette 1; 1 page	*/    ATT400C2   = 2,  /* 320x200 palette 2; 1 page	*/    ATT400C3   = 3,  /* 320x200 palette 3; 1 page	*/    ATT400MED  = 4,  /* 640x200 1 page			*/    ATT400HI   = 5,  /* 640x400 1 page			*/    VGALO      = 0,  /* 640x200 16 color 4 pages	*/    VGAMED     = 1,  /* 640x350 16 color 2 pages	*/    VGAHI      = 2,  /* 640x480 16 color 1 page 	*/    PC3270HI   = 0,  /* 720x350 1 page			*/    IBM8514LO  = 0,  /* 640x480 256 colors		*/    IBM8514HI  = 1   /*1024x768 256 colors		*/};/* Colors for setpalette and setallpalette */#if	!defined(__COLORS)#define __COLORSenum COLORS {    BLACK,		    /* dark colors */    BLUE,    GREEN,    CYAN,    RED,    MAGENTA,    BROWN,    LIGHTGRAY,    DARKGRAY,		    /* light colors */    LIGHTBLUE,    LIGHTGREEN,    LIGHTCYAN,    LIGHTRED,    LIGHTMAGENTA,    YELLOW,    WHITE};#endifenum CGA_COLORS {    CGA_LIGHTGREEN     = 1,		/* Palette C0 Color Names	*/    CGA_LIGHTRED       = 2,    CGA_YELLOW	       = 3,    CGA_LIGHTCYAN      = 1,		/* Palette C1 Color Names	*/    CGA_LIGHTMAGENTA   = 2,    CGA_WHITE	       = 3,    CGA_GREEN	       = 1,		/* Palette C2 Color Names	*/    CGA_RED	       = 2,    CGA_BROWN	       = 3,    CGA_CYAN	       = 1,		/* Palette C3 Color Names	*/    CGA_MAGENTA        = 2,    CGA_LIGHTGRAY      = 3};enum EGA_COLORS {    EGA_BLACK		 =  0,	    /* dark colors */    EGA_BLUE		 =  1,    EGA_GREEN		 =  2,    EGA_CYAN		 =  3,    EGA_RED		 =  4,    EGA_MAGENTA 	 =  5,    EGA_BROWN		 =  20,    EGA_LIGHTGRAY	 =  7,    EGA_DARKGRAY	 =  56,     /* light colors */    EGA_LIGHTBLUE	 =  57,    EGA_LIGHTGREEN	 =  58,    EGA_LIGHTCYAN	 =  59,    EGA_LIGHTRED	 =  60,    EGA_LIGHTMAGENTA	 =  61,    EGA_YELLOW		 =  62,    EGA_WHITE		 =  63};enum line_styles {		/* Line styles for get/setlinestyle */	SOLID_LINE   = 0,	DOTTED_LINE  = 1,	CENTER_LINE  = 2,	DASHED_LINE  = 3,	USERBIT_LINE = 4,	/* User defined line style */};enum line_widths {		/* Line widths for get/setlinestyle */	NORM_WIDTH  = 1,	THICK_WIDTH = 3,};enum font_names {	DEFAULT_FONT	= 0,	/* 8x8 bit mapped font */	TRIPLEX_FONT	= 1,	/* "Stroked" fonts */	SMALL_FONT	= 2,	SANS_SERIF_FONT = 3,	GOTHIC_FONT	= 4};#define HORIZ_DIR	0	/* left to right */#define VERT_DIR	1	/* bottom to top */#define USER_CHAR_SIZE	0	/* user-defined char size */enum fill_patterns {		/* Fill patterns for get/setfillstyle */	EMPTY_FILL,		/* fills area in background color */	SOLID_FILL,		/* fills area in solid fill color */	LINE_FILL,		/* --- fill */	LTSLASH_FILL,		/* /// fill */

SLASH_FILL, /* /// fill with thick lines */
BKSLASH_FILL, /* \\\ fill with thick lines */
LTBKSLASH_FILL, /* \\\ fill */
HATCH_FILL, /* light hatch fill */
XHATCH_FILL, /* heavy cross hatch fill */
INTERLEAVE_FILL, /* interleaving line fill */
WIDE_DOT_FILL, /* Widely spaced dot fill */
CLOSE_DOT_FILL, /* Closely spaced dot fill */
USER_FILL /* user defined fill */
};

enum putimage_ops { /* BitBlt operators for putimage */
COPY_PUT, /* MOV */
XOR_PUT, /* XOR */
OR_PUT, /* OR */
AND_PUT, /* AND */
NOT_PUT /* NOT */
};

enum text_just { /* Horizontal and vertical justification
for settextjustify */

LEFT_TEXT = 0,
CENTER_TEXT = 1,
RIGHT_TEXT = 2,

BOTTOM_TEXT = 0,
/* CENTER_TEXT = 1, already defined above */
TOP_TEXT = 2
};


#define MAXCOLORS 15

struct palettetype {
unsigned char size;
signed char colors[MAXCOLORS+1];
};

struct linesettingstype {
int linestyle;
unsigned upattern;
int thickness;
};

struct textsettingstype {
int font;
int direction;
int charsize;
int horiz;
int vert;
};

struct fillsettingstype {
int pattern;
int color;
};

struct pointtype {
int x, y;
};

struct viewporttype {
int left, top, right, bottom;
int clip;
};

struct arccoordstype {
int x, y;
int xstart, ystart, xend, yend;
};

void far _Cdecl arc(int x, int y, int stangle, int endangle,
int radius);
void far _Cdecl bar(int left, int top, int right, int bottom);
void far _Cdecl bar3d(int left, int top, int right, int bottom,
int depth, int topflag);
void far _Cdecl circle(int x, int y, int radius);
void far _Cdecl cleardevice(void);
void far _Cdecl clearviewport(void);
void far _Cdecl closegraph(void);
void far _Cdecl detectgraph(int far *graphdriver,int far *graphmode);
void far _Cdecl drawpoly(int numpoints, int far *polypoints);
void far _Cdecl ellipse(int x, int y, int stangle, int endangle,
int xradius, int yradius);
void far _Cdecl fillellipse( int x, int y, int xradius, int yradius );
void far _Cdecl fillpoly(int numpoints, int far *polypoints);
void far _Cdecl floodfill(int x, int y, int border);
void far _Cdecl getarccoords(struct arccoordstype far *arccoords);
void far _Cdecl getaspectratio(int far *xasp, int far *yasp);
int far _Cdecl getbkcolor(void);
int far _Cdecl getcolor(void);
struct palettetype * far _Cdecl getdefaultpalette( void );
char * far _Cdecl getdrivername( void );
void far _Cdecl getfillpattern(char far *pattern);
void far _Cdecl getfillsettings(struct fillsettingstype far *fillinfo);
int far _Cdecl getgraphmode(void);
void far _Cdecl getimage(int left, int top, int right, int bottom,
void far *bitmap);
void far _Cdecl getlinesettings(struct linesettingstype far *lineinfo);
int far _Cdecl getmaxcolor(void);
int far _Cdecl getmaxmode(void);
int far _Cdecl getmaxx(void);
int far _Cdecl getmaxy(void);
char * far _Cdecl getmodename( int mode_number );
void far _Cdecl getmoderange(int graphdriver, int far *lomode,
int far *himode);
unsigned far _Cdecl getpixel(int x, int y);
void far _Cdecl getpalette(struct palettetype far *palette);
int far _Cdecl getpalettesize( void );
void far _Cdecl gettextsettings(struct textsettingstype far *texttypeinfo);
void far _Cdecl getviewsettings(struct viewporttype far *viewport);
int far _Cdecl getx(void);
int far _Cdecl gety(void);
void far _Cdecl graphdefaults(void);
char * far _Cdecl grapherrormsg(int errorcode);
void far _Cdecl _graphfreemem(void far *ptr, unsigned size);
void far * far _Cdecl _graphgetmem(unsigned size);
int far _Cdecl graphresult(void);
unsigned far _Cdecl imagesize(int left, int top, int right, int bottom);
void far _Cdecl initgraph(int far *graphdriver,
int far *graphmode,
char far *pathtodriver);
int far _Cdecl installuserdriver( char far *name, int huge (*detect)(void) );
int far _Cdecl installuserfont( char far *name );
void far _Cdecl line(int x1, int y1, int x2, int y2);
void far _Cdecl linerel(int dx, int dy);
void far _Cdecl lineto(int x, int y);
void far _Cdecl moverel(int dx, int dy);
void far _Cdecl moveto(int x, int y);
void far _Cdecl outtext(char far *textstring);
void far _Cdecl outtextxy(int x, int y, char far *textstring);
void far _Cdecl pieslice(int x, int y, int stangle, int endangle,
int radius);
void far _Cdecl putimage(int left, int top, void far *bitmap, int op);
void far _Cdecl putpixel(int x, int y, int color);
void far _Cdecl rectangle(int left, int top, int right, int bottom);
void far _Cdecl restorecrtmode(void);
void far _Cdecl sector( int X, int Y, int StAngle, int EndAngle,
int XRadius, int YRadius );
void far _Cdecl setactivepage(int page);
void far _Cdecl setallpalette(struct palettetype far *palette);
void far _Cdecl setaspectratio( int xasp, int yasp );
void far _Cdecl setbkcolor(int color);
void far _Cdecl setcolor(int color);
void far _Cdecl setfillpattern(char far *upattern, int color);
void far _Cdecl setfillstyle(int pattern, int color);
unsigned far _Cdecl setgraphbufsize(unsigned bufsize);
void far _Cdecl setgraphmode(int mode);
void far _Cdecl setlinestyle(int linestyle, unsigned upattern,
int thickness);
void far _Cdecl setpalette(int colornum, int color);
void far _Cdecl setrgbpalette(int colornum,
int red, int green, int blue);
void far _Cdecl settextjustify(int horiz, int vert);
void far _Cdecl settextstyle(int font, int direction, int charsize);
void far _Cdecl setusercharsize(int multx, int divx,
int multy, int divy);
void far _Cdecl setviewport(int left, int top, int right, int bottom,
int clip);
void far _Cdecl setvisualpage(int page);
void far _Cdecl setwritemode( int mode );
int far _Cdecl textheight(char far *textstring);
int far _Cdecl textwidth(char far *textstring);

/***** graphics drivers *****/

int _Cdecl registerbgidriver(void (*driver)(void));
int far _Cdecl registerfarbgidriver(void far *driver);

/* !! These "functions" are NOT user-callable !! */
/* !! They are there just so you can link in graphics drivers !! */

void _Cdecl CGA_driver(void);
void _Cdecl EGAVGA_driver(void);
void _Cdecl IBM8514_driver(void);
void _Cdecl Herc_driver(void);
void _Cdecl ATT_driver(void);
void _Cdecl PC3270_driver(void);

extern int far _Cdecl CGA_driver_far[];
extern int far _Cdecl EGAVGA_driver_far[];
extern int far _Cdecl IBM8514_driver_far[];
extern int far _Cdecl Herc_driver_far[];
extern int far _Cdecl ATT_driver_far[];
extern int far _Cdecl PC3270_driver_far[];


/***** graphics fonts *****/

int _Cdecl registerbgifont(void (*font)(void));
int far _Cdecl registerfarbgifont(void far *font);

/* !! These "functions" are NOT user-callable, !! */
/* !! they are there just so you can link in fonts !! */

void _Cdecl triplex_font(void);
void _Cdecl small_font(void);
void _Cdecl sansserif_font(void);
void _Cdecl gothic_font(void);

extern int far _Cdecl triplex_font_far[];
extern int far _Cdecl small_font_far[];
extern int far _Cdecl sansserif_font_far[];
extern int far _Cdecl gothic_font_far[];


#endif

[/Source]

for graphics?
Before you get flamed and/or rated down (more so), check http://www.gamedev.net/reference/start_here/.
-----BEGIN GEEK CODE BLOCK-----Version: 3.12GCS/M/S d->+(++) s+: a19? C++++ UL++ P+++ L+ !E W+++ N+ o++ K? w!O M-- V? !PS PE Y+ PGP t++ 5+++ X R tv+> b+(++)>+++ DI+++>+++++ D++G e>++++ h! r y?------END GEEK CODE BLOCK------

This topic is closed to new replies.

Advertisement