Ejemplo n.º 1
0
void intro(void) {
	FILE *in;
	char ch;
	int i,j;
	int vk;
	
	clearScreen();
	
	in = fopen("intro.txt","r");
	/* 把檔案�堶悸漲r讀取並顯示出來 */
	for(i=0;i<HEIGHT;i++) {
		for(j=0;j<WIDTH*2;j++) {
			while((ch = fgetc(in)) == '\n' || ch == '|' || ch == '-');  
			putASCII2(j + OFFSET_X,i + OFFSET_Y,ch,15,0);
		}
	}
	fclose(in);
	drawCmdWindow();
	
	/* 當使用者按下 Enter 鍵即離開 */
	while(1) {
		if(waitForKeyDown(1)) {
			vk=getKeyEventVirtual();
			if(vk == VK_RETURN)
				break;
		}
		if(i==0)
			putString(46+OFFSET_X,18+OFFSET_Y,"                    ",12,0);
		else
			putString(46+OFFSET_X,18+OFFSET_Y,"想離開請按 Enter ...",12,0);
		drawCmdWindow();
		i= !i;
	}
}
Ejemplo n.º 2
0
void SinglePlayer(void)
{
    /* 啟動鍵盤控制 */
    initializeKeyInput();
    char ch='0';
    winTimes=0;  //Left
    loseTimes=0;
    count = 0;
    int pick = -1;
    int initime=clock();
    int time;

    while(winTimes<3 && loseTimes<3)
    {

        clearScreen();
        if(turn == 0)
        {
            ch = getKeyEventVirtual();
            switch(ch)
            {
            case 0x58: //左方拍桌

                check(pick,initime);
                initime = clock();
                break;
            case 0x5A:
                if(count==pick)
                {
                    Loser();
                }
                else
                    getNewCard();
                initime = clock();
                break;
            }
        }
        else
        {
            if(waitForKeyDown(3.0))
            {
                ch = getKeyEventVirtual();
                if(ch == 0x58){
                    check(pick,initime);
                    initime = clock();
                }
            }
            else //if(tick > WAIT_TIME)
            {
                getNewCard();
                initime = clock();
            }
        }
    }
    if(loseTimes==3)
        gameover();
    showingPlane =2;
}
Ejemplo n.º 3
0
void rankList(void)
{
	FILE *in;
	char name[100];
	char toString[100];
	int score;
	int i=1;
	int vk;
	
	clearScreen();
	
	in = fopen("ranklist.slmt","r");
	
	putString(24+OFFSET_X,1+OFFSET_Y,"排     行     榜",11,5);
	
	while(fscanf(in,"%d,%s",&score,name) == 2) {
		
		sprintf(toString,"%d.  %7d",i,score);
		putString(14+OFFSET_X,i*2+1+OFFSET_Y,toString,15,0);
		putString(44+OFFSET_X,i*2+1+OFFSET_Y,name,15,0);
		
		i++;
	}
	
	fclose(in);
	drawCmdWindow();
	
	/* 當使用者按下 Enter 鍵即離開 */
	while(1) {
		if(waitForKeyDown(1)) {
			vk=getKeyEventVirtual();
			if(vk == VK_RETURN)
				break;
		}
		if(i==0)
			putString(46+OFFSET_X,18+OFFSET_Y,"                    ",12,0);
		else
			putString(46+OFFSET_X,18+OFFSET_Y,"想離開請按 Enter ...",12,0);
		drawCmdWindow();
		i= !i;
	}
}
Ejemplo n.º 4
0
void saveScore(int FinScore)
{
	FILE *in,*out;
	int i,j,temp;
	int k,l;
	char name[8][100];
	char input[100]="\0";
	char vk;
	char toString[10];
	int score[8];
	
	in = fopen("ranklist.slmt","r");
	
	for(i=0;i<8;i++) {
		fscanf(in,"%d,%s",&score[i],name[i]);
	}
	
	fclose(in);
	i=0;
	
	while(FinScore < score[i])
		i++;
		
	if( i < 8 ) {
		/* 把分數往後推一格 */
		for(j=7;j>i;j--)
			score[j] = score[j-1];
		/* 把姓名往後推一格 */
		for(j=7;j>i;j--)
			strcpy(name[j],name[j-1]);
		
		score[i]=FinScore;
		
		/* 要求輸入姓名 */
		j=0;
		while(1) {
			for(k=0;k<7;k++)
				for(l=0;l<32;l++)
					putASCII2(20 + l + OFFSET_X,8 + k + OFFSET_Y,' ',14,1);
			if(waitForKeyDown(0.5)) {
      		vk=getKeyEventASCII();
      		if((isalpha(vk) || isdigit(vk) || vk == '.') && j<=15) { /* 接受英文字母、數字和點 */
	      		input[j]=vk;
   	   		j++;
   	   		input[j]='\0';
				} else if (vk == 0x08 && j>0) { /* 倒退鍵  */
					j--;
					input[j]='\0';
				} else if (vk == 0x0D) { /* Enter 鍵  */
				   if(input[0] != '\0') {
   					strcpy(name[i],input);
					   break;
               }
				}
			}
      	
			sprintf(toString,"Yor Score:%5d",FinScore);
			putString(26+OFFSET_X,9+OFFSET_Y,toString,15,1);
			putString(23+OFFSET_X,10+OFFSET_Y,"Your Name: ",15,1);
			putString(34+OFFSET_X,10+OFFSET_Y,input,15,1);
			putString(22+OFFSET_X,12+OFFSET_Y,"請輸入您的名字(less than 15)",15,1);
			putString(28+OFFSET_X,13+OFFSET_Y,"按 Enter 完成",15,1);
			
			drawCmdWindow();
		}
		
	}
	
	
	out = fopen("ranklist.slmt","w");
	for(i=0;i<8;i++) {
		fprintf(out,"%d,%s\n",score[i],name[i]);
	}
	fclose(out);
}