Beispiel #1
0
void temp_ShowCounting(count)
{
    char *card;
    card = (char*)malloc(sizeof(char));
    *(card+1) = '\0';
    if(count<10)
        *card = ('0'+count);
    else if(count == 11)
        *card = '+';
    else if(count == 11)
        *card = 'J';
    else if(count == 12)
        *card = 'Q';
    else if(count == 13)
        *card = 'K';
    putStringLarge(large_font, 10, 40, "NUM   ", (*(counting_place+(count%2))).x,(*(poker_place+(count%2))).y);
    putStringLarge(large_font, 50, 40, card, (*(counting_place+(count%2))).x+20,(*(poker_place+(count%2))).y);
    drawCmdWindow();
    free(card);
}
Beispiel #2
0
int single_game(){
    Audio RRR;
    openAudioFile(".\\wav\\RRR.wav", &RRR);
	initializeKeyInput();
	Character yg = characterMaking1(".\\pic\\yg.pixel",".\\pic\\yg.color");
	int key_val[NUM_KEYS]={VK_A,VK_D,VK_ESCAPE};
	int stand=0,score=0,standBrick,pDown1,pDown2;
	double drop=0,scoreCount=0;
	Brick bricks[15];
	int i,j,k;
    char scoreStr[4]={'0'};
	for(i=0;i<10;i++){
		bricks[i].y=-1;
		bricks[i].w=40;
		bricks[i].h=2;
		if(i%2==0)bricks[i].color=15;
		else if(i<=5)bricks[i].color=8;
		else if(i>5)bricks[i].color=12;
		else bricks[i].color=10;
	}
	bricks[0].x=0;
	bricks[0].y=100;
	Font *large_font=read_font("font.txt");
	float lastbrick=0;
	int hp = 10,second=0;
	float rate=0.15;
	while(1){
		clearScreen();
		srand(clock());
        for(i=0;i<10;i++){
            if(bricks[i].y>0)bricks[i].y--;
            else if(bricks[i].y==0)bricks[i].y=-100;
            for(k=0;k<2;k++){
                for(j=0;j<bricks[k].w;j++){
                    putString(bricks[i].x+j,bricks[i].y+k,"=",bricks[i].color,0);
                }
            }
        }
        if(score>50){
            rate = 0.2;
        }
        else if(score>75){
            rate = 0.25;
        }
        else if(score>100){
            rate = 0.3;
        }
		if((float)clock()/(float)CLOCKS_PER_SEC-(float)lastbrick>rate&&rand()%10==1){
			for(i=0;i<10;i++){
				if(bricks[i].y<0){
					bricks[i].y=170;
					bricks[i].x=rand()%185;
					lastbrick=(float)clock()/(float)CLOCKS_PER_SEC;
					for(k=0;k<2;k++){
                        for(j=0;j<bricks[i].w;j++){
                            putString(bricks[i].x+j,bricks[i].y+k,"=",bricks[i].color,0);
                        }
                    }
					break;
				}
			}
		}

        for(k=0;k<10;k++){
        	if(abs(yg.y+yg.h-bricks[k].y)<=2&&(
            (yg.x+yg.w>bricks[k].x&&yg.x+yg.w<bricks[k].x+bricks[k].w)||
            (yg.x>bricks[k].x&&yg.x<bricks[k].x+bricks[k].w))){
        		stand=1;
        		standBrick=k;
        		yg.y=bricks[k].y-yg.h;
                break;
			}
			else if(k==9){
                stand=0;
                standBrick=-1;
			}
		}

        if(stand==1){
            drop=0;
            second++;
            if(bricks[standBrick].color==15&&second==15){
                second=0;
                if(hp<10)hp++;
            }
            else if(bricks[standBrick].color==12){
                second++;
                if(second==20){
                    second=0;
                    hp--;
                    playAudio(&RRR);
                }
            }
            else if(bricks[standBrick].color==8){
                if(second==10){
                    second=0;
                    bricks[standBrick].y=-100;
                }
            }
		}
		else{
            if(drop<2)drop+=0.5;
            yg.y+=(int)drop;
            second=0;
		}

		if(yg.y<0){
            yg.y+=10;
            drop=3;
            hp-=4;
            playAudio(&RRR);
		}
		for (k = 0 ; k < NUM_KEYS ; k++){
            if(KEY_DOWN(key_val[k])){
                switch (key_val[k]){
	                case VK_A:
	                	if(yg.x>=0)yg.x-=5;
	                	break;
	                case VK_D:
	                	if(yg.x+yg.w<225)yg.x+=5;
	                	break;
                    case VK_ESCAPE:
                        return 3;
                        break;
          	  	}
            }
        }
        show_image(yg.pic,yg.x,yg.y);
        for(i=0;i<225;i++){
            for(j=151;j<=170;j++){
                putString(i,j," ",0,0);
            }
        }
		putStringLarge(large_font,159,158,"HP ",15);
		putStringLarge(large_font,159,152,"STAGE ",15);
		scoreCount++;
		score = (pow(scoreCount/300,1.5));
		scoreStr[0]=score/100+'0';
		scoreStr[1]=score/10%10+'0';
		scoreStr[2]=score%10+'0';
		putStringLarge(large_font,201,152,scoreStr,15);
		for(i=0;i<hp;i++){
            for(j=1;j<5;j++){
                for(k=0;k<=4;k++)putString(180+i*4+j,158+k,"|",12,0);
            }
		}
		for(i=0;i<225;i++)putString(i,0,"V",12,0);
        for(i=0;i<225;i++){
            putString(i,149,"=",12,0);
        }
        for(i=0;i<150;i++){
            putString(0,i,"|",0,12);
            putString(224,i,"|",0,12);
        }
        drawCmdWindow();
        if(yg.y>150||hp<=0){
            break;
		};
        if(KEY_UP(VK_P)&&pDown1)pDown1=0;
        if(KEY_UP(VK_P)&&pDown2)pDown2=0;
        if(KEY_DOWN(VK_P)&&!pDown1){
            pDown1=1;
            putStringLarge(large_font,45,70,"Press P to continue",12);
            drawCmdWindow();
            Sleep(500);
            while(1){
                if(KEY_DOWN(VK_P)&&!pDown2){
                    pDown2=1;
                    break;
                }
            }
        }
		Sleep(20);
	}
	pauseAudio(&RRR);
	Image * jh =read_image(".\\pic\\jh.pixel",".\\pic\\jh.color");
	show_image(jh,15,30);
    putStringLarge(large_font,75,80,"SCORE ",15);
    putStringLarge(large_font,120,80,scoreStr,15);
    drawCmdWindow();
	Audio *barbar;
	openAudioFile(".\\wav\\88wav.wav",&barbar);
	playAudio(&barbar);
	Sleep(3500);
	int flagg = 1;
    putStringLarge(large_font, 45, 90, "Press esc to exit", 15);
    drawCmdWindow();
    while(flagg){
        if(KEY_DOWN(VK_ESCAPE))return 3;
    }
	clearScreen();
}
Beispiel #3
0
void MuitiplePlayers(void)
{
    Font *large_font = read_font("font.txt");
    /* 啟動鍵盤控制 */
    initializeKeyInput();
    char ch,prech='0';
    char *card;
    card = (char*)malloc(sizeof(char));
    *(card+1) = '\0';

    int isWin=0,isLose=0;
    int count = 0, pick;
    int initime =clock(), time;
    int turn=2; // 1:Right 2:Left

    while(isWin<3 && isLose<3)
    {
        clearScreen();
        time = clock() - initime;

        ch = getKeyEventVirtual();
        switch(ch)
        {
        case VK_LEFT: //右方拍桌
            if(( count==pick && time<10 )|| count==14)
            {
                //win(10);
                putStringLarge(large_font, 200, 20, "YOU WIN!!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 2;
                time = 0;
                isLose++;
            }
            else if(count==pick)
            {//show_image(*(poker+1),0,0);
    //drawCmdWindow();
                //AIwin();
                putStringLarge(large_font, 200, 20, "YOU LOSE! How slow you are!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 1;
                time = 0;
                isWin++;
            }

            else
            {
                //lose(10);
                putStringLarge(large_font, 200, 20, "YOU LOSE! Watch out the number!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 1;
                time = 0;
                isWin++;
            }
            break;

            break;
        case 0x58: //左方拍桌
            if(( count==pick && time<10 )|| count==14)
            {
                //win(10);
                putStringLarge(large_font, 10, 20, "YOU WIN!!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 1;
                time = 0;
                isWin++;
            }
            else if(count==pick)
            {
                //AIwin();
                putStringLarge(large_font, 10, 20, "YOU LOSE! How slow you are!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 2;
                time = 0;
                isLose++;
            }

            else
            {
                //lose(10);
                putStringLarge(large_font, 10, 20, "YOU LOSE! Watch out the number!", 15, 15);
                drawCmdWindow();//show_image(*(poker+1),0,0);
    //drawCmdWindow();
                Sleep(200);
                turn = 2;
                time = 0;
                isLose++;
            }
            break;

        case 0x5A: //左方發牌
            if(count==pick|| count==14)
            {
                putStringLarge(large_font, 10, 20, "YOU LOSE! Watch out the number!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 2;
                time = 0;
                isLose++;
            }
            else if(turn == 2)
            {
                count = count%13 +1;
                if(count<11)
                    *card = ('0'+count);
                else if(count == 11)
                    *card = 'J';
                else if(count == 12)
                    *card = 'Q';
                else if(count == 13)
                    *card = 'K';
                putStringLarge(large_font, 100, 40, "NUM   ", 0, 15);
                putStringLarge(large_font, 150, 40, card, 0, 15);
                pick = (rand()%13)+1;
                if(pick<11)
                    *card = ('0'+pick);
                else if(pick == 11)
                    *card = 'J';
                else if(pick == 12)
                    *card = 'Q';
                else if(pick == 13)
                    *card = 'K';
                else if(pick == 14)
                    *card = 'P';
                putStringLarge(large_font, 100, 50, "CARD  ", 0, 15);
                putStringLarge(large_font, 150, 50, card, 0, 15);
                time = 0;
                turn = 1;
                int ran = (rand()%4)+1;
                //show_image(poker[0][0],100,20);
                drawCmdWindow();
            }//show_image(*(poker+1),0,0);
    //drawCmdWindow();
            break;
        case VK_DOWN: //右方發牌
            if(count==pick|| count==14)
            {
                putStringLarge(large_font, 200, 20, "YOU LOSE! Watch out the number!", 15, 15);
                drawCmdWindow();
                Sleep(200);
                turn = 1;
                time = 0;
                isWin++;
            }
            else if(turn == 1)
            {
                count = count%13 +1;
                if(count<11)
                    *card = ('0'+count);
                else if(count == 11)
                    *card = 'J';
                else if(count == 12)
                    *card = 'Q';
                else if(count == 13)
                    *card = 'K';
                putStringLarge(large_font, 100, 40, "NUM   ", 0, 15);
                putStringLarge(large_font, 150, 40, card, 0, 15);
                pick = (rand()%13)+1;
                if(pick<11)
                    *card = ('0'+pick);
                else if(pick == 11)
                    *card = 'J';
                else if(pick == 12)
                    *card = 'Q';
                else if(pick == 13)
                    *card = 'K';
                else if(pick == 14)
                    *card = 'P';
                putStringLarge(large_font, 100, 50, "CARD  ", 0, 15);
                putStringLarge(large_font, 150, 50, card, 0, 15);
                time = 0;
                turn = 2;
                int ran = (rand()%4)+1;
                //show_image(poker[0][0],100,20);
                drawCmdWindow();
            }
            break;//show_image(*(poker+1),0,0);
    //drawCmdWindow();

        case VK_ESCAPE:
            break;
        }

    }
    if(winTimes==3)
    {
        Loser2(50,35);//send location
        Winner2(300,35);//send location
        showingPlane =1;
    }
    else if(loseTimes==3)
    {
        Loser2(300,35);//send location
        Winner2(50,35);//send location
        showingPlane =1;
    }
}
Beispiel #4
0
void Menu(void)
{
    /* 啟動鍵盤控制 */
    initializeKeyInput();
    //show_image(poker[0][3],150,100);


    char ch;
    int place = 0;
    int color1[3];
    int color2[3];

    //initialize bottoms
    int i;
    for( i=0; i<3; i++)
    {
        if(i==n)
        {
            color1[i] = 12;
            color2[i] = 12;
        }
        else
        {
            color1[i] = 2;
            color2[i] = 2;
        }
    }

    putStringLarge(large_font, 100, 20, "MENU", 15, 15);
    putStringLarge(large_font, 50, 30+10*1, "Single Player Mode", color1[0], color2[0]);
    putStringLarge(large_font, 50, 30+10*2, "Two Players Mode", color1[1], color2[1]);
    putStringLarge(large_font, 50, 30+10*3, "Help", color1[2], color2[2]);
    putStringLarge(large_font, 180, 100, "CTRL TO SETECT", 7, 7);

    ch = getKeyEventVirtual();

    switch(ch)
    {
    case VK_UP:
        n = (n+2)%3;
        break;
    case VK_DOWN:
        n = (n+1)%3;
        break;
    case VK_CONTROL:
        switch(n)
        {
        case 0:
            showingPlane = 2;
            break;
        case 1:
            showingPlane = 3;
            break;
        case 2:
            showingPlane = 4;
            break;
        default:
            break;
        }
    }

}