神秘C++小游戏
2026-04-19 18:15:38
发布于:浙江
//库里库里库里库里
#include<bits/stdc++.h>
#include<Windows.h>
#include<Winable.h>
using namespace std;
const string _1="你赢了",_2="局\nbut下次游玩时无法调用下面的存档信息\n",_3="axzation/tsvc_";
/*变量(全局变量可以直接在函数内部调用)*/int win,n,m,my_card[15],your_card[15],my_jineng[6],your_jineng[6],my_money,your_money,me,you,my_num,your_num;
/*输出存档*/void leave(){
ofstream out("CARD GAME.in");
out<<_1<<win<<_2;
for(int i=1;i<=20;i++)out<<win*i+i*47-win*12<<_3<<i*477-i*64+i*90<<" ";
for(int i=1;i<=my_num;i++)out<<my_card[i]*i*win-win;
for(int i=1;i<=your_num;i++)out<<your_card[i]*i*win-win;
out.close();
}
/*控制光标*/void console_(bool l){
if(!l){/*bool类型非0为真,0为假,!l表示l==0*/
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursorInfo;
GetConsoleCursorInfo(console, &cursorInfo);
cursorInfo.bVisible = false;//隐藏光标
SetConsoleCursorInfo(console, &cursorInfo);
}
if(l){/*l!=0可以简写为l*/
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursorInfo;
GetConsoleCursorInfo(console, &cursorInfo);
cursorInfo.bVisible = true;//显示光标
SetConsoleCursorInfo(console, &cursorInfo);
}
}
/*控制键鼠输入*/void input_(bool l){
if(!l)BlockInput(true);//允许使用
if(l)BlockInput(false);//禁止使用
}
/*控制鼠标指针*/void SCP(){
SetCursorPos(752,384);//752为x,384为y,控制鼠标指针移到屏幕中间
}
/*慢速输出*/void scout(string s){
console_(0);
for(int i=0;i<s.size()/*string类型下标从0开始*/;i++){
input_(0);
SCP();
cout<<s[i];
Sleep(25);
input_(0);
SCP();
}
Sleep(25);
console_(1);
}
/*输出卡牌属性*/void cardout(){
system("cls");
scout("对方血量:");
cout<<you;
scout("\n对方卡牌:\n");
for(int i=1;i<=your_num;i++){
if(your_card[i]==0)cout<<i<<"-"<<"dead"<<" ";//判断卡牌点数是否为0
else cout<<i<<"-"<<your_card[i]<<" ";
}
scout("\n\n我方卡牌:\n");
for(int i=1;i<=my_num;i++){
if(my_card[i]==0)cout<<i<<"-"<<"dead"<<" ";
else cout<<i<<"-"<<my_card[i]<<" ";
}
scout("\n我方血量:");
cout<<me;
}
/*玩家购买卡牌*/void buy(){
scout("你的金币:");
cout<<my_money;
scout("\n购买哪张牌?\n->");
cin>>n;
if(n>your_num||my_money<your_card[n])scout("购买失败!");
else{
my_money-=your_card[n];
your_money+=your_card[n];
your_num--;
my_num++;
my_card[my_num]=your_card[n];
your_card[n]=0;
}
}
/*智能体购买卡牌*/void clever_buy(){
if(your_money>=25){
int cnt=0;
for(int i=1;i<=my_num;i++){
for(int j=1;j<=your_num;j++){
if(my_card[i]<your_card[j])cnt++;
}
}
if(cnt<my_num/2){
int max_=0;
for(int i=1;i<=your_num;i++){
if(your_card[i]>max_)max_=your_card[i];
}
int find;
int b[15];
for(int i=1;i<=my_num;i++)b[i]=my_card[i];
sort(b+1,b+1+my_num,greater<int>());
for(int i=1;i<=my_num;i++){
if(my_card[i]==b[1]&&your_money-10>my_card[i])find=i;
}
your_num++;
my_num--;
your_money-=my_card[find];
my_money+=my_card[find];
your_card[your_num]=my_card[find];
my_card[find]=0;
}
}
}
/*智能体攻击玩家卡牌*/void clever_hurt(){
int b[15],c[15],d,e;
for(int i=1;i<=your_num;i++)b[i]=your_card[i];
for(int i=1;i<=my_num;i++)c[i]=my_card[i];
sort(b+1,b+1+your_num,greater<int>());
sort(c+1,c+1+my_num,greater<int>());
for(int i=1;i<=my_num;i++){
if(c[i]<=b[1]){
for(int j=1;j<=your_num;j++){
if(your_card[j]==b[1])d=j;
}
for(int j=1;j<=my_num;j++){
if(c[i]==my_card[j])e=j;
}
your_card[d]-=my_card[e];
my_card[e]=0;
break;
}
}
}
int main(){
MessageBox(NULL, "本游戏的部分代码不安全,如果出现故障,请第一时间ctrl+alt+del,并在Google Chrome搜索acgo.cn/person/4776490通知作者", "CARD_GAME", MB_OK);//生成消息框
a:
system("cls");
SCP();
input_(0);
scout("\t\t\t\t\t\t\t卡牌游戏\n");
if(win>0){
scout("\t\t\t\t\t\t\t(你赢了");
cout<<win;
scout("局)\n");
}
Sleep(500);
scout("\t\t\t\t\t\t1-了解规则\n\t\t\t\t\t\t2-开始游戏\n\t\t\t\t\t\t输入格式->数字+回车\n\t\t\t\t\t\t->");
cin>>n;
if(n==1){
b:
system("cls");
scout("\t\t开局每人随机抽五张牌(数值在1~100之间)\n\t\t每回合开始前可以选择什么都不做或者用与其点数相同的金币(每人初始150枚)购买对方的一张卡牌\n\t\t回合开始后可以用自己的一张牌攻击对方的一张牌\n\t\t攻击后双方卡牌各减少对方卡牌的点数\n\t\t点数归零死亡\n\t\t如果对方卡牌全部死亡则可以攻击对方(每人初始血量50)\n\t\t让对方死亡就可以获胜\n\t\t1->我明白了\n\t\t2->我没看懂\n\t\t->");
cin>>n;
if(n==1)goto c;
else if(n==2)goto b;
else{
system("cls");
scout("输入错误,请重试\n->.");
console_(0);
Sleep(250);
cout<<".";
Sleep(250);
cout<<".";
Sleep(250);
goto b;
}
}else if(n==2){
c:
system("cls");
console_(0);
scout("\t\t游戏开始!\n");
Sleep(500);
scout("\t\t正在分发卡牌...\n");
Sleep(2500);
my_money=your_money=150;
me=you=50;
while(me>0&&you>0){
for(int i=1;i<=5;i++){
my_card[i]=rand()%100+1;
your_card[i]=rand()%100+1;
}
my_num=5;
your_num=5;
while(1){
int r=0,o=0;
for(int i=1;i<=my_num;i++){
if(my_card[i])r++;
}
for(int i=1;i<=your_num;i++){
if(your_card[i])o++;
}
if(!r||!o)break;
cardout();
scout("\n\n是否购买卡牌?\n1->是\n2->否\n->");
cin>>n;
if(n==1){
buy();
}
cardout();
Sleep(1500);
clever_buy();
cardout();
scout("\n你要攻击哪张牌?\n->");
cin>>n;
scout("\n你要用哪张牌攻击它?\n->");
cin>>m;
if(my_card[m]==0)scout("攻击失败!\n");
if(my_card[m]>=your_card[n]){
my_card[m]-=your_card[n];
your_card[n]=0;
}else{
your_card[n]-=my_card[m];
my_card[m]=0;
}
clever_hurt();
Sleep(1500);
}
int mine,yours;
mine=yours=0;
for(int i=1;i<=my_num;i++){
mine+=my_card[i];
}
for(int i=1;i<=your_num;i++){
yours+=your_card[i];
}
me-=yours;
you-=mine;
Sleep(1500);
}
if(me<=0){
system("cls");
scout("你死了!\n");
Sleep(1000);
scout("1->离开\n2->再来一局\n->");
cin>>n;
if(n==1){
leave();
return 0;
}
goto c;
}else{
system("cls");
scout("你赢了!\n");
win++;
Sleep(1000);
scout("1->离开\n2->再来一局\n->");
cin>>n;
if(n==1){
leave();
return 0;
}
goto c;
}
}else{
system("cls");
scout("输入错误,请重试\n->.");
Sleep(250);
cout<<".";
Sleep(250);
cout<<".";
Sleep(250);
goto a;
}
return 0;//好习惯
}
全部评论 7
- 置顶
还不赶紧刷罐
1周前 来自 浙江
2+1
1周前 来自 重庆
0+1
1周前 来自 浙江
0+1
1周前 来自 广东
0
你好,这段卡牌游戏代码我通过 AI 分析了一下,发现你标注的 “部分代码不安全” 确实存在明显风险:
你使用 BlockInput(true) 对整个系统全局锁定键鼠,一旦程序崩溃或卡死,会导致电脑无法操作,只能强制重启,这是最危险的部分。
SetCursorPos 被高频调用,每 25ms 强制把鼠标拉到屏幕中央,严重干扰正常操作。
锁键鼠的逻辑与注释写反了,导致程序运行时几乎全程锁定输入。
没有异常处理和退出解锁机制,极易造成系统失控。
你的初衷应该是想做沉浸式控制台游戏体验,但误用了系统级危险 API。建议移除全局锁输入、强移鼠标的代码,改用更安全的控制台焦点控制,避免给玩家造成麻烦。
—— 以上内容由 AI 分析整理1周前 来自 广东
1其实在输入期间是可以操控键鼠的awa
1周前 来自 浙江
0哦哦
1周前 来自 广东
0
666
1周前 来自 江苏
1
1周前 来自 江苏
0温馨提示:你需要使用Ctrl+Alt+Delete
1周前 来自 山东
0d
1周前 来自 浙江
0牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
1周前 来自 江苏
0





































有帮助,赞一个