21xrx.com
2024-12-26 15:45:56 Thursday
登录
文章检索 我的文章 写文章
C++ 玩转简单有趣的代码图案
2023-07-04 09:11:19 深夜i     --     --
C++ 代码 简单 有趣 图案

C++ 是一门广泛被应用于计算机科学领域的编程语言,它不仅可以用于开发各种应用和软件,还可以用来创建简单有趣的代码图案。通过 C++ 编程,我们可以用一些基本的语法和算法来制作出各种炫酷的视觉效果,让人眼前一亮。

一些简单的代码图案可以通过使用 C++ 中的 ASCII 字符实现。例如,我们可以使用 '*' 和 '-' 字符来制作模拟太阳系的图案。


#include <iostream>

#include <cmath>

int main() {

  for (double t = 0; t < 100; t += 0.1) {

    double x = 40 * cos(t) + 50;

    double y = 20 * sin(t) + 12;

    std::cout << "\033[2J\033[1;1H";

    for (int i = 0; i <= 24; i++) {

      for (int j = 0; j <= 80; j++) {

        if (i == (int)y && j == (int)x)

          std::cout << '|';

        *';

        } else if (i == 12 && j == 40) {

          std::cout << '+';

        } else if (i == 12 && j % 10 == 0)

          std::cout << '-';

         else if (j == 50 && i % 5 == 0) {

          std::cout << '|';

        } else

          std::cout << ' ';

        

      }

      std::cout << std::endl;

    }

  }

  return 0;

}

上述代码会在控制台中创建一个 80 行 25 列的矩形,其中 '+' 的位置标识太阳系中太阳的位置,其他字符组成了一个基本的网格。如果我们运行该程序,就会看到太阳在网格上随时间而运动的效果。

除 ASCII 字符外,我们还可以使用 C++ 中的绘图库和图形库来制作更为复杂的代码图案。例如,我们可以使用 SFML 图形库来制作一个简单的 2D 游戏,其中包含了简单的操作和动画效果。


#include <iostream>

#include <SFML/Graphics.hpp>

int main() {

  sf::RenderWindow window(sf::VideoMode(800, 600), "Simple Game");

  sf::RectangleShape player(sf::Vector2f(50.0f, 50.0f));

  player.setOrigin(sf::Vector2f(25.0f, 25.0f));

  player.setPosition(sf::Vector2f(400.0f, 300.0f));

  player.setFillColor(sf::Color::Red);

  float speed = 200.0f;

  sf::Clock clock;

  while (window.isOpen()) {

    sf::Time deltaTime = clock.restart();

    float deltaSeconds = deltaTime.asSeconds();

    sf::Event event;

    while (window.pollEvent(event)) {

      if (event.type == sf::Event::Closed) {

        window.close();

      }

    }

    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) {

      player.move(0.0f, -speed * deltaSeconds);

    }

    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) {

      player.move(0.0f, speed * deltaSeconds);

    }

    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) {

      player.move(-speed * deltaSeconds, 0.0f);

    }

    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {

      player.move(speed * deltaSeconds, 0.0f);

    }

    if (player.getPosition().x < 0) {

      player.setPosition(sf::Vector2f(800.0f, player.getPosition().y));

    } else if (player.getPosition().x > 800) {

      player.setPosition(sf::Vector2f(0.0f, player.getPosition().y));

    }

    if (player.getPosition().y < 0) {

      player.setPosition(sf::Vector2f(player.getPosition().x, 600.0f));

    } else if (player.getPosition().y > 600) {

      player.setPosition(sf::Vector2f(player.getPosition().x, 0.0f));

    }

    window.clear();

    window.draw(player);

    window.display();

  }

  return 0;

}

上述代码通过使用 SFML 图形库来创建了一个基于角色移动的简单游戏,其中玩家可以通过键盘操作控制角色的移动,随着操作玩家在游戏窗口中会不断移动并且将其位置限制在游戏窗口之内。

C++ 提供的语法和库可以让我们创造出非常有趣的代码图案,无论是在控制台中的简单效果还是在图形界面中的复杂游戏,只要我们有足够的创意和能力,就可以用 C++ unleashed 无限的创造力。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复