社区讨论

我自己编的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),);
*/
报错://[Error]expected;beforeSetConsoleTextAttribute//[Error] expected ';' before 'SetConsoleTextAttribute'

回复

9 条回复,欢迎继续交流。

正在加载回复...