2023年8月23日,周三上午
今天上午花了一个小时来实现这个
这个程序在碰到边界时会发出声音,
通过调用Windows API的Beep函数来实现。
#include<Windows.h>
#include<conio.h>
#include<iostream>
#include<cstdlib>
const int OPTIONS_NUMBER = 4;//规定选项数量
int optionIndex = 0;//全局变量,方便下面这几个函数之间进行通信
struct Option{//放在结构体里面,可以方便以后拓展
std::string optionText;
};
//创建OPTIONS_NUMBER个选项
Option options[OPTIONS_NUMBER];
//初始化选项内容
void initOptions() {
options[0].optionText = "选项0";
options[1].optionText = "选项1";
options[2].optionText = "选项2";
options[3].optionText = "选项3";
}
//打印选项
void draw(int index) {
system("cls");//清理屏幕
for (int i = 0; i < OPTIONS_NUMBER; i++) {//打印选项
if (i==index) {
std::cout << ">>" << options[i].optionText << std::endl;
}
else {
std::cout << " " << options[i].optionText << std::endl;
}
}
}
//处理按键W和S,实现上下移动“>>”
void processKeys(char key) {
switch (key)
{
case 'w':
case 'W':
if ((optionIndex - 1) < 0) {
Beep(1000,200);//Windows API函数,用于发出蜂鸣
break;
}
optionIndex = optionIndex - 1;
break;
case 's':
case 'S':
if ((optionIndex + 1) > 3) {
Beep(1000, 200);//Windows API函数,用于发出蜂鸣
break;
}
optionIndex = optionIndex + 1;
break;
default:
break;
}
}
int main() {
initOptions();
while (1) {
draw(optionIndex);
char key = _getch();
processKeys(key);
}
}