当前位置:首页 » 编程语言 » c语言打字母游戏

c语言打字母游戏

发布时间: 2024-06-10 03:22:44

A. C语言打字练习游戏中怎样实现字母掉落,不用换行和随机坐标还有别的方法吗

可以指定光标位置进行printf输出字符,多字符同时出现,最好使用多线程,下面是个简单的例子,希望对你有帮助

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

voidsetxy(intx,inty)
{
COORDcoord={x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

intmain()
{
CONSOLE_CURSOR_INFOcci;
cci.bVisible=FALSE;
cci.dwSize=sizeof(cci);
HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle,&cci);
srand((unsigned)time(0));
intx,y;
intc;
while(1)
{
c=rand()%26;
c+='A';
x=rand()%40;
y=0;
while(1)
{
setxy(x,y);
printf("%c",c);
sleep(1);
setxy(x,y);
printf("");
y++;
if(y>5)
{
break;
}
}
}
return0;
}

B. C璇瑷镓揿瓧娓告垙vc鐜澧

棣栧厛锛岃緭鍏ュ瓧姣岖殑镞跺欙纴浣犺佽В鍐宠緭鍏ヨ繘浜╃炴潵锛岀劧钖庝笉鏄剧ず鍦ㄥ睆骞曚笂锛涙帴镌锛屽垽鏂镌佽愬眬杩欎釜瀛楁瘝绗︿笉绗﹀悎瑕佹眰锛岀劧钖庤剧疆瀛楃殑棰滆壊锛屽苟鏄剧ず锛岃屼笖鎾鏀惧0阔炽傚綋瀛楁瘝杈揿叆瀹屼箣钖庯纴灏辫$畻姝e父鐜囷纴绗﹀悎瑕佹眰杩涘叆涓嬩竴鍏筹纴涓岖﹀悎灏遍吨𨱒ヨ繖涓鍏炽傚湪娓告垙杩囩▼涓锛岃緭鍏ヤ竴涓鐗瑰畾镄勬寜阌锛岄鍑烘父鎴忋
镓浠ワ纴瑙e喅闂棰桡细鈶犳寜阌钖庯纴鐣岄溃鎭夎╀笉鏄剧ず锛屽苟涓旇兘鎺ユ敹瀛楃(鐢╣etch())
鈶″湪鎺у埗鍙扮晫闱涓婅剧疆瀛椾綋棰滆壊(SetConsoleTextAttribute())
鈶㈡挱鏀惧0阔(playsound())

C. c璇瑷缂栫▼镓揿瓧姣嶆父鎴忥纴镐庝箞璁剧疆瑙勫畾镞堕棿锛

# include
# include
# include
# include
# pragma comment(lib,钬漌inmm.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; // 褰揿仛镙囱帮纴鐢ㄤ簬镙囱版槸钖﹀脊鍑篗essageBox瀵硅瘽妗
welcome ( ); //璋幂敤娆㈣繋鐣岄溃鍑介儜杩愰檰鏁
instructions ( ); //璋幂敤娓告垙浠涔埚嚱鏁
record( ); //璋幂敤鏄剧ず璁板綍鍑芥暟
InputBox(player[10].name,20,"璇疯緭鍏ョ帺瀹舵樀绉"锽婇》; //浠ュ硅瘽妗嗗舰寮忚幏鍙栫敤鎴疯緭鍏ュ嚱鏁
rank1=getch();//璇诲叆涓涓瀛楁瘝
rank2=rank_(rank1); //璋幂敤绛夌骇鍑芥暟
game (rank2); //璋幂敤娓告垙鍑芥暟
HWND wnd =GetHWnd();
while (sign) //鎭勫墠sign浣滀负镙囱帮纴镓ц屽惊鐜
if (MessageBox(wnd,"娓告垙缁撴潫!!!
鍐嶆潵涓灞锛屾写鎴樻洿楂桦垎鏁","璇㈤梾",MB_YESNO|MB_ICONQUESTION)==IDYES)

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

# 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--; //计数
}
}

热点内容
开通了免密为什么还要密码 发布:2024-11-27 04:17:42 浏览:14
excel导入数据库java 发布:2024-11-27 04:16:21 浏览:623
ps不能存储bpm 发布:2024-11-27 04:04:12 浏览:612
jquery代码加密 发布:2024-11-27 03:54:51 浏览:593
数字密码人格是什么原理 发布:2024-11-27 03:46:34 浏览:426
华为怎么看手机的配置 发布:2024-11-27 03:27:42 浏览:381
php函数作用域 发布:2024-11-27 03:26:11 浏览:176
pythonasteval 发布:2024-11-27 03:21:14 浏览:563
电脑服务器机什么意思 发布:2024-11-27 03:18:59 浏览:837
本地存储是否允许 发布:2024-11-27 03:08:02 浏览:411