zoukankan      html  css  js  c++  java
  • 写个小游戏激励下复习的自己1

    翻开博客,发现学习这者三四个月以来也就是写个测试代码的水平,显得略有写苍白,所以停更了一段时间,打算先总体的学完嵌入式的框架,再来慢慢的提升一下博客的质量。

    最近一个月,学到了嵌入式比较核心的东西,例如系统移植和驱动、STM32等,之前接触的比较少,显得生疏,写博客也觉得无从下手。

    好在慢慢的熬过来了,虽然学的不大精,也算大致了解了体系,现在开始再次复习一遍,用小项目的形式,慢慢的融汇贯通自己所学,也逐渐实现一下自己第一阶段吹下的牛逼。

    项目名称:催眠小球(瞎掰的名字)

    项目功能:一个控制台程序,一个圆圈弹来弹去,逐渐占满空间

    用到技术:C语言,循环结构、选择结构、控制语句等,一个新的东西是我终于会控制控制台的光标位置了.....

    项目效果:如图,足够催眠,看着看着我都困了

     函数实现:用到了多文件编译,只用在main函数中调用showball(int pos_x,int pos_y)//显示小球的位置可以了,就用到三个函数:

    void drawFrame(int pos_x,int pos_y);
    void showball(int pos_x,int pos_y);
    void gotoxy(int x, int y);

    实现如下

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>

    void drawFrame(int x,int y){//画出边框
    int i,j;
    gotoxy((x+50)/2, y/2);
    printf(" 催眠弹球 ");
    gotoxy(0, -1);
    for(i=0;i<y;i++)
    printf(" ");

    for(i=0;i<30+x;i++)
    {
    if(i<x)
    printf(" ");
    else
    printf("**");
    }
    printf(" ");

    for(i=0;i<=20;i++)
    {
    for(j=0;j<31+x;j++)
    {
    if(j<x)
    {
    printf(" ");
    continue;
    }
    if(j==x || j==30+x)
    printf("*");
    else
    printf(" ");
    }
    printf(" ");
    }
    for(i=0;i<30+x;i++)
    {
    if(i<x)
    printf(" ");
    else
    printf("**");
    }
    }

    void showball(int pos_x,int pos_y){//显示小球的位置
    int i,j; //循环变量
    int velocity_x=1; //小球变化步长
    int velocity_y=1;
    int top = pos_y; //上下左右边界
    int bottom = pos_y+20;
    int left=pos_x;
    int right=pos_x+57;

    drawFrame(pos_x,pos_y); //绘制出边框
    while(1){
    gotoxy(pos_x, pos_y); //移动光标
    pos_x=pos_x+velocity_x; //设置位置
    pos_y=pos_y+velocity_y;
    printf("O");

    Sleep(100);
    //printf("");
    // printf(" ");
    if(bottom == pos_y || top == pos_y)   //判断是否到边界,移动位置取反
    velocity_y = -velocity_y;
    if(left == pos_x || right == pos_x)
    velocity_x = -velocity_x;
    }
    }


    void gotoxy(int x,int y) //设置光标的位置
    {
    COORD c;
    c.X=x+1;
    c.Y=y+1;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
    }

  • 相关阅读:
    C#即时释放内存
    NI Vision ClampRake修改
    CListCtrl颜色设置
    备份和vim编辑器的操作
    查看,统计,检索文件命令
    linux中find mv cp 等常用命令用法
    防止恶意用户登入linux服务器
    CentOS7 启动时出现:Redirecting to /bin/systemctl start httpd.service
    linux服务器常用命令
    14个支持响应式设计的前端框架
  • 原文地址:https://www.cnblogs.com/huiji12321/p/11649750.html
Copyright © 2011-2022 走看看