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;
展开
 我来答
百度网友83cdc1c
2015-07-06 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:859万
展开全部
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式