双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

小卡拉米的摸鱼:地鼠游戏

啊取名真困难 啊取名真困难 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

游戏玩法:

  • 游戏在一个3x3的网格上进行,玩家需要在30秒内尽可能多地击中随机出现的地鼠。
  • 玩家输入行和列的编号来“打击”地鼠。如果击中,玩家得分;如果未击中,需要重新尝试。
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <chrono>
#include <thread>
#include <cmath>

// 游戏设置
const int GRID_SIZE = 3; // 地鼠网格大小
const int MOLE_COUNT = 5; // 地鼠数量
const int GAME_DURATION = 30; // 游戏持续时间(秒)
const int DIFFICULTY = 1; // 难度级别,1-3

// 游戏状态
struct Mole {
    int row;
    int col;
    bool isHit;
    bool isMoving;
};

std::vector<Mole> moles;
std::vector<std::vector<bool>> grid(GRID_SIZE, std::vector<bool>(GRID_SIZE, false));
int score = 0;
int hitCount = 0;
int missCount = 0;

// 初始化地鼠位置
void initializeMoles() {
    srand(static_cast<unsigned int>(std::time(nullptr)));
    for (int i = 0; i < MOLE_COUNT; ++i) {
        int row, col;
        do {
            row = rand() % GRID_SIZE;
            col = rand() % GRID_SIZE;
        } while (grid[row][col]);
        moles.push_back({row, col, false, false});
        grid[row][col] = true;
    }
}

// 打印游戏网格
void printGrid() {
    for (int i = 0; i < GRID_SIZE; ++i) {
        for (int j = 0; j < GRID_SIZE; ++j) {
            if (grid[i][j]) {
                std::cout << "M ";
            } else {
                std::cout << ". ";
            }
        }
        std::cout << std::endl;
    }
}

// 地鼠行为
void moleBehavior() {
    for (auto& mole : moles) {
        if (!mole.isHit && !mole.isMoving) {
            mole.isMoving = true;
            // 模拟地鼠移动,这里简化处理
            std::this_thread::sleep_for(std::chrono::milliseconds(500 / pow(2, DIFFICULTY - 1)));
            mole.row = rand() % GRID_SIZE;
            mole.col = rand() % GRID_SIZE;
            mole.isMoving = false;
        }
    }
}

// 检查是否击中地鼠
bool checkHit(int row, int col) {
    for (auto& mole : moles) {
        if (mole.row == row && mole.col == col && !mole.isHit) {
            mole.isHit = true;
            hitCount++;
            return true;
        }
    }
    missCount++;
    return false;
}

int main() {
    initializeMoles();
    auto startTime = std::chrono::high_resolution_clock::now();

    while (true) {
        printGrid();
        moleBehavior(); // 更新地鼠行为

        std::cout << "Enter row and column to hit (0-" << GRID_SIZE - 1 << "): ";
        int row, col;
        std::cin >> row >> col;

        if (row < 0 || row >= GRID_SIZE || col < 0 || col >= GRID_SIZE) {
            std::cout << "Invalid input. Try again." << std::endl;
            continue;
        }

        if (checkHit(row, col)) {
            score += 10; // 基础得分
            // 检查是否有连击,这里简化处理
            if (!moles.empty()) {
                score += 5; // 连击得分
            }
            std::cout << "Hit! Score: " << score << " Hits: " << hitCount << " Misses: " << missCount << std::endl;
            moles.erase(std::remove_if(moles.begin(), moles.end(), [](const Mole& m) { return m.isHit; }), moles.end());
            if (moles.empty()) {
                std::cout << "All moles hit!" << std::endl;
            }
        } else {
            std::cout << "Miss! Try again. Score: " << score << " Hits: " << hitCount << " Misses: " << missCount << stdfty::endl;
        }

        auto currentTime = std::chrono::high_resolution_clock::now();
        if (std::chrono::duration_cast<std::chrono::seconds>(currentTime - startTime).count() >= GAME_DURATION) {
            std::cout << "Game over! Your final score is: " << score << std::endl;
            std::cout << "Hits: " << hitCount << " Misses: " << missCount << std::endl;
            break;
        }
        std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 控制游戏节奏
    }

    return 0;
}

 

...全文

相关推荐

无刷直流电机模糊神经网络PID-模糊PID-传统PID三种控制对比Simulink仿真

内容概要:本文系统研究了无刷直流电机(BLDCM)在Simulink环境下的三种控制策略:传统PID控制、模糊PID控制以及模糊神经网络PID控制。研究基于三相桥式星型全控电路结构,构建了转速电流双闭环控制系统,并通过Matlab/Simulink搭建仿真模型,全面对比分析了三种算法在动态响应速度、稳态精度、抗干扰能力及系统鲁棒性等方面的性能差异。文章深入阐述了各控制方法的设计原理与实现机制,重点突出了模糊逻辑与神经网络在自适应调节PID参数方面的优势,验证了智能控制算法在提升电机控制品质上的显著效果。同时,文档提供了详实的仿真资源、参考文献和技术说明,有助于读者复现实验并深化对先进控制策略的理解与应用。 适合人群:具备自动控制理论基础和MATLAB/Simulink仿真能力的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员,特别适用于从事电机驱动系统设计、智能控制算法开发等领域的专业人士。 使用场景及目标:①用于教学与科研中对比分析传统PID、模糊PID与模糊神经网络PID在无刷直流电机调速系统中的控制性能差异;②为高性能电机控制器的设计与优化提供仿真验证平台,支持参数整定与控制策略选型;③辅助完成毕业设计、科研项目或工业应用中的控制算法评估与改进。 阅读建议:建议读者结合所提供的Simulink模型与参考文献,逐步复现仿真过程,重点关注不同控制器的参数整定方法、响应曲线特征及其在负载扰动下的表现。可进一步拓展研究方向,如引入无位置传感器控制、滑模观测器或模型预测控制等先进控制技术,以深化对现代电机智能控制体系的理解与创新能力。

欢多天天写代码

高校技术转移办公室人员如何高效管理技术成果全生命周期?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

傲梅备份软件-windows系统

文件增量、全量定时备份

丁先生5788

科技中介服务机构如何提升技术供需对接的智能化水平?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

产业园区如何高效识别并精准匹配本区域重点企业的技术需求?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论
收藏 已收藏
分享
返回顶部