C++控制台界面库_实例7:别踩白块

代码如下:

// Sample1.cpp : 定义控制台应用程序的入口点。
//

#include <stdio.h>
#include “console.h”
#pragma comment(lib,“console.lib”)
#include <time.h>

void jiemian0(); // 0

int main()
{
Screen screen;
screen.ShowOrHideCursor(0);
screen.SetTitle(“别踩白块”);

Event event;
event.AddMouseMode();

jiemian0();

event.RestoreMode();
screen.MoveCursorTo(29, 30);
screen.Pause();
screen.Close_handle();
return 0;
}

void jiemian0()
{
Screen screen;
screen.SetSize(61,33);
screen.Paint_screen(14);

screen.TextAttribute(4,14);
screen.DisplayText(1,25,“说明: 鼠标点击黑框,或按代表黑框的字母。”);

Button EXIT_button=Button(30,30,“退出”);
EXIT_button.Attribute(2,14);
EXIT_button.Display_button();

Event event;

Window window0=Window(1,12,60,10);

Window window[4]={Window(1,12,14,10),Window(16,12,14,10),Window(31,12,14,10),Window(46,12,14,10)};
screen.Character_Bgcolor_num=14;
screen.Character_color_num=4;
char s[4]={‘A’,‘S’,‘D’,‘F’};
for(int i=0;i<4;i++)
{
window[i].Paint_window(1);
screen.DisplayCharacter(window[i].cx0+window[i].wide/2,window[i].cy0+window[i].heigh,s[i],1);
}

srand((unsigned)time(0));
int num=(int)(rand()%4);
window[num].Paint_window(0);

int selection=10;
int score = 0;

while(1)
{
event.ReadEvent();
if(event.Mouse_Event())
{
if(EXIT_button.MousePosition_At_button()
&&event.Left_Button_Pressed())
{
break;
}

	for(int i=0;i<4;i++)
		if(window[i].MousePosition_At_window()
			&&event.Left_Button_Pressed()&&!event.Mouse_Moved())
		{
			selection=i;

			if(selection==num)
			{
				for(int x=window0.cx0,y=window0.cy0;y>=1;y--)
				{
					window0.MoveWindow(x,y,14);
					Sleep(20);
				}
				
				for(int i=0;i<4;i++)window[i].Paint_window(1);
				num=(int)(rand()%4);
				window[num].Paint_window(0);

				window0.cx0=1;
				window0.cy0=12;
				selection=10;
				score += 20;
			}
			else 
			{
				screen.SetTextColorAndTextBackgroundColor(2,14);
				screen.MoveCursorTo(10, 30);
				printf("得分:%d", score);						
				return;
			}
		}
}

if(event.Key_Event()&&event.Key_Down())
{
	char ch=event.Get_ch(); 
	WORD vk=event.Get_vk();

	if(ch=='q'||vk==VK_ESCAPE)
	{
		break; 
	}

	if(ch=='a'||ch=='A')selection=0;
	else if(ch=='s'||ch=='S')selection=1;
	else if(ch=='d'||ch=='D')selection=2;
	else if(ch=='f'||ch=='F')selection=3;
	else continue;

	if(selection==num)
	{
		for(int x=window0.cx0,y=window0.cy0;y>=1;y--)
		{
			window0.MoveWindow(x,y,14);
			Sleep(20);
		}

		for(int i=0;i<4;i++)window[i].Paint_window(1);
		num=(int)(rand()%4);
		window[num].Paint_window(0);

		window0.cx0=1;
		window0.cy0=12;
		selection=10;
		score +=100;
	}
	else 
	{
		screen.SetTextColorAndTextBackgroundColor(2, 14); 
		screen.MoveCursorTo(10, 30);
		printf("得分:%d", score);				
		break;
	}
}

}
}

运行效果:

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值