社区讨论
我自己编的C++控制台游戏出现了奇葩错误
灌水区参与者 5已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lum91yny
- 此快照首次捕获于
- 2024/04/05 13:53 2 年前
- 此快照最后确认于
- 2024/04/05 16:45 2 年前
CPP
#include<bits/stdc++.h>
#include"conio.h"
#include<windows.h>
#define lhuang SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN)
#define ahuang SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN)
#define llan SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE)
#define alan SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE)
#define lhong SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED)
#define ahong SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED)
#define llv SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN)
#define alv SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN)
#define lbai SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE)
#define hui SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE)
#define mo SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY)
#include<windows.h>
using namespace std;
char c;
void pr(string s,int a){//流利的输出
for(int i=0;i<s.size();i++){
printf("%c",s[i]);
Sleep(a);
}
}
char _getchar(){//输入单个字符
Sleep(10);
return getch();
}
void chuang(){//创作人
system("cls");
llan;
pr("规则发明人:zgl20120426sky https://www.luogu.com.cn/user/1245377\n",1);
pr("规则修改人:Dpf20120621 https://www.luogu.com.cn/user/922781\n\n",1);
alan;
pr("编写人:Dpf20120621 https://www.luogu.com.cn/user/922781\n",1);
pr("辅助编写人:lhc2012 https://www.luogu.com.cn/user/1112433\n",1);
Sleep(100);
hui;
pr("按任意键回到主页",1);
_getchar();
return;
}
void _cout(){//初始化界面
system("cls");
llan;
printf(" 摸鱼用棋\n");
llan;
printf("1,开始游戏 ");
lhong;
pr("ps:输入\n",2);
alan;
printf("2,了解规则 ");
lhong;
pr("不用打换行\n",2);
alv;
printf("3,创作人\n");
mo;
printf("4,退出\n");
}
void yx(){//游戏界面
system("cls");
mo;
pr("暂未开发....\n\n",50);
lbai;
pr("按任意键回到主页",1);
_getchar();
return;
}
bool tc(){//退出
system("cls");
hui;
pr("真的要退出吗QwQ(y/n)",10);
c=_getchar();
if(c=='y')return true;
else return false;
}
void qz(){//棋子规则
system("cls");
hui;
printf("@:普通棋子\n");
ahuang;
printf("H:医师,每回合可以选择一个");
lhong;
printf("普通棋子");
ahuang;
printf("复活\n");
llv;
printf("=:机枪,掷色子,摇出1和4可以杀死横竖两个方向没有障碍物遮挡的敌人");
lhong;
printf("任意一个");
llv;
printf(",摇出其他可向一个方向移动n步\n");
alan;
printf("L:可以在水里吃子\n");
hui;
pr("按任意键回到主页",1);
_getchar();
return;
}
void cz(){//吃子规则
system("cls");
if(0){
lhong;
printf("当你和敌人处于这种-=>");
hui;
printf("|");
llan;
printf(" @");
hui;
printf("|\n|")
lhong;
printf(" @");
hui;
printf("|\n");
}else pr("没写\n",10);
hui;
pr("按任意键回到主页",1);
_getchar();
return;
}
void gz(){//规则
while(1){
system("cls");
lhong;
pr("1,吃子规则\n",5);
ahong;
pr("2,棋子规则\n",5);
mo;
pr("3,退出\n",1);
c=_getchar();
if(c=='1')cz();
else if(c=='2')qz();
else if(c=='3')return;
}
mo;
pr("按任意键回到主页",1);
_getchar();
return;
}
int main(){
while(1){
_cout();
c=_getchar();
if(c=='1')yx();
else if(c=='2')gz();
else if(c=='3')chuang();
else if(c=='4'){
if(tc()){
system("cls");
Sleep(1000);
return 0;
}
}else{
hui;
printf("输入无效");
}
}
return 0;
}
/*
system("cls");
我想实现的效果
------
|XXXX|
|XXXX|
....
------
选中一个子,让他变色
FOREGROUND_INTENSITY|FOREGROUND_RED亮红
FOREGROUND_RED暗红
FOREGROUND_INTENSITY|FOREGROUND_GREEN亮绿
FOREGROUND_GREEN暗绿
FOREGROUND_INTENSITY|FOREGROUND_BLUE亮蓝
FOREGROUND_BLUE 暗蓝
FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE默认
FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE 亮白
FOREGROUND_INTENSITY灰
FOREGROUND_RED|FOREGROUND_GREEN 黄
SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),);
*/
报错:
回复
共 9 条回复,欢迎继续交流。
正在加载回复...