简介
斗地主记牌器就是把别人打过的牌记录下来,排除自己的手牌,然后算出别人手里面还有哪些牌,这样对自己能够赢大有裨益。这种东西QQ斗地主已经自己附带了,但是对于我这种没钱冲QQ会员的人来说,我自己还是做了一个用来记牌。这样能够保证自己的胜率。
记牌器原理
原理很简单,就是用paper[17]数组记录该牌数组,对于每个值初始为4或者是1(大小王),然后通过每次输入字符串的方式来扣除牌,原理非常简单,制作也是仅仅用了一个字符串的比较,总共不到50行代码。。。
代码
//斗地主记牌程序
#include <iostream>
#include <string>
using namespace std;
int main()
{
int paper[17];
for(int i=3;i<=15;i++){
paper[i] = 4;
}
paper[16] = 1;paper[17] = 1;
cout<<"注意,大王用D表示,小王用X表示,10用S表示,其余正常表示,都用大写"<<endl;
cout<<"注意,每次输入都连续完成不要有空格,完成之后用回车"<<endl;
string s;
while(cin>>s){
for(int i=0;i<s.length();i++){
if(s[i]>='3' && s[i]<='9'){
paper[s[i]-'0']--;
}
if(s[i]=='S'||s[i] =='s'){
paper[10]--;
}
if(s[i]=='J'||s[i] =='j'){
paper[11]--;
}
if(s[i]=='Q'||s[i]=='q'){
paper[12]--;
}
if(s[i]=='K'||s[i] =='k'){
paper[13]--;
}
if(s[i]=='A'||s[i] =='a'){
paper[14]--;
}
if(s[i]=='2'){
paper[15]--;
}
if(s[i]=='X'||s[i]=='x'){
paper[16]--;
}
if(s[i]=='D'|| s[i]=='d'){
paper[17]--;
}
}
//打印信息
cout<<"剩下的牌有:"<<endl<<endl;
for(int j=3;j<10;j++){
cout<<" "<<j<<" :"<<paper[j]<<endl;
}
cout<<" 10 :"<<paper[10]<<endl;
cout<<" J :"<<paper[11]<<endl;
cout<<" Q :"<<paper[12]<<endl;
cout<<" K :"<<paper[13]<<endl;
cout<<" A :"<<paper[14]<<endl;
cout<<" 2 :"<<paper[15]<<endl;
cout<<" 小王 :"<<paper[16]<<endl;
cout<<" 大王 :"<<paper[17]<<endl<<endl;
cout<<"************* 此轮数据展示完毕 **************"<<endl;
}
}
使用情况
转载自原文链接, 如需删除请联系管理员。
原文链接:【算法应用制作工具】:斗地主记牌器,转载请注明来源!