用C语言编写一个简单的打字母游戏,给出基本思路及完整程序。 用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对...

\u6c42C\u8bed\u8a00\u7f16\u5199\u7684\u6253\u5b57\u6bcd\u5c0f\u6e38\u620f\uff0c\u8981\u6c42\u6709\u591a\u4e2a\u5b57\u6bcd\u6389\u843d

\u7528bioskey()\u51fd\u6570\u5b9e\u73b0 \u51fd\u6570\u540d: bioskey \u529f \u80fd: \u76f4\u63a5\u4f7f\u7528BIOS\u670d\u52a1\u7684\u952e\u76d8\u63a5\u53e3 \u51fd\u6570\u539f\u578b:int bioskey (int cmd) \u8bf4\u660e:bioskey()\u7684\u51fd\u6570\u539f\u578b\u5728bios.h\u4e2d bioskey()\u5b8c\u6210\u76f4\u63a5\u952e\u76d8\u64cd\u4f5c\uff0ccmd\u7684\u503c\u51b3\u5b9a\u6267\u884c\u4ec0\u4e48\u64cd\u4f5c\u3002 cmd = 0: \u5f53cmd\u662f0\uff0cbioskey()\u8fd4\u56de\u4e0b\u4e00\u4e2a\u5728\u952e\u76d8\u952e\u5165\u7684\u503c(\u5b83\u5c06\u7b49\u5f85\u5230\u6309\u4e0b\u4e00\u4e2a\u952e)\u3002\u5b83\u8fd4\u56de\u4e00\u4e2a16\u4f4d\u7684\u4e8c\u8fdb\u5236\u6570\uff0c\u5305\u62ec\u4e24\u4e2a\u4e0d\u540c\u7684\u503c\u3002\u5f53\u6309\u4e0b\u4e00\u4e2a\u666e\u901a\u952e\u65f6\uff0c\u5b83\u7684\u4f4e8\u4f4d\u6570\u5b58\u653e\u8be5\u5b57\u7b26\u7684ASCII\u7801;\u5bf9\u4e8e\u7279\u6b8a\u952e(\u5982\u65b9\u5411\u952e\u3001F1~F12\u7b49\u7b49)\uff0c\u4f4e8\u4f4d\u4e3a0\uff0c\u9ad88\u4f4d\u5b57\u8282\u5b58\u653e\u8be5\u952e\u7684\u626b\u63cf\u7801\u3002 cmd = 1: \u5f53cmd\u662f1\uff0cbioskey()\u67e5\u8be2\u662f\u5426\u6309\u4e0b\u4e00\u4e2a\u952e\uff0c\u82e5\u6309\u4e0b\u4e00\u4e2a\u952e\u5219\u8fd4\u56de\u975e\u96f6\u503c\uff0c\u5426\u5219\u8fd4\u56de0\u3002 cmd = 2: \u5f53cmd\u662f2\uff0cbioskey()\u8fd4\u56deShift\u3001Ctrl\u3001Alt\u3001ScrollLock\u3001NumLock\u3001CapsLock\u3001Insert\u952e\u7684\u72b6\u6001\u3002\u5404\u952e\u72b6\u6001\u5b58\u653e\u5728\u8fd4\u56de\u503c\u7684\u4f4e8\u4f4d\u5b57\u8282\u4e2d

\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include
int main()
{
char ch;
scanf("%c",&ch);
printf("%c",ch-'a'+'A');
return(0);
}
\u793a\u4f8b\u4e00\uff1a
#include
int main()
{
char ch;
scanf("%c",&ch);
printf("Letter %c converted into a letter %c!",ch,ch-32)\uff1b//\u5927\u5199\u5b57\u6bcdASCII\u7801\u6bd4\u5c0f\u5199\u5b57\u6bcd\u5c0f32
return 0;
}
\u793a\u4f8b\u4e8c\uff1a
ch=getchar();
if(ch>='a'&&ch<='z')
{ch=ch-32;
prinft("\u5927\u5199\u5b57\u6bcd\u662f\uff1a%c\n",ch);
}
else(printf("\u8bf7\u8f93\u5165\u5927\u5199\u5b57\u6bcd");
)
\u793a\u4f8b\u4e09\uff1a
#include
main()
{
char c; //\u58f0\u660e\u53d8\u91cf
scanf("%c",&c); //\u952e\u76d8\u4e0a\u53d6\u503c
printf("%c %c",c,ch-'a'+'A');//\u672c\u8eab\u548c\u5927\u5199\u8f93\u51fa
}

# include<stdio.h>
# include <conio.h>
# include <graphics.h>
# include <time.h>
# pragma comment(lib,”Winmm.lib”) //引用Windows Multimedia APT

int score =0; //全局变量********整型的分数
char s[5]; //全局变量****字符型的分数
struct player_ //自定义的结构体,并顺便定义一个结构体变量
{
char name[20];
int score_;
}player[11];
/***************函数声明*****************/
void record_(); //记录彼此成绩函数
void welcome( ); //欢迎界面函数
void instructions( ); //游戏说明界面函数
void gane (int rank2); //游戏函数
void record ( ); //显示记录函数
int rank_(char rank1); //等级选择函数
void goodbye ( ); //退出界面函数

/**************主函数**************/
int main ()
{
char rank1; //rank1接受从键盘输入的字符,根据字符判断等级
int rank2=15; // 控制延时时间,从而控制速度
intsign=1; // 当做标记,用于标记是否弹出MessageBox对话框

welcome ( ); //调用欢迎界面函数
instructions ( ); //调用游戏什么函数
record( ); //调用显示记录函数
InputBox(player[10].name,20,"请输入玩家昵称"; //以对话框形式获取用户输入函数
rank1=getch();//读入一个字母
rank2=rank_(rank1); //调用等级函数
game (rank2); //调用游戏函数
HWND wnd =GetHWnd();
while (sign) //sign作为标记,执行循环
if (MessageBox(wnd,"游戏结束!!!\n再来一局,挑战更高分数","询问",MB_YESNO|MB_ICONQUESTION)==IDYES)
game (rank2);
else
{
sign=0;
goodbye( );
}
closegraph( );
return 0;
}
/***************记录本次成绩函数***************/
void record_()
{
FILE*fp; //文件指针
int i,j;
struct player_t; //定义结构体变量t,冒泡法比较大小时用
player[10].score_=score; //把该局的分数赋给该局用户的结构体变量中
fp=fopen("记录.dat","rb"); //打开二进制文件
for (i=0;i<10;i++)
{
fread(player[i].name,20,l,fp); //读入记录中的成绩和名字
fread (&player[i].score_,4,l,fp);
}
fclose(fp); //关闭二进制文件
for (j=0;j<10;j++) //冒泡法排序
for (i=0;i<10-j;i++)
if (player[i].score_)
{
t=player[i];
player[i]=player[i+1];
player[i+1]=t;
}
fp=fopen("记录.dat","wb"); //打开文件
for (i=0;i<10;i++) //把排好序列的数据存入记录文件
{
fwrite(player[i].name,20,l,fp);
fwrite (&player[i].score_,4,l,fp);
}
fclose(fp); //关闭文件
}
/****************欢迎界面函数****************/
void welcome ( )
{
char ch;
mciSendString("open\"res\\Sleep Away.mp3\"alias mymusic",NULL,0,NULL);

initgraph(640,480); //初始化画图界面
IMAGE img; //定义IMAGE对象
loadimage (&img,"res\\00.jpg"); //读取图片到img对象中
putimage (0,0,&img); //在坐标(0,0)位置显示IMAGE对象
ch=getch(); //吸收掉一个按键
cleardevice(); //清屏
}

/***************游戏说明界面函数**************/
void instructions()
{
int c=255; //控制变色的变量
setcolor(YELLOW); //设置颜色
setfont (30,0,"黑体"); //设置字体
outtextxy(0,0,"游戏说明"); //输出文字
setcolor(WHITE);
setfont(28,0,"宋体");
outtextxy(0,30,"一、每次游戏下落200个字母"); //输出文字
outtextxy(0,58,"二、请按数字键选择游戏等级");
outtextxy(0,86,"三、统计被击中的个数");
setfont(30,0,"华文行楷")
outtextxy (20,220,"等级一二三四 五六七八九");
outtextxy(20,260,“按键 1 2 3 4 5 6 7 8 9”);
while (!kbhit()) //kihit()作用是判断是否有字幕输入
{
setcolor(RGB(c,255,0));
setfont (80,0,"楷体");
outtextxy(140,130,"请选择等级");
setcolor(RGB(c,0,255));
setfont(100,0,"Wickenden Cafe NDP");
outtextxy(100,135,"Let's go!!!");
c-=25; //控制颜色的变量自减
if(c<0)c=255; //控制颜色的变量小于0时,再把255赋给c
cleardevice(); //清屏
}
/***************退出界面函数***************/
void goodbye()
{
int c=255; //控制变色变量
cleardevice(); //清屏
setcolor(YELLOW);
setfont (48,0,"黑体");
outtextxy (104,120,"的最终成绩是: ");
setfont (48,0,"华文楷体");
setcolor(RGB(255,255,0));
outtextxy(140,320,"按任意键退出游戏");
setcolor(YELLOW);
setfont(48,0,"黑体");
outtextxy (104,120,"的最终成绩是: ");
outtextxy(104,70,player[10].name);
record_(); //调用记录本次成绩函数
while(!kbhit())
{
setcolor(RGB(255,0,c-100)); //设置颜色
setfont(100,0,”Wickenden Café NDP”);
outtextxy(400,90,s); //输出数字
setcolor(RGB(c,0,255));
setfont(48,0,”黑体”);
if (score==200)
outtextxy(100,200,”全部击中!!!”);
else
if(score>190)
outtextxy(100,200,”不错!继续加油!”);
else
outtextxy(100,200,”不要灰心!继续加油!”);
c-=25;
if(c<0)
c=255;
Sleeep(20); //延时20秒
}
getch( ); //提供给用户时需要等待输入后再退出
}
/**************等级选择函数**************/
int rank_(char rank1)
{
int rank2;
switch(rank1) //判断字符,确定等级
{
case’0’:rank2=11;break;
case’1’:rank2=10;break;
case’2’:rank2=9;break;
case’3’:rank2=8;break;
case’4’:rank2=7;break;
case’5’:rank2=6;break;
case’6’:rank2=5;break;
case’7’:rank2=4;break;
case’8’:rank2=3;break;
case’9’:rank2=2;break;
default:rank2=15;break;
}
return rank2;
}

/**************显示记录函数***********/
void record( )
{
FILE *p; //文件指针
int a[10],j;
char b[10][10];
fp=fopen(“记录。dat”,”rb”); //打开文件
for (j=0;j<10;j++)
{
fread(player[j].name,20,1,fp); //读取文件中的信息
fread(&player[j].score_,4,1,fp);
}
fclose(fp); //关闭文件
setfont(60,0,”Arial”);
setcolor(RGB(250,250,0));
outtextxy(250,0,”TOP10”);
for(j=0;j<10;j++)
{
sprintf(“b[j],%d”,player[j].score_); //把整型转换为字符型
setcolor(RGB(0,100,255));
setfont(40,0,”Arial”);
outtextxy(420,50+40*j,b[j]);
outtextxy(120,50+40*j,player[j].name); //输出名字

/**********游戏函数******************/
void game (int rank2)
{
cleardevice( ); //清屏
score=0; //清除掉原有的分数
outtextxy(0,0,”玩家:”);
outtextxy(90,0,player[10].name);
setfont(20,0,”Arial”);
outtextxy(100,460,” 人生有享受片刻优雅恬适的权力,让打字母游戏放松你一下吧!”);
int i;
char target; //目标字母
char key; //用户的按键
intx,y; //字母的位置
int flag =1; //标记是否按了退出键
int sum=0; //成绩计数
int num =200; //规定下落字母的个数
srand (time(NULL)); //随机时间种子,设置第一个随机函数的值
setfillstyle(BLACK); //设置下面矩形内图的颜色
setcolor(YELLOW); //
line(0,450,640,450); //用3条线规定一下工作区
line(0,440,640,440); //用3条线规定一下工作区
line(0,40,640,40); //用3条线规定一下工作区

while (flag&&num)
{
setfont(40,0,”宋体”); //设置字母的字体和大小
i=rand()%2; //rand()函数返回0~32767之间的一个整数
if(i)
target=97+rand()%26; //产生任意小写字母
else
target=65+rand()%26; //产生任意大写字母
x=rand()%610; //产生任意下落位置
for (y=41;y<380;y++)
{
setcolor (RGB(255,0,255));
outtextxy(x,y,target); //显示字母

if(kbhit())
{
key=getch(); //获取用户按键
if ((key==target)||( key==target-32)||( key==target+32))
{
score++; //分数统计
sprintf(s,”%d”score);
setfont(30,0,”Arial”);
outtextxy(500,0,“分数”);
outtextxy(600,0,s); //输出分数
bar(x-10,y-10,x+35,y+50); // 击中用黑框形擦去字母
break; //跳出循环,进行下一个字母
}
else if (key==27) //判断是否按了
{
flag=0; //若果按ESC,退出游戏主循环
break;
}
}
Sleep(rank2); //控制清除字母的时间爱你也就是控制下落速度
bar(x,y,x+35,y+60); //擦最下面的字符
}
num--; //计数
}
}

  • c璇█鍒朵綔涓涓畝鍗曠殑鎵撳瓧娓告垙(钀戒笅涓涓瀛楁瘝鎸夌浉搴斿瓧姣嶆秷鍘,璁板綍...
    绛旓細1琛ㄧず琚寜涓 struct letter *next;}LETR;void meError(void *p);//鍐呭瓨鐢宠澶辫触LETR *newLETR(LETR *letrHead,LETR*letrTail,int wIndex);//浜х敓涓涓柊鐨勫瓧姣锛屽苟娣诲姞鍒伴摼琛,杩斿洖灏捐妭鐐筁ETR* delLETR(LETR *letrHead,LETR*letrTail,int wIndex);//鍒犻櫎鍒椾笅鏍囩殑瀛楁瘝鑺傜偣锛岃繑鍥炴柊鐨...
  • 鐢–璇█缂栧啓涓涓畝鍗曠殑鎵撳瓧姣娓告垙,缁欏嚭鍩烘湰鎬濊矾鍙婂畬鏁寸▼搴忋俖鐧惧害鐭 ...
    绛旓細int num =200; //瑙勫畾涓嬭惤瀛楁瘝鐨涓暟 srand (time(NULL)); //闅忔満鏃堕棿绉嶅瓙,璁剧疆绗竴涓殢鏈哄嚱鏁扮殑鍊約etfillstyle(BLACK); //璁剧疆涓嬮潰鐭╁舰鍐呭浘鐨勯鑹瞫etcolor(YELLOW); //line(0,450,640,450); //鐢3鏉$嚎瑙勫畾涓涓嬪伐浣滃尯line(0,440,640,440); //鐢3鏉$嚎瑙勫畾涓涓嬪伐浣滃尯line(0,40,640,40); //鐢3...
  • 鎬ユ眰涓浠C璇█鎵撳瓧娓告垙浠g爜,瑕佹眰鍗曡瘝浠庡睆骞曚笂鏂硅惤涓,鎵撳瓧姝g‘瀛楁瘝鍙樹负缁...
    绛旓細if(starty>maxy-100)
  • C璇█濡備綍缂栧啓鎵撳嵃鍑篈-Z瀛楁瘝鐨勭▼搴
    绛旓細1銆侀鍏堬紝鎵撳紑C璇█缂栬瘧鍣紝鏂板缓涓涓垵濮.cpp鏂囦欢锛屼緥濡傦細test.cpp銆2銆佸湪test.cpp鏂囦欢涓紝杈撳叆C璇█浠g爜锛氥俰nt i;for(i=65;i<91;i++)printf("%c\n",i);3銆佺紪璇戝櫒杩愯test.cpp鏂囦欢锛屾鏃舵垚鍔熸墦鍗板嚭浜咥-Z鐨勫ぇ瀛﹁嫳鏂囧瓙姣嶃
  • 鐢–璇█缂栧啓涓涓绋嬪簭,浠庨敭鐩樹笂杈撳叆涓涓皬鍐瀛楁瘝,灏嗗叾鏈韩鍙婂搴旂殑澶у啓瀛...
    绛旓細prinft("澶у啓瀛楁瘝鏄細%c\n",ch);} else(printf("璇杈撳叆澶у啓瀛楁瘝");)绀轰緥涓夛細include <stdio.h> main(){ char c; //澹版槑鍙橀噺 scanf("%c",&c); //閿洏涓婂彇鍊 printf("%c %c",c,ch-'a'+'A');//鏈韩鍜屽ぇ鍐欒緭鍑 } ...
  • C璇█鎵撳瓧缁冧範娓告垙涓庢牱瀹炵幇瀛楁瘝鎺夎惤,涓嶇敤鎹㈣鍜岄殢鏈哄潗鏍囪繕鏈夊埆鐨勬柟...
    绛旓細){CONSOLE_CURSOR_INFO cci;cci.bVisible = FALSE;cci.dwSize = sizeof(cci);HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorInfo(handle, &cci);srand((unsigned)time(0));int x,y;int c;while(1){c=rand()%26;c+='A';x=rand()%40;y=0;while(1){setxy(x,...
  • C璇█鎬庢牱杈撳叆瀛楁瘝?
    绛旓細鍦 C 璇█涓紝鍙互浣跨敤瀛楃鏁扮粍鏉杈撳叆瀛楁瘝銆備互涓嬫槸涓涓畝鍗曠殑绋嬪簭绀轰緥锛岀敤浜庢彁绀虹敤鎴疯緭鍏モ測ou鈥濓紝骞堕獙璇佽緭鍏ユ槸鍚︽纭細```c include <stdio.h> include <string.h> int main() { char input[4]; // 瀹氫箟涓涓暱搴︿负 4 鐨勫瓧绗︽暟缁 printf("璇疯緭鍏モ測ou鈥濓細");scanf("%s", input); // ...
  • C璇█楂樻墜甯府蹇欏晩!鎬ラ渶涓涓澶氬嚱鏁板疄鐜扮殑鐚瀛楁瘝娓告垙
    绛旓細涓嶆彁绀哄ぇ浜嗚繕鏄皬浜嗕箞锛岄偅涓嶆槸鐬庣寽浜嗕箞锛熸垜璧勬枡閲屾湁鑱旂郴鏂瑰紡
  • 鐢–璇█鎵撳嵃26涓嫳鏂囧瓧姣,7涓竴琛,瑕佹眰:澶у啓瀛楁瘝鏃佽竟绱ц窡灏忓啓鐨勫瓧姣...
    绛旓細void main(){ int i;for(i=1;i<=26;i++) 26涓嫳鏂囧瓧姣,,寰幆26娆 { printf("%c%c ",64+i,96+i); 鎵撳嵃澶у皬鍐欏瓧姣 if(i/7==0)printf("\n"); 7涓竴鎹㈣.} }
  • c璇█鎵撳瓧姣娓告垙涓帶鍒跺瓧姣嶄笅钀介熷害鐨勫嚱鏁版槸浠涔
    绛旓細鐢╟lock()鍑芥暟缂栧啓涓涓寤惰繜鍑芥暟锛屾瘮濡傦細void wait(int ms){ //ms涓鸿绛夊緟鐨勬绉掓暟 clock_t t;t=clock();while(t+ms>clock());}
  • 扩展阅读:编程c++语言入门自学 ... 10个常用的编程语言 ... c++编程适合几岁学 ... c语言编译器手机版app ... c++编程 ... 编程必背100个代码 ... 吓人的编程代码 ... 初学编程必背50个 ... 电脑编程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网