窗口点击模拟

来源:互联网 发布:linux hexdump函数 编辑:程序博客网 时间:2024/06/05 02:55

这里写图片描述
这里写图片描述
这里写图片描述

#include <stdio.h>#include <stdlib.h>int n;struct window {    int no;    int x1;    int y1;    int x2;    int y2;    int layer;}buf[15];void judge(int x, int y){    int i,j=0,size=0;    int ans[5];//记录点击处的窗口号    for (i = 0;i < n;i++)    {        if (x >= buf[i].x1&&x <= buf[i].x2&&y >= buf[i].y1&&y <= buf[i].y2)            ans[j++] = i;    }    size = j;    if (size == 0) return;    int index = 0;    int min = buf[ans[index]].layer;    for (i = 0;i < size;i++)    {        if (buf[i].layer < min)        {               index = ans[i];        }    }    for (i = 0;i < n;i++)    {        if (buf[i].layer < buf[index].layer)  buf[i].layer++;    }buf[index].layer = 1;}int main(){    int p;    while (scanf("%d", &p)!=EOF)    {        freopen("c:\\input.txt", "r", stdin);        scanf("%d", &n);        int i;        for (i = 0;i < n;i++)        {            scanf("%d%d%d%d%d", &buf[i].no,&buf[i].x1, &buf[i].y1, &buf[i].x2, &buf[i].y2);            buf[i].layer = i+1;        }        int click;        scanf("%d", &click);        for(i=0;i<click;i++)        {            int x, y;            scanf("%d%d", &x, &y);            judge(x, y);        }        for (i = 0;i < n;i++)        {            printf("%d ", buf[i].layer);        }    }    return 0;}