弹跳的小球--C语言游戏简单入门


代码有些简陋,后期还要修改一下


#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<graphics.h>
#include<easyx.h>
main()
{
        int x=0;
        int y=5;
        int v_x=1;
        int v_y=1;
        int left=0;
        int right=20;
        int top=0;
        int bottom=20;

      while(1)
      {
           x=x+v_x;
           y=y+v_y;
           system("cls");
           for(int i=0;i<=right;i++)
             printf("-");
           printf("\n");
           for(int i=0;i<x;i++)
           {
               for(int j=0;j<right;j++)
               {
                   if(j==0||j==right-1)
                     printf("||");
                   else
                   {
                       printf(" ");
                   }
               }
                printf("\n");
           }
           for(int j=0;j<y;j++)
           {
               if(j==0||j==right-2)
                printf("||");
                else
               {
                   printf(" ");
               }
           }

           printf("o");
           printf("\n");
           for(int i=0;i<bottom-x;i++)
           {
               for(int j=0;j<right;j++)
               {
                   if(j==0||j==right-1)
                   {
                       printf("||");
                   }
                    else
                   {
                        printf(" ");
                   }
               }
                printf("\n");
           }
            for(int j=0;j<=right;j++)
            printf("-");
          if(x==top||x==bottom)
            {
//            printf("\a");
             v_x=-v_x;
            }
          if(y==left||y==right)
            {
//              printf("\a");
               v_y=-v_y;
            }
            Sleep(100);
      }
}

发现原来代码太复杂,所以有精简了一下

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
main()
{
    int x=5;
    int y=5;
    int left=1;
    int right=20;
    int top=1;
    int bottom=20;
    int v=1;
    int v2=2;
    while(1)
    {
        x=x+v;
        y=y+v2;
        printf("%d,%d\n",x,y);
        system("cls");
        for(int i=1;i<=bottom;i++)
        {
            for(int j=1;j<=right;j++)
            {
                if(i==x&&j==y)
                {
                    printf("o");
                }
                else if((j==1&&(i!=1&&i!=bottom))||(j==right&&(i!=1&&i!=bottom)))
                    printf("||");
                else if(i==1||i==bottom)
                    printf("-");
                else
                    printf(" ");
            }
            printf("\n");
        }
        printf("\n");
        if(x>=bottom-1||x<=top+1)
            v=-v;
        if(y>=right-1||y<=left+1)
            v2=-v2;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值