用C语言编写一个简单的打字母游戏,给出基本思路及完整程序。

作者&投稿:锐盛 (若有异议请与网页底部的电邮联系)
求C语言编写的打字母小游戏,要求有多个字母掉落~

用bioskey()函数实现 函数名: bioskey 功 能: 直接使用BIOS服务的键盘接口 函数原型:int bioskey (int cmd) 说明:bioskey()的函数原型在bios.h中 bioskey()完成直接键盘操作,cmd的值决定执行什么操作。 cmd = 0: 当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。 cmd = 1: 当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。 cmd = 2: 当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中

程序如下:
#include
int main()
{
char ch;
scanf("%c",&ch);
printf("%c",ch-'a'+'A');
return(0);
}
示例一:
#include
int main()
{
char ch;
scanf("%c",&ch);
printf("Letter %c converted into a letter %c!",ch,ch-32);//大写字母ASCII码比小写字母小32
return 0;
}
示例二:
ch=getchar();
if(ch>='a'&&ch<='z')
{ch=ch-32;
prinft("大写字母是:%c
",ch);
}
else(printf("请输入大写字母");
)
示例三:
#include
main()
{
char c; //声明变量
scanf("%c",&c); //键盘上取值
printf("%c %c",c,ch-'a'+'A');//本身和大写输出
}

# 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、鼠标左键双击c语言软件,打开,打开后界面如图,点击关闭即可 2、点击上方程序窗口左上角的文件,选择新建 3、在打开的窗口中选择文件,下边一般是第四个 c++Source file,输入文件名(hellw.c),一定要以“.c”为后缀结尾 4、进入编辑页面在,页面编辑源代码就可以 includestdio.h void main()...

怎么用C语言编写一个简单计算器程序。
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。

如何用C语言编写一个计算机程序?
include "stdio.h"main(){ int x;printf("请输入一个整数");scanf("%d",&x);if(x%2 == 0) printf("%d是偶数\\n",x);else printf("%d是奇数\\n",x);}

如何用C语言编写一个程序?
int main(void){ float n, n2, n3;printf("请输入一个数\\n");scanf("%f",&n);printf("请再输入一个数\\n");scanf("%f",&n2);n3=n2+n;printf("这两个数的和是%.2f",n3);return 0;}

求以下c语言编程:一个简单的学生成绩管理系统。其中每个学生信息包括学 ...
一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名、数学成绩、英语成绩、计算机成绩。编写一个菜单程序分别完成以下功能:每个学生的信息使用结构体变量存储。编写函数f... 一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名、数学成绩、英语成绩、计算机成绩。编写一个菜单程序分别完成以下功能:每个...

c语言编写一个程序分几步?
编写一个C语言程序通常包括以下步骤:定义变量:根据程序的需要,定义变量用于存储数据。变量可以是整型、字符型、浮点型等。编写代码:编写程序的主体代码,包括算法和逻辑操作等。编译程序:使用C语言编译器将源代码编译成可执行文件。运行程序:运行编译后的可执行文件,观察程序的输出结果。以下是一个简单...

如何编写C语言程序?
1.打开桌面上的DEV_C++,进入如下界面:2.快捷键“CTRL+N”建立新源代码。3.输入源代码,下面给出最简单的Hello,world源代码:include <stdio.h> int main( ){ printf("Hello,World\\n");return 0;} 4.按下F11编译并且运行源代码,得到运行结果:5.点击任意键返回源代码编辑界面可以继续进行开发...

用C语言编写一个简单程序,有哪些步骤,可以举一个例子详细讲解下吗?_百 ...
\/\/以Helloworld示例 \/\/先使用编辑工具如windows的记事本或vc++环境,或linux的vim编辑器创建一个hello.c文件 \/\/打开文件后,如下 步骤写程序 include <stdio.h>\/\/首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数 \/\/接下来需要写一个main函数,这也是c语言程序里必...

用C语言编写一个简单的打字母游戏,给出基本思路及完整程序。_百度知 ...
用C语言编写一个简单的打字母游戏,给出基本思路及完整程序。 本人学C才两个多月,尽量写详细点。... 本人学C才两个多月,尽量写详细点。 展开 我来答 答题抽奖 首次认真答题后 即可获得3次抽奖机会,100%中奖。 更多问题 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览2741 次 ...

求编写一下三个简单的C语言程序 ,新手求解
第一个:include <stdio.h>int main(int argc, char *argv[]){ char a; scanf("%c", &a); printf("大写字母为%c\\n", a-32); return 0;}第二个:include <stdio.h>int main(int argc, char *argv[]){ char A; scanf("%c", &A); printf("八进制:%o...

洛阳市18042448155: c语言打字游戏 -
仍爱安理: #include<stdio.h> #include<stdlib.h> main() { int i; int line=0,col=0,num=0; int score=0,times=1; char one[26]; char c; for(i=0,c='a';i<26;i++,c++) /* 把a~z赋给数组 */ { one[i]=c; } center(); printf("press anykey to start"); getch(); while(1) { system("...

洛阳市18042448155: 急!!!求C语言课程设计之打字游戏代码! -
仍爱安理: 给你个.因分少就不改动了, 这个是给别的朋友定过的. 只有练习数字和字母.而且可以调速度,并配着简单的动画哦.如觉得好要加功能, 加我百度好友,再加分.哈哈.#include<time.h> #include<stdlib.h> #include<graphics.h> #include<conio.h> ...

洛阳市18042448155: c语言编打字母游戏如何让屏幕出现多个字母 -
仍爱安理: 首先设定屏幕出现字母的个数,要么固定值,要么随机数 其次按字母顺序随机,决定显示哪个字母

洛阳市18042448155: VC编程:一个简单的练习打字程序 -
仍爱安理: #include<stdio.h>#include<conio.h>#include<windows.h>#include<stdlib.h>#include <time.h>#include <process.h> int pos; int level=1000; int count; int num; int score; int Down; int intst; int isRun; int isOver; int isRight; int isFull; int map[11][11]; int ...

洛阳市18042448155: 用C++语言编写一个打字训练器 -
仍爱安理: // 打字母游戏#include <graphics.h>#include <conio.h>#include <time.h>// 欢迎界面void welcome(){ // 输出屏幕提示 cleardevice(); setcolor(YELLOW); setfont(64, 0, "黑体"); outtextxy(160, 50, "打字母游戏"); setcolor(WHITE); setfont(16,...

洛阳市18042448155: 用C语言编写一个猜字母的程序 -
仍爱安理: 很简单啦 #include<stdio.h>#include<time.h> #include <stdlib.h> char start() {return rand()%26+97; } void big() { printf("有点大哦 继续吧\n"); } void small() {printf("有点小 继续吧\n"); } bool newcase() { printf("敢不敢重新来一次哦?...

洛阳市18042448155: 麻烦帮忙用C语言写一个猜单词游戏的代码.(最好有注解) -
仍爱安理: #inclode void main;{printf("please lend me some money\n");}

洛阳市18042448155: c语言编程猜字符游戏 -
仍爱安理: 用两个累加器就OK了第一步 用Random类生成四个不重复的随机数 存起来作为最终答案第二步 定义两个累加器 一个用来算A的个数,一个用来算B的个数第三步 做好前台界面等待用户输入四个数 做四个Te...

洛阳市18042448155: 如何用C语言编写“从键盘上输入一个小写字母,将其本身及对应的大写字母输出”的程序? -
仍爱安理: 程序如下: #include <stdio.h> int main() { char ch; scanf("%c",&ch); printf("%c",ch-'a'+'A'); return(0); }示例一:#include<stdio.h> int main() { char ch; scanf("%c",&ch); printf("Letter %c converted into a letter %c!",ch,ch-32);//大写字...

洛阳市18042448155: c语言编程 序输入小写字母 输出大写字母 -
仍爱安理: #include int main() { char temp; scanf("%c",&temp); if (temp>='a' && temp<='z') printf("%c\n",temp-'a'+'A'); else printf("not a lower case letter!\n"); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网