24刘谦魔术自动版大模拟(c++)

2024-02-18 14:36

本文主要是介绍24刘谦魔术自动版大模拟(c++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

其实也蛮简单的, 几个小时就做完了

一共四百行,全是基础代码,欢迎大佬来优化orz

#include<bits/stdc++.h>
#include<Windows.h>
#define cls system("cls")
#define wait Sleep(800)
#define wait1 Sleep(1000)
#define stop system("pause")
using namespace std;
char p[13]={' ','A','2','3','4','5','6','7','8','9','J','Q','K'};
string s1="好运留下来——",s2="烦恼丢出去!";
int l=12,name,hide,n=8,nanbei,nannv;
struct stu{int num,f;//点数string s;
}a[20],b[20],ts[20];
void pp(){//输出藏牌 cout<<"藏牌:"<<p[hide]<<endl;
}
void print(){for(int i=1;i<=n;i++) cout<<p[a[i].num]<<endl;
}
void FirstStep(){for(int i=1;i<=4;i++){Sleep(800);srand((unsigned)time(NULL));int t=rand()%l+1;a[i].num=t;a[i].f=1;a[i+4].num=t;a[i+4].f=0;cout<<p[t]<<endl;}stop;cls;
}
void SecondStep(){cout<<"第二步~对折,撕!\n";for(int i=1;i<=4;i++){wait;cout<<p[a[i].num]<<' ';wait;cout<<p[a[i].num]<<endl;}wait;cls;cout<<"第二步~将撕好的牌放在下面\n";wait; for(int i=1;i<=8;i++){cout<<p[a[i].num]<<endl;wait; }stop;cls; 
}
void ThirdStep(){cout<<"第三步~问问你的名字有几个字(填数字):";cin>>name;wait;cls;cout<<"第三步~将"<<name<<"张牌依次放到下面\n";wait;print();wait1; for(int i=1;i<=name;i++){cls;cout<<"第三步~将"<<name<<"张牌依次放到下面(第"<<i<<"张)\n\n";cout<<p[a[2].num]<<"		"<<p[a[1].num]<<endl;for(int j=3;j<=8;j++) cout<<p[a[j].num]<<endl;wait1;cls;cout<<"第三步~将"<<name<<"张牌依次放到下面(第"<<i<<"张)\n\n";for(int j=2;j<=8;j++) cout<<p[a[j].num]<<endl;cout<<p[a[1].num];wait1;cls;cout<<"第三步~将"<<name<<"张牌依次放到下面(第"<<i<<"张)\n";for(int j=1;j<=8;j++) b[j]=a[j];for(int j=1;j<=7;j++) a[j]=b[j+1];a[8]=b[1];print();wait1;} stop;cls;
}
void FourthStep(){cout<<"第四步~将最上面的三张牌插到中间\n";wait;print();wait1;cls;cout<<"第四步~请选择您的心仪位置(填对应字母)\n";char t='a'; for(int i=1;i<=3;i++) cout<<p[a[i].num]<<endl;for(int i=4;i<8;i++){cout<<p[a[i].num]<<endl;cout<<' '<<t<<endl;t++;}cout<<p[a[8].num]<<endl;wait;cout<<"请选择:";cin>>t;//a:4.5之间 b:5.6之间 c:6.7之间 d:7.8之间 wait;//a对应97 cls;cout<<"第四步~将最上面的三张牌插到中间\n";int q=t-93,j=1;for(int i=4;i<=q;i++){cout<<p[a[i].num];cout<<endl;}for(int i=1;i<=3;i++){cout<<"       "<<p[a[i].num]<<endl;}for(int i=q+1;i<=8;i++){cout<<p[a[i].num]<<endl;}wait1;cls;cout<<"第四步~将最上面的三张牌插到中间\n";for(int i=1;i<=8;i++) b[i].num=a[i].num;for(int i=4;i<=q;i++,j++) a[j].num=b[i].num;for(int i=1;i<=3;i++,j++) a[j].num=b[i].num;print();stop;cls;
} 
void FifthStep(){cout<<"第五步~将第一张牌藏到其它地方\n";wait;print();wait;cls;cout<<"第五步~将第一张牌藏到其它地方\n";hide=a[1].num;cout<<"       "<<p[hide]<<endl;for(int i=1;i<=8;i++) b[i].num=a[i].num;for(int i=2;i<=8;i++) a[i-1].num=b[i].num;n=7;print();wait;cls;cout<<"第五步~将第一张牌藏到其它地方\n";cout<<p[a[1].num]<<"      "<<p[hide]<<endl;for(int i=2;i<=7;i++) cout<<p[a[i].num]<<endl;wait;cls;cout<<"第五步~将第一张牌藏到其它地方\n";print();wait;cls;cout<<endl;cout<<"第五步~将第一张牌藏到其它地方\n";print();wait;cls;pp();cout<<"第五步~将第一张牌藏到其它地方\n";print();stop;cls;
}
void SixthStep(){pp();cout<<"第六步~你是...南方人填1,北方人填2,不确定填3:";cin>>nanbei;wait;cls;pp();cout<<"第六步~将最上面的"<<nanbei<<"张牌插到中间\n";wait;cout<<"请选择心仪的位置(填对应字母)\n";wait;char t='a';for(int i=1;i<=nanbei;i++) cout<<p[a[i].num]<<endl;for(int i=nanbei+1;i<=6;i++){cout<<p[a[i].num]<<endl;cout<<' '<<t<<endl;t++;}cout<<p[a[7].num]<<endl;cout<<"请选择:";cin>>t;wait;cls;pp();cout<<"Loading...";wait1;cout<<"完毕!\n";wait;print();wait1;cls;pp();cout<<"Loading...完毕!\n";for(int i=1;i<=7;i++) b[i].num=a[i].num;int q=t-97+1+nanbei,j=1;for(int i=nanbei+1;i<=q;i++,j++) a[j].num=b[i].num;for(int i=1;i<=nanbei;i++,j++) a[j].num=b[i].num;print();stop;cls;
}
void SeventhStep(){pp();cout<<"第七步~你是...男生填1,女生填2:";cin>>nannv;wait;cls;pp();cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";print();wait1;cls;pp();cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";for(int i=1;i<=nannv;i++) cout<<"       "<<p[a[i].num]<<endl;for(int i=nannv+1;i<=7;i++) cout<<p[a[i].num]<<endl;wait1;cls;pp();cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";for(int i=1;i<=nannv;i++) cout<<p[a[nannv+i].num]<<"      "<<p[a[i].num]<<endl;for(int i=nannv+nannv+1;i<=7;i++) cout<<p[a[i].num]<<endl;wait1;cls;pp();cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";for(int i=1;i<=7;i++) b[i]=a[i];for(int i=nannv+1;i<=7;i++) a[i-nannv]=b[i];n-=nannv;print();wait;stop;cls;
}
void EighthStep(){ts[1].s="见";ts[2].s="证";ts[3].s="奇";ts[4].s="迹";ts[5].s="的";ts[6].s="时";ts[7].s="刻";pp();cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";cout<<"每念一个字从上面放一张牌下去\n";wait; print();wait1;cls;for(int i=1;i<=7;i++){pp();cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";cout<<"每念一个字从上面放一张牌下去("<<ts[i].s<<")\n\n";cout<<p[a[2].num]<<"        "<<p[a[1].num]<<endl;for(int j=3;j<=n;j++) cout<<p[a[j].num]<<endl;wait;cls;pp();cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";cout<<"每念一个字从上面放一张牌下去("<<ts[i].s<<")\n\n";for(int j=2;j<=n;j++) cout<<p[a[j].num]<<endl;cout<<p[a[1].num];wait;cls;pp();cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";cout<<"每念一个字从上面放一张牌下去("<<ts[i].s<<")\n";for(int j=1;j<=n;j++) b[j]=a[j];for(int j=2;j<=n;j++) a[j-1]=b[j];a[n]=b[1];print();wait;cls;}pp();cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";cout<<"每念一个字从上面放一张牌下去(完毕)\n"; print();stop;cls;
}
void NinthStep(){pp();cout<<"第九步~祈福仪式的最后一个环节:\n";print();wait;for(int i=1;n>1;i++){cls;if(i%2){//好运留下来 pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl;print();wait;cls;pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl<<endl;cout<<p[a[2].num]<<"		"<<p[a[1].num]<<endl;for(int j=3;j<=n;j++) cout<<p[a[j].num]<<endl;wait;cls;pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl<<endl;for(int j=2;j<=n;j++) cout<<p[a[j].num]<<endl;cout<<p[a[1].num];wait;cls;pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl;for(int j=1;j<=n;j++) b[j]=a[j];for(int j=2;j<=n;j++) a[j-1]=b[j];a[n]=b[1];print();wait1;}else{//烦恼丢出去 pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl;print();wait;cls;pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl<<endl;cout<<p[a[2].num]<<"		"<<p[a[1].num]<<endl;for(int j=3;j<=n;j++) cout<<p[a[j].num]<<endl;wait;cls;pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl<<endl;for(int j=2;j<=n;j++) cout<<p[a[j].num]<<endl;wait;cls;pp();cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl;for(int j=1;j<=n;j++) b[j]=a[j];for(int j=2;j<=n;j++) a[j-1]=b[j];n--;print();wait1;}}stop;cls;
}
void End(){pp();cout<<"现在拿出我们藏起来的神秘半张牌\n";print();wait;cls;cout<<"藏牌:\n现在拿出我们藏起来的神秘半张牌\n";print();wait;cls;cout<<"现在拿出我们藏起来的神秘半张牌\n";cout<<p[a[1].num]<<"		"<<p[hide];wait;cls;if(p[a[1].num]==p[hide]){cout<<"现在拿出我们藏起来的神秘半张牌\n";cout<<p[a[1].num]<<"	"<<p[hide];wait;cls;cout<<"现在拿出我们藏起来的神秘半张牌\n";cout<<p[a[1].num]<<" "<<p[hide];wait;cls;cout<<"现在拿出我们藏起来的神秘半张牌\n";cout<<p[a[1].num]<<p[hide];wait;cls;cout<<"现在拿出我们藏起来的神秘半张牌\n";cout<<p[hide];wait;cls;cout<<"恭喜你破镜重圆,完成祈福仪式~\n接下来你将顺风顺水,开心快乐一整年!\n";cout<<p[hide];wait; }else{cout<<"Woops!穿帮了!请重新开始。\n";cout<<p[a[1].num]<<"		"<<p[hide];wait;}
}
int main(){cout<<"祈福时间到~请发牌\n";wait;FirstStep();SecondStep();ThirdStep();FourthStep();FifthStep();SixthStep();SeventhStep();EighthStep();NinthStep();End();return 0;
}

这篇关于24刘谦魔术自动版大模拟(c++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721460

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

C++的模板(八):子系统

平常所见的大部分模板代码,模板所传的参数类型,到了模板里面,或实例化为对象,或嵌入模板内部结构中,或在模板内又派生了子类。不管怎样,最终他们在模板内,直接或间接,都实例化成对象了。 但这不是唯一的用法。试想一下。如果在模板内限制调用参数类型的构造函数会发生什么?参数类的对象在模板内无法构造。他们只能从模板的成员函数传入。模板不保存这些对象或者只保存他们的指针。因为构造函数被分离,这些指针在模板外

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C++学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数? void swap(int& x, int& y){int tmp = x;x = y;y = tmp;} 相信大家很快就能写出上面这段代码,但是如果要求这个交换函数支持字符型

C++入门01

1、.h和.cpp 源文件 (.cpp)源文件是C++程序的实际实现代码文件,其中包含了具体的函数和类的定义、实现以及其他相关的代码。主要特点如下:实现代码: 源文件中包含了函数、类的具体实现代码,用于实现程序的功能。编译单元: 源文件通常是一个编译单元,即单独编译的基本单位。每个源文件都会经过编译器的处理,生成对应的目标文件。包含头文件: 源文件可以通过#include指令引入头文件,以使

C++面试八股文:std::deque用过吗?

100编程书屋_孔夫子旧书网 某日二师兄参加XXX科技公司的C++工程师开发岗位第26面: 面试官:deque用过吗? 二师兄:说实话,很少用,基本没用过。 面试官:为什么? 二师兄:因为使用它的场景很少,大部分需要性能、且需要自动扩容的时候使用vector,需要随机插入和删除的时候可以使用list。 面试官:那你知道STL中的stack是如何实现的吗? 二师兄:默认情况下,stack使

基于 Java 实现的智能客服聊天工具模拟场景

服务端代码 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Serv