小卡拉米的摸鱼:地鼠游戏
游戏玩法:
- 游戏在一个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+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
傲梅备份软件-windows系统
文件增量、全量定时备份
科技中介服务机构如何提升技术供需对接的智能化水平?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
产业园区如何高效识别并精准匹配本区域重点企业的技术需求?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。



