如何用程序随机出游戏王180张不重复的卡片
首先,我们要下载ygopro,进入到里面的pics目录。

可以看到这里的卡片是用编号命名的,我们的目的是要弄到图片的编号,因为有编号就能通过编号查到那张卡。
我们新建一个txt文档,输入如下代码:
dir /a-d /b>scr.txt echo Topbook 文件名已导出! pause
然后把该txt文档的后缀改成bat,点击运行,我们就得到了所有卡片的编号

接下来我们需要写一段随机抽取180卡片的程序,如下
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <time.h>
#include<cstdlib>
using namespace std;
const int lenth = 11466;
const int day = 63;
const int OneLenth = 180;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
srand(time(NULL));
int Haxi[lenth] = {0};
string a[lenth];
ifstream srcFile("scr.txt",ios::in); //以文本模式打开in.txt备读
if(!srcFile) { //打开失败
cout << "error opening source file." << endl;
return 0;
}
ofstream destFile("out.txt",ios::out); //以文本模式打开out.txt备写
if(!destFile) {
srcFile.close(); //程序结束前不能忘记关闭以前打开过的文件
cout << "error opening destination file." << endl;
return 0;
}
for(int i = 0;i < lenth;++i) {
srcFile >> a[i];
}
int temp;
for(int i = 0;i < day;++i) {
for(int j = 0;j < OneLenth;++j) {
temp = rand()%lenth;
while(Haxi[temp] != 0) {
temp = rand()%lenth;
}
++Haxi[temp];
destFile << a[temp] << endl;
}
destFile << "--------------" << endl;
}
destFile.close();
srcFile.close();
return 0;
}
结果如下:

好了,任务圆满完成,小伙伴们可以开心组卡了~
浙公网安备 33010602011771号