示例#1
0
int main() {

    Point p1;
    p1.x = 1;
    p1.y = 0;
    p1.z = 2;

    Point p2 = {3.5, 4, 5};

    printf("p1: ");
    print_point(&p1);
    printf("\n");

    printf("p2: ");
    print_point(&p2);
    printf("\n");

    Point p3;
    scan_point(&p3);
    printf("p3: ");
    print_point(&p3);
    printf("\n");

    Planet earth = { "Earth", { 100, 500, 0.5 } };
    printf("%s: ", earth.name);
    print_point(&earth.position);
    printf("\n");

    Planet mars = { "Mars", { 500, 700, 0.8 } };

    Planet solar_system[] = { earth, mars };

    return 0;
}
示例#2
0
//int main(int argc, const char *argv[])
int  server_op(void)
{
    int  len;
    int server_sock;
    socklen_t client_len;
    struct sockaddr_in server, client;
    struct in_addr in;
    char flag_s = 1;

    if((server_sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
    {
        perror("socket");
        exit(1);
    }
    else
        printf("socket success!\n");
    
    bzero(&server, sizeof(server));
    server.sin_family = AF_INET;
    server.sin_port = htons(SERVER_PORT);
    server.sin_addr.s_addr = ntohs(INADDR_ANY); 

    if(bind(server_sock, (struct sockaddr *)&server, sizeof(server)) < 0)
    {
        perror("bind");
        exit(1);
    }
    else
        printf("bind address success!\n");
    
    while(1)
    {
        if(flag_s == 1)
        {
            client_len = sizeof(client);
            len = recvfrom(server_sock, &buffer, sizeof(buffer), 0, (struct sockaddr *)&client, &client_len);
            if(len < 0)
            {
                close(server_sock);
                perror("recvform");
                exit(1);
            }
            else
            {
                printf("recvform success !\n");
                in.s_addr = client.sin_addr.s_addr;
                printf("client ip = %s\n", inet_ntoa(in));
                printf("client port = %d\n", ntohs(client.sin_port));
                printf("\n");
                global_x = buffer.x;
                global_y = buffer.y;
                    //scan_point(global_x + STARTX, global_y + STARTY);
                scan_point(STARTX + global_x*SPACE, STARTY + global_y*SPACE);
                flag_s = 0;
            }
        }

        mouse_doing();

        if(flag == 1)
        {
            flag = 0;
            buffer.x = global_x;
            buffer.y = global_y;
            //client_len = sizeof(client);
            sendto(server_sock, &buffer, sizeof(buffer), 0, (struct sockaddr *)&client, client_len);
            flag_s = 1;
        }
    }
    printf("client close the connect, please wait for new connect\n");
    close(server_sock);
    return 0;
}
示例#3
0
int mouse_doing(void)
{
    m_event mevent;
    //int fd;
    //int mx = 512;
    //int my = 384;
    char victory = -1;

    //fd = open("/dev/input/mice", O_RDWR|O_NONBLOCK);
    //if(fd < 0)
    //{
    //perror("open");
    //exit(1);
    //}

    //print_color();
    //mouse_cursor(mx, my);
    //while(1)
    //{
    if(get_m_info(fd, &mevent) > 0)
    {
        restore_shape(mx, my);
        mx += mevent.dx;
        my += mevent.dy;

        mx = ((mx >= 0) ? mx : 0);
        my = ((my >= 0) ? my : 0);
        if(mx >= (fb_v.w-C_WIDTH))
        {
            mx = (fb_v.w-C_WIDTH);
        }
        if(my >= (fb_v.h-C_HEIGHT))
        {
            my = (fb_v.h-C_HEIGHT);
        }

        mouse_cursor(mx, my);
        switch(mevent.mode)
        {
        case 1:
            restore_shape(mx, my);
            if (scan_point(mx, my) == 0)
            {
                //if(global_color == 0x00ffffff)
                //{
                //global_color = 0x00000000;
                //who = 1;
                //}
                //else
                //{
                //global_color = 0x00ffffff;
                //who = 2;
                //}
                flag = 1;
                chess_count(mx, my);
                //global_x = mx - STARTX;
                //global_y = my - STARTY;
                //global_x = mx;
                //global_y = my;
                victory = check_all();
            }
            mouse_cursor(mx, my);
            break;
        case 2:
            break;
        case 4:
            break;
        default:
            break;
        }
#if 0
        if(victory == 1)
        {
            printf("play%d won!\n", who);
            printf("contniue ? y/n\n");
            if(getchar() == 'n')
                return 0;
            else
            {
                memset((u8_t *)fb_v.fb_men, 0, fb_v.h * fb_v.w *fb_v.bpp/8);
                memset(board, 0, H_NUM * V_NUM);
                fb_backgound(0, 0, fb_v.w - 1, fb_v.h - 1, 0x00996600);
                fb_backgound(STARTX, STARTY, STARTX + (V_NUM - 1) * SPACE, STARTY + (H_NUM - 1) * SPACE, 0x00ffcc33);
                fb_board(0x000000ff);
                print_color();
                mouse_cursor(512, 384);
                global_color = 0xffffffff;
                who = 1;
                victory = -1;
                mx = 512;
                my = 384;
                mouse_cursor(mx, my);
            }
            getchar();
        }
#endif
    }
    usleep(1000);
    //}
    return 0;
}