• 简单的键盘画图


    #include <bios.h>
    #define UP 0x4800
    #define DOWN 0x5000
    #define LEFT 0x4b00
    #define RIGHT 0x4d00
    #define SPACE 0x3920
    #define ENTER 0x1c0d
    main()
    {
        struct point
        {
            int x, y;
        } a;            /*定义a为结构体point类型*/
        int key, key1;
        a.x = 40;           /*设置光标的初始位置*/
        a.y = 10;
        clrscr();
        gotoxy(a.x, a.y);          /*光标定位在指定位置*/
        printf("%c", 6);
        while (bioskey(1) == 0)
        {
            key = bioskey(0);         /*将所按键盘的控制码赋给key*/
            switch (key)
            {
                case UP:          /*当按键为向上键时实现向上画图*/
                    {
                        a.y -= 1;        /*纵坐标减1*/
                        if (a.y == 0)
                            a.y = 24;
                        gotoxy(a.x, a.y);
                        printf("%c", 6);
                        break;
                    }
                case DOWN:         /*当按键为向下键时实现向下画图*/
                    {
                        a.y += 1;        /*纵坐标加1*/
                        if (a.y == 24)
                            a.y = 1;
                        gotoxy(a.x, a.y);
                        printf("%c", 6);
                        break;
                    }
                case LEFT:         /*当按键为向左键时实现向左画图*/
                    {
                        a.x -= 1;        /*横坐标减1*/
                        if (a.x == 0)
                            a.x = 80;
                        gotoxy(a.x, a.y);
                        printf("%c", 6);
                        break;
                    }
                case RIGHT:         /*当按键为向右键时实现向右画图*/
                    {
                        a.x += 1;        /*横坐标加1*/
                        if (a.x == 80)
                            a.x = 1;
                        gotoxy(a.x, a.y);
                        printf("%c", 6);
                        break;
                    }
                case ENTER:         /*当按键为回车键时光标跳到下一列且不画图*/
                    {
                        a.y += 1;        /*纵坐标加1*/
                        if (a.y == 24)
                            a.y = 1;
                        gotoxy(a.x, a.y);
                        break;
                    }
                case SPACE:         /*当按键为空格键时执行大括号内的语句*/
                    {
                        while (bioskey(1) == 0)
                        {
                            key1 = bioskey(0);     /*将所按键盘的控制码赋给key*/
                            switch (key1)
                            {
                            case UP:       /*当按键为向上键时向上清除所画图像*/
                                {
                                    a.y -= 1;
                                    if (a.y == 0)
                                        a.y = 24;
                                    gotoxy(a.x, a.y);
                                    putch(' ');
                                    break;
                                }
                            case DOWN:      /*当按键为向下键时向下清除所画图像*/
                                {
                                    a.y += 1;
                                    if (a.y == 24)
                                        a.y = 1;
                                    gotoxy(a.x, a.y);
                                    putch(' ');
                                    break;
                                }
                            case LEFT:       /*当按键为向左键时向左清除所画图像*/
                                {
                                    a.x -= 1;
                                    if (a.x == 0)
                                        a.x = 80;
                                    gotoxy(a.x, a.y);
                                    putch(' ');
                                    break;
                                }
                            case RIGHT:      /*当按键为向右键时向右清除所画图像*/
                                {
                                    a.x += 1;
                                    if (a.x == 80)
                                        a.x = 1;
                                    gotoxy(a.x, a.y);
                                    putch(' ');
                                    break;
                                }
                            case ENTER:      /*当按键为回车键时光标跳到下一列且不画图*/
                                {
                                    a.y += 1;
                                    if (a.y == 24)
                                        a.y = 1;
                                    gotoxy(a.x, a.y);
                                    break;
                                }
                            }
                            if (key1 == 0x3920)     /*当按键为空格键时,跳出循环*/
                                break;
                        }
                    }
            }
            if (key == 0x011b)         /*当按键为esc时,退出循环*/
                break;
        }
    }
  • 相关阅读:
    div设置参数contenteditable=true
    Html事件总结
    PHP的isset()和empty()比较
    jQuery的ajax和遍历数组json代码
    PHP获取域名的几个函数使用
    关于网站favicon.ico
    PROCEDURE ANALYSE 通过分析select查询结果
    mysql 存在更新 不存在插入
    MySQL Migration Toolkit的使用
    高性能MySQL读书笔记:找出谁持有锁
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/1960119.html
Copyright © 2020-2023  润新知