求一C++文字类小游戏源代码
我上课听得懂,但拿到题目却不知从何下手,没有思路唉。过完年需要交的课程项目,请会的高手帮个忙,谢谢了。可以发我邮箱,非常感谢~~~~!360948859@qq.com对了...
我上课听得懂,但拿到题目却不知从何下手,没有思路唉。
过完年需要交的课程项目,请会的高手帮个忙,谢谢了。
可以发我邮箱,非常感谢~~~~!
360948859@qq.com
对了,我现在还没学到模板,但老师讲可用STL写,请各高手帮帮忙,感激不尽~! 展开
过完年需要交的课程项目,请会的高手帮个忙,谢谢了。
可以发我邮箱,非常感谢~~~~!
360948859@qq.com
对了,我现在还没学到模板,但老师讲可用STL写,请各高手帮帮忙,感激不尽~! 展开
1个回答
2009-01-20
展开全部
给你一个作为参考吧,简单了一点,
可以在此基础上再发挥和作修改:
#include<conio.h>
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
/*************************** 定义换行函数 *********************************/
change_line(int k)
{ int i;
for(i=0;i<k;i++)
{
printf("\n");
}
}
/**************************** 打印空格函数 ********************************/
space(int k)
{ int i;
for(i=0;i<k;i++)
{
printf(" ");
}
}
/************************** 延时函数 ************************************/
delay_x(int k)
{
int i;
for(i=0;i<k;i++)
{
Sleep(50);
}
}
/******************* 让光标居中(偏左)函数 ************************/
center()
{
system("cls");
change_line(20);
space(25);
}
main()
{
int i;
int line=0,col=0,num=0;
int score=0,times=1;
char one[26];
char c;
srand(time(0));
for(i=0,c='a';i<26;i++,c++) /* 把a~z赋给数组 */
{
one[i]=c;
}
center();
printf("press anykey to start");
getch();
while(1)
{ system("cls");
printf("times:%d ",times); /* 打印关数 */
printf(" score: %d",score); /* 打印分数 */
printf(" 1----Pause,0----exit");
printf("\n");
printf("________________________________________________________________________");
printf("\n");
line=0;
col=rand()%60+1;
num=rand()%26;
while(1) /* 开始下落 */
{
space(col);
printf("%c",one[num]); /* 打印出字母 */
delay_x(10-times);
printf("\b \n");
line++;
if(line>45)
{
score-=10;
break;
}
if(score<0)
{
center();
printf("sorry,you faile!");
getch();
exit(0);
}
if(kbhit()) /* 如果有键按下 */
{
c=getch(); /* 接收输入的字符 */
if(c==one[num])
{
score+=10;
break;
}
switch(c)
{
case '0': exit(0);
case '1': getch();
default : ;
}
}
}
if(score>=100*times) /* 一关完毕 */
{
times++;
center();
if(times>9)
{
printf("congratulation,you win!");
}
printf("If you go to the %dy/n)",times);
if((getch())=='n')
{
center();
printf("I am sorry for you give up!");
getch();
break;
}
}
}
}
可以在此基础上再发挥和作修改:
#include<conio.h>
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
/*************************** 定义换行函数 *********************************/
change_line(int k)
{ int i;
for(i=0;i<k;i++)
{
printf("\n");
}
}
/**************************** 打印空格函数 ********************************/
space(int k)
{ int i;
for(i=0;i<k;i++)
{
printf(" ");
}
}
/************************** 延时函数 ************************************/
delay_x(int k)
{
int i;
for(i=0;i<k;i++)
{
Sleep(50);
}
}
/******************* 让光标居中(偏左)函数 ************************/
center()
{
system("cls");
change_line(20);
space(25);
}
main()
{
int i;
int line=0,col=0,num=0;
int score=0,times=1;
char one[26];
char c;
srand(time(0));
for(i=0,c='a';i<26;i++,c++) /* 把a~z赋给数组 */
{
one[i]=c;
}
center();
printf("press anykey to start");
getch();
while(1)
{ system("cls");
printf("times:%d ",times); /* 打印关数 */
printf(" score: %d",score); /* 打印分数 */
printf(" 1----Pause,0----exit");
printf("\n");
printf("________________________________________________________________________");
printf("\n");
line=0;
col=rand()%60+1;
num=rand()%26;
while(1) /* 开始下落 */
{
space(col);
printf("%c",one[num]); /* 打印出字母 */
delay_x(10-times);
printf("\b \n");
line++;
if(line>45)
{
score-=10;
break;
}
if(score<0)
{
center();
printf("sorry,you faile!");
getch();
exit(0);
}
if(kbhit()) /* 如果有键按下 */
{
c=getch(); /* 接收输入的字符 */
if(c==one[num])
{
score+=10;
break;
}
switch(c)
{
case '0': exit(0);
case '1': getch();
default : ;
}
}
}
if(score>=100*times) /* 一关完毕 */
{
times++;
center();
if(times>9)
{
printf("congratulation,you win!");
}
printf("If you go to the %dy/n)",times);
if((getch())=='n')
{
center();
printf("I am sorry for you give up!");
getch();
break;
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询