C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

楼主: admin

迷宫游戏 [复制链接]

Rank: 2

主题
3
帖子
16
C币
62 枚
在线时间
8 小时
发表于 2011-11-8 13:14:27 |显示全部楼层
分享到:
我要好好学习

Rank: 6Rank: 6

主题
5
帖子
138
C币
658 枚
在线时间
92 小时
发表于 2011-11-8 20:34:07 |显示全部楼层
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <bios.h>
  4. char leftbuf[40*25*2];/*切换时保存左窗口文本*/
  5. char rightbuf[40*25*2];/*切换时保存右窗口文本*/
  6. int leftx, lefty;/*切换时保存左窗口当前坐标*/
  7. int rightx, righty;/*切换时保存右窗口当前坐标*/
  8. void draw_left_win();/*重绘左边窗口*/
  9. void draw_right_win();/*重绘右边窗口*/
  10. int main()
  11. {
  12.         int key;
  13.         int turn;
  14.         textmode(C80);
  15.         textbackground(0);
  16.         textcolor(WHITE);
  17.         clrscr();
  18.         gotoxy(60,1);
  19.         cprintf("Press Esc to Quit");
  20.         window(41,2,79,24); /*右边窗口为绿色背景,红色前景*/
  21.         textbackground(2);
  22.         textcolor(4);
  23.         clrscr();
  24.         gettext(41,2,79,24, rightbuf);
  25.         window(2,2,40,24); /*左边窗口为蓝色背景,白色前景*/
  26.         textbackground(1);
  27.         textcolor(15);
  28.         clrscr();
  29.         gettext(2,2,40,24, leftbuf);
  30.         turn = 0; /*初始激活左窗口*/
  31.         for(;;)
  32.         {
  33.                 key=bioskey(0);
  34.                 if(key == 0x11b)
  35.                         exit(0);
  36.                 if((key&0xff)!=0) key=key&0xff; /*获取窗口输入的文本的ASCII 码值*/
  37.                 if(key == '\t')
  38.                 {
  39.                         if(turn == 0) /*切换到左窗口*/
  40.                         {
  41.                                 gettext(2,2,40,24, leftbuf);
  42.                                 leftx = wherex();
  43.                                 lefty = wherey();
  44.                                 draw_right_win();
  45.                                 turn = 1;
  46.                         }
  47.                         else if(turn == 1) /*切换到右窗口*/
  48.                         {
  49.                                 gettext(41,2,79,24, rightbuf);
  50.                                 rightx = wherex();
  51.                                 righty = wherey();
  52.                                 draw_left_win();
  53.                                 turn = 0;
  54.                         }
  55.                 }
  56.                 else
  57.                         putch(key); /*当前光标处显示新输入的文本字符*/
  58.         }
  59. }
  60. void draw_right_win()
  61. {
  62.         window(41,2,79,24);
  63.         textbackground(2);
  64.         textcolor(4);
  65.         clrscr();
  66.         puttext(41,2,79,24, rightbuf);
  67.         gotoxy(rightx, righty);
  68. }
  69. void draw_left_win()
  70. {
  71.         window(2,2,40,24);
  72.         textbackground(1);
  73.         textcolor(15);
  74.         clrscr();
  75.         puttext(2,2,40,24, leftbuf);
  76.         gotoxy(leftx, lefty);
  77. }
复制代码
简单的二窗口编辑器 tab键换窗口 ESC退出

Rank: 6Rank: 6

主题
5
帖子
138
C币
658 枚
在线时间
92 小时
发表于 2011-11-8 20:51:01 |显示全部楼层
http://code.knowsky.com
附件: 你需要登录才可以下载或查看附件。没有帐号?加入社区!
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-5-20 18:22

©2009-2011 cyuyan.com.cn

回顶部