←ïðåäûäóùàÿ ñëåäóþùàÿ→
1 2 3 4 5 6
2 ÐÀÑ×ÅÒÍÀß ×ÀÑÒÜ
2.1 Ëèñòèíã ïðîãðàììû
Ïðîãðàììà áûëà íàïèñàíà ñ èñïîëüçîâàíèåì ÿçûêà Watcom Ñ++, ïîýòîìó â íåé èñïîëüçóåòñÿ ñïåöèôè÷åñêèé ñèíòàêñèñ ýòîãî ÿçûêà. Íèæå ïðèâåäåí ëèñòèíã îïèñûâàåìîé ïðîãðàììû.
char *massiv,*massiv1,*temp,*buff_image,command,mode='c',key;
unsigned char f_mask[ 8 ] = { 255, 255, 255, 255,255, 255, 255, 255 };
unsigned char name[20],subname[20],massiv2[45];
char fon_buff[10];
int color=0,color1=0,punkt=1,m_x,m_y,m_k=0,row=20,maxx=640;
float x=0,y=0,x1=0,y_1=0,radius=0,xs=0, ys=0,ratio=1.000,asp=640,aspxs=1;
#define ENTER 0x0d
#define PGDW 0x51
#define PGUP 0x49
#define UP 0x48
#define DOWN 0x50
#define ESC 0x1b
#define SPACE 0x20
#include "graph.h"
#include "pgchart.h"
#include "stdarg.h"
#include "stdio.h"
#include "iostream.h"
#include "fstream.h"
#include "conio.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"
#include "dos.h"
void mouse (int on_off_xy, int *m_x,int *m_y,int *m_k) ;
void virusprot (void);
void grinit (void) ;
void outmenu (void);
void outcursormenu(int punkt);
void choise_cont_educ(char file[]);
void education(int index,int quest_num);
void outresult(int mark,char mode) ;
void getout(void );
void any_key(void);
void calcxy(void);
void clrbuff(void);
void draw_win(int x,int y,char msg[]) ;
void goodbye(void);
void inp_data(unsigned char data[]);
void inputfio(void);
void mouse (int on_off_xy, int *m_x,int *m_y,int *m_k);
void timeout () ;
void savefio (int mark ) ;
int picture (int count, char massiv[], int index);
int choisebil(void);
int choiserandombil(void) ;
int control(int index,int quest_num,int mark,int minute,int *timeout);
int fileop (char file[],char massiv[] ) ;
int msv_tmp(int count,char massiv[]) ;
void main() {
if (!(massiv =new char [20000])){cout<<"Íåõâàòàåò ïàìÿòè";exit(1);}
if (!(buff_image=new char [4000 ])){cout<<"Íåõâàòàåò ïàìÿòè";exit(1);}
if (!(massiv1 =new char [20000])){cout<<"Íåõâàòàåò ïàìÿòè";exit(1);}
if (!(temp =new char [100 ])){cout<<"Íåõâàòàåò ïàìÿòè";exit(1);}
grinit();
virusprot();
while(1) {
int bilnum=1;
char file[13];
outmenu();
label1:
punkt=menu();
if (punkt==1) {mode='c'; bilnum=choiserandombil();}
if (punkt==2) {mode='e';bilnum=choisebil();}
if (punkt==3) {getout();goto label1;}
sprintf( file, "%d.bil", bilnum );
choise_cont_educ(file);
}
}
void grinit (void) {
int mode, n;
mode = _ERESCOLOR;
struct videoconfig vc;
if( _setvideomode( mode ) == 0 ) {
puts( "Cannot initialize video mode" );
}
n = _registerfonts( "*.fon" );
sprintf( fon_buff, "n%d", 1 );
_getvideoconfig (&vc);
maxx=vc.numxpixels;
_setfillmask(f_mask);
mouse (0,&m_x,&m_y,&m_k);
}
void outmenu (void) {
mouse (2,&m_x,&m_y,&m_k);
mouse (1,&m_x,&m_y,&m_k);
clrbuff();
_clearscreen(_GCLEARSCREEN);
_setcolor(9);
_floodfill(20,20,1);
int count=fileop("zastavka.prg",massiv);
picture (count,massiv,0);
_setcolor(0);
_rectangle(_GFILLINTERIOR,130,55,530,245);
_setcolor(7);
_rectangle(_GFILLINTERIOR,120,50,520,240);
_setcolor(0);
_setcharsize(16,16);
_setfont( fon_buff );
_setcharsize(50,40);
for (int i=1;i<3;i++){
_grtext(170+i,50," Êîíòðîëü");
_grtext(140+i,115," Îáó÷åíèå ");
_grtext(180+i,182," Âûõîä ") ;
}
_setfont( fon_buff );
_setcharsize(8,9);
_grtext(420,340,"CopyRigth by Andy (C) 1996");
_setcharsize(50,40);
_setfont( fon_buff );
}
int picture (int count, char massiv[], int index){
int i=index;
while (i<count){
switch(massiv[i]){
case 'C':{
i=msv_tmp(i,massiv);
sscanf(temp,"%f,%f,%f,%d",&x,&y,&radius,&color);
_setcolor(color);
float r_ratio=ratio;
double asp_radius=sqrt(radius*radius+radius*radius);
calcxy();
if (radius==12) r_ratio=int (ratio);
if (radius==40) r_ratio=1.0259;
radius=radius/r_ratio;
_ellipse(_GBORDER,x-radius,y-radius/1.4,x+radius,y+radius/1.4);
break;
}
case 'L': {
i=msv_tmp(i,massiv);
sscanf (temp," %f, %f, %f, %f, d,%s",&x,&y,&x1,&y_1,&color,&command);
calcxy();
_setcolor(color);
switch(command){
case 'B': {
_rectangle(_GBORDER,x,y,x1,y_1);
break;
}
case 'F': {
_rectangle(_GFILLINTERIOR,x,y,x1,y_1);
break;
}
case 'L': {
_moveto(x1,y_1);
_lineto(x,y);
break;
←ïðåäûäóùàÿ ñëåäóþùàÿ→
1 2 3 4 5 6
|
|