C语言题目 ,求大神解答
题:模拟射击游戏:在程序运行时屏幕上方第一行第m列随机出现一个符号,要求游戏者输入一个1-50之间的整数,当用户输入一个整数n后,一个*立即从屏幕底端的第n列向上移动,若...
题:模拟射击游戏:
在程序运行时屏幕上方第一行第m列随机出现一个符号,要求游戏者输入一个1-50之间的整数,当用户输入一个整数n后,一个*立即从屏幕底端的第n列向上移动,若移动到屏幕的顶端能撞上符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。
提示: 1)输入符号可以采用printf("%c",'\1')
2)显示*号向上移动:输出一些空行;输出*号;以循环的方式增加延时(for(i=0;i<100000;i++););system("cls");清屏重新绘制*号。
提示:
随机一个数m(0~80之间)的C语言代码:
srand(time(NULL));
m=rand()%81; 展开
在程序运行时屏幕上方第一行第m列随机出现一个符号,要求游戏者输入一个1-50之间的整数,当用户输入一个整数n后,一个*立即从屏幕底端的第n列向上移动,若移动到屏幕的顶端能撞上符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。
提示: 1)输入符号可以采用printf("%c",'\1')
2)显示*号向上移动:输出一些空行;输出*号;以循环的方式增加延时(for(i=0;i<100000;i++););system("cls");清屏重新绘制*号。
提示:
随机一个数m(0~80之间)的C语言代码:
srand(time(NULL));
m=rand()%81; 展开
展开全部
#include <stdio.h>
int print_screen(int tx, int ty, int bx, int by)
{
int i,j,r = 0;
for(i=1;i<=22;i++, printf("\n"))
{
if(!(i == tx || i == bx))
continue;
for(j=1;j<=80;j++)
{
if(i == tx && j == ty)
{
if(i == bx && j == by)
{
printf("%c", '\2');
r = 1;
}
else
{
printf("%c", '\1');
}
}
else if(i == bx && j == by)
{
printf("%c", '*');
}
else
{
printf("%c", ' ');
}
}
}
return r;
}
int main(void)
{
int m, n;
int i,j,t,r;
char ch;
srand(time(NULL));
do
{
m = rand() % 81;
system("cls");
print_screen(1, m, -1, -1);
t = 0;
while(t<5)
{
printf("请输入射击列:");
scanf("%d", &n);
for(i=22;i>=0;i--)
{
for(j=0;j<1000000;j++);
system("cls");
r = print_screen(1, m, i, n);
if(r)
break;
}
if(i>=1)
break;
else
t++;
}
if(t>=5)
printf("失败\n");
else
printf("成功\n");
printf("再来一局?(y,n):");
fflush(stdin);
ch = getchar();
}while(ch == 'y');
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询