第一章 文本模式游戏
文本模式是字符状态,也是Turbo C的默认模式
Textmode() 能把屏幕设置为文本模式
Void textmode(int mode):
1).mode的值可用模式名or等价的整数值;
2).调用该函数后,屏幕复位,所有字符的属性恢复为缺省值;
3).textmode(C80):意思是把屏幕设置为80列彩色模式。
视频服务程序:INT10中断(BIOS的INT10关于屏幕光标操作的中断和界面菜单制作)。
1.1文本模式游戏制作
1.文本模式下共有80列25行的文本单元(80*25),每个单元与显存中的两个字节对应,前一个字节放ASCII码字符,后一个字节(存放了3个属性,文字颜色,背景颜色,是否闪烁)用来规定该字符的颜色,闪烁等属性。
文本属性
文字颜色,
背景颜色,
是否闪烁。
客观上决定了:文本模式所能传达的信息量<<图形模式。
2.文本模式的流程结构
就是一个带有输入,运算和输出的循环。
3.math.h(数学函数), stdio.h(标准输入输出)
4.conio.h头文件
声明许多针对文本模式屏幕处理的函数;
建立窗口;
设置字符,背景颜色;
清除窗口文本和输入输出等函数。
================================Example==============================
简单的窗口范例:
#include<conio.h>
Int main(void){
char ch;
clrscr();//1.先清屏;
window(10,10,70,11);//2.设置window的窗口;
textattr(128+yellow+(green<<4);//3.设置文本属性,128表示闪烁,Yellow表示文本颜色,//Green<<4表示背景颜色。
cprintf(“Please select a level (1,2,3) you want to play:”);//4.想要对方做什么;
ch = getche();//等到对方输入的对象,getche(),得到字符.
return 0;
}
==================================end=================================
5.getch() and getche()
1).相同之处:
都要引入头文件:conio.h
2).不同之处:
Getch()无返回显示,getche()有返回显示。
==================================Example1============================
#include<stdio.h>
#include<conio.h>
void main(){
char ch;
for (int i=0;i<5;i++){
ch = getch();
printf(“%c”,ch);
}
}
=============================end=====================================
=======================changed example1 for c++ procedures==================
#include <iostream.h>//c++中的输入输出函数
#include<conio.h>
void main(){
char ch;
for (int i=0 ;i<5;i++){
ch = getch();
cout << ch;
}
}
========================changed example1 for c++ procedures end ==============
==================================Example1============================
#include<stdio.h>
#include<conio.h>
void main(){
char c,ch;
c = getch(); //从键盘读入一个字符不回显赋给c
putchar(c); //输出该字符
ch = getche(); //从键盘带回显地读入一个字符并赋给字符ch
putchar(ch); //输出该字符
printf(“/n/n”);
}
}
=============================end=====================================
6.getchar()
等待输入直到按回车,确认结束,回车前的所有输入字符都被逐个显示在屏幕上,但只有第一个字符作为函数的返回值。
=================================Example2=============================
#include<stdio.h>
#include<conio.h>
void main(){
char c;
c = getchar(); //从键盘读入字符,直到回车结束
putchar(c); //显示你输入字符串的第一个字符
printf(“/n/n”);
}
==================================end=================================
==================================Example-3============================
#include<stdio.h>
#include<conio.h>
void main(){
char c;
c = getchar(); //从键盘读入字符,直到回车结束
putchar(c); //显示你输入字符串的第一个字符
printf(“/n/n”);
}
====================================end==============================
==================================Example-4============================
#include<stdio.h>
#include<conio.h>
void main(){
char c;
while((c=getchar())!=’/n’) //每次getchar()依次读入一个字符
pirntf(“%c”,c); // 按照原样输出
printf(“/n/n”);
}
//被输入的字符串并不被提取第一个字符,它们还在I/O流中,每调用一次getchar() 就把缓冲区中离出口最近的一个字符输出,同时把它释放掉,但后面还有字符串,我们就用循环把最前面的字符一个个地从内存中释放掉,直到不满足循环条件为止。
====================================end==============================
在8位的一个字符中它们具体的存放规则是:
位 8 7 6 5 4 3 2 1
含义 是否闪烁 背景颜色 文本颜色
具体值 1闪0不闪 0~7颜色 0~15颜色
==================================guess3.c==============================
===================================end================================