2021-12-6 学习的打卡学习第十四天(推箱子开始界面)

今天为我的推箱子整了个开始界面,运用了头文件#include<windows.h>中的函数实现了在任意坐标输出和变化颜色。

任意坐标输出:

void gotoxy(int x, int y)
{
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}

变化颜色:

int color(int c)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);
    return 0;
}

定义好后,只要在printf()前赋上color(int c)  ;gotoxy(int x, int y)就好了,c为颜色种类,x,y是坐标。

用system("mode con cols=110 lines=30");定义窗口的大小。

还有昨天的那道n个罪犯排成一列,我又优化了二次。

第一次优化:

#include<stdio.h>
#include<stdlib.h>
#define N 1000000
int a[N]={0};
int main()
{
    int n,i=0,j=0,r=0,z=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    for(i=1;i<n;i++)
    {
        j=i-a[i];
        if(j<=0)
        {
            for(r=0;r<i;r++)
            a[r]=-1;
        }
        else
        {
            for(r=j;r<i;r++)
                a[r]=-1;
        }
    }
    for(i=0;i<n;i++)
    {
        if(a[i]!=-1)
            z++;
    }
    printf("%d",z);
    return 0;
}

还是超限了,这题要从后往前写:

第二次优化:

#include<stdio.h>
#include<stdlib.h>
#define N 1000000
int a[N]={0};
int z=N;
int min(int,int);
int main()
{
    int n,i=0,r=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    for(i=n-1;i>=0;i--)
    {
      if(i>=z)
        r++;
      z=min(z,i-a[i]);
    }
    printf("%d",n-r);
    return 0;
}
int min(int a,int b)
{
    if(a>b)
        return b;
    else
        return a;
}

推箱子开始界面

代码:

void explation()
{
    int i,j=1;
    system("cls");
    color(15);
    gotoxy(44,3);
    printf("游戏说明");
    color(2);
    for(i=6;i<=22;i++)
    {
        for(j=20;j<=76;j++)
        {
            gotoxy(j,i);
            if(i==6||i==22)
            printf("=");
            if(j==20||j==75)
            printf("||");
        }
    }
    color(3);
    gotoxy(30,7);
    printf("tip 1:推动箱子&到达目的地$");
    color(10);
    gotoxy(30,11);
    printf("tip 2:用w,s,a,d,分别控制人物@的上下左右");
    color(14);
    gotoxy(30,14);
    printf("tip 3:别让箱子卡在死角");
    color(14);
    gotoxy(30,17);
    printf("  ┗|`O′|┛ 嗷~~");
    color(11);
    gotoxy(30,20);
    printf("tip 5:按任意键继续");
    _getch();
    system("cls");
    kaishi();
}
void other()
{
    system("cls");
    color(3);
    gotoxy(45,10);
    printf("(;°○° ) 啊!! ");
    color(11);
    gotoxy(45,13);
    printf("请输入1~3的数!");
    color(15);
    gotoxy(40,15);
    printf("o -_-)=○(按任意键继续)");
    _getch();
    system("cls");
    kaishi();
}

效果:

开始界面:

输入1:

 

 这个界面还要美化下;

输入2:

 输入其他数字:

 明天优化下结束画面和游戏画面,数学和物理也还要复习一下,今天的总结就到这吧。

明天继续加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值