亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

原創:一個c++寫的發牌程序

2019-11-17 05:16:50
字體:
來源:轉載
供稿:網友

  可以顯示一,二,三,四家的牌

主要是為了練習我的牌感(記牌的能力),對有志于賭博或者橋牌事業的同志可能還有點用

編譯為bd.exe,使用方法輸入"bd -h"看幫助

以下是源代碼(處理命令行參數的代碼參考了vim):



#include
#include
#include
#include
using namespace std;

#include
#include
#include

static char #define THE_VERSION "0.1"

namespace info{
enum { WEST=0,NORTH=1,EAST=2,SOUTH=3,};
};
static char* deno[]={"Spade","Heart","Diamond","Cotton",};
static char card_symbol[]="23456789TJQKA";

// p - pointer to argument
// idx - index in argument
// default value
static int
get_number_arg(char* p,int def)
{
if (isdigit(*p))
{
def = atoi(p);
}
return def;
}

static void
print_help()
{
cout<<"Usage: "< cout<<"Bridge Dealer"< cout<<"Example: "< cout< cout<<" -p number of players, value ranges from 1 to 4"< cout<<" /""< cout<<" -n number of deals, default /"1/""< cout<<" -v,--version print version information and exit"< cout<<" -h,--help display this help and exit"< cout< exit(0);
}

static void
print_version()
{
cout< exit(0);
}

static void
dump_one_hand(vector::iterator ori,int sps=0)
{
vector::iterator iter=ori;
for(int i=0;i {
for(int j=0;j cout< for(;(iter!=ori+13) && (*iter)/13==i;iter++)
{
cout< }
cout< }
}


static void
dump_two_hands(vector::iterator o1, vector::iterator o2,int sps=0)
{
vector::iterator iter1=o1;
vector::iterator iter2=o2;
int j;
int cnt;
for(int i=0;i {
cout< cnt=2;
for(;(iter1!=o1+13) && (*iter1)/13==i;iter1++)
{
cout< cnt=cnt+2;
}

for(j=0;j cout< for(;(iter2!=o2+13) && (*iter2)/13==i;iter2++)
{
cout< }
cout< }
}
//error message routines---------------begin
static char* bs_errors[]=
{
"Unknown option",
#define BS_UNKNOWN_OPTION 0
"Too many arguments",
#define BS_TOO_MANY_ARGS 1
"Argument missing after",
#define BS_ARG_MISSING 2
"Garbage after option",
#define BS_GARBAGE 3
"Too many extra commands",
#define BS_EXTRA_CMD 4
"Invalid argument for",
#define BS_INVALID_ARG 5
};
//error message routines---------------end

int
main(int argc, char** argv)
{
int argv_idx = 1; /* active option letter is argv[0][argv_idx] */
int players=1;
int number_of_deals=1;
bool want_argument=false;

while(argc>0)
{
if(argv[0][0]=='-')
{
char c=argv[0][argv_idx++];
switch(c)
{
case 0:
//do nothing
argv_idx=-1;
break;
case '-': // "--" don't take any more options
if(strcmp(argv[0]+argv_idx,"version")==0){
print_version();
}
else if(strcmp(argv[0]+argv_idx,"help")==0){
print_help();
}
argv_idx=-1;
break;
case 'h':
print_help();
break;
case 'v':
print_version();
break;
case 'p': // 1,2,3,4 players, default 1
if (argv[0][argv_idx]){ // "-p{tag}"
players=get_number_arg(argv[0]+argv_idx,1);
argv_idx=-1;
}
else{ // "-p {tag}"
want_argument=true;
}
break;
case 'n': //number of deals, default 1
if (argv[0][argv_idx]){ // "-n{tag}"
number_of_deals=get_number_arg(argv[0]+argv_idx,1);
if(number_of_deals<=0) number_of_deals=1;
argv_idx=-1;
}
else{ // "-n {tag}"
want_argument=true;
}
break;
default:
break;
}


//handle options with argument
if(want_argument)
{
if (argv[0][argv_idx]){
cerr< }

--argc;
if (argc<1){
cerr< }
++argv;
argv_idx = -1;

switch(c)
{
case 'p':
players=get_number_arg(argv[0],1);
argv_idx=-1;
break;
case 'n':
number_of_deals=get_number_arg(argv[0],1);
if(number_of_deals<=0) number_of_deals=1;
argv_idx=-1;
break;
default:
; //impossible
}
}

}
else{
argv_idx=-1;//do nothing
}
// If there are no more letters after the current "-", go to next
// argument. argv_idx is set to -1 when the current argument is to be
// sk
ipped.
if (argv_idx <= 0    argv[0][argv_idx] == 0)
{
--argc;
++argv;
argv_idx = 1;
}
}
//init
srand(time(0));

//original card
//value: spade, 0-12; heart, 13-25; diamond 26-38; cotton 39-51;
//array index: west, 0-12; north, 13-25; east 26-38; south 39-51;
const int dim=52;
int cards[dim];

for(int i=0;i {
cards[i]=i;
}
vector h(dim);
h.assign(cards,cards+dim);

//redeal
bool need_id=number_of_deals>1;
for(int k=0;k {
random_shuffle(h.begin(),h.end());
sort(h.begin()+info::WEST*13,h.begin()+info::WEST*13+13);
sort(h.begin()+info::NORTH*13,h.begin()+info::NORTH*13+13);
sort(h.begin()+info::EAST*13,h.begin()+info::EAST*13+13);
sort(h.begin()+info::SOUTH*13,h.begin()+info::SOUTH*13+13);

//dump
if(need_id){
cout<<"ID: "< }
switch(players)
{
case 1:
dump_one_hand(h.begin()+info::SOUTH*13);
break;
case 2:
dump_two_hands(h.begin()+info::EAST*13,h.begin()+info::WEST*13,26);
break;
case 3:
dump_one_hand(h.begin()+info::NORTH*13,26);
dump_one_hand(h.begin()+info::EAST*13);
dump_one_hand(h.begin()+info::SOUTH*13,26);
break;
case 4:
dump_one_hand(h.begin()+info::NORTH*13,26);
dump_two_hands(h.begin()+info::EAST*13,h.begin()+info::WEST*13,26);
dump_one_hand(h.begin()+info::SOUTH*13,26);
break;
default:
;//impossible
}
cout< }
return 0;
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久久另类| 91黄色8090| 97碰在线观看| 亚洲免费视频观看| 日本不卡高字幕在线2019| 精品久久久久久久久久| 88国产精品欧美一区二区三区| 91成人性视频| 欧美最顶级丰满的aⅴ艳星| 日韩在线观看网站| 欧美国产日韩一区二区三区| 亚洲女人天堂视频| 国产suv精品一区二区| 国产在线不卡精品| 亚洲欧美综合另类中字| 欧洲美女7788成人免费视频| 亚洲欧美日韩精品久久亚洲区| 成人伊人精品色xxxx视频| 3344国产精品免费看| 国产欧美精品一区二区三区-老狼| 亚洲精品福利视频| 成人欧美一区二区三区黑人| 国产v综合v亚洲欧美久久| 亚洲综合日韩中文字幕v在线| 欧美噜噜久久久xxx| 国产欧美亚洲视频| 亚洲欧美中文字幕在线一区| 欧美成人午夜视频| 97香蕉久久超级碰碰高清版| 亚洲精品自拍第一页| 亚洲欧美日韩在线高清直播| 国产日韩欧美中文在线播放| 成人黄色免费看| 久久久97精品| 日韩中文字幕在线精品| 欧美精品制服第一页| 国产小视频国产精品| 国产欧亚日韩视频| 美日韩丰满少妇在线观看| 欧美激情va永久在线播放| 欧美孕妇毛茸茸xxxx| 国产精品欧美久久久| 国产最新精品视频| 日产精品99久久久久久| 97激碰免费视频| 亚洲黄一区二区| 伊人久久大香线蕉av一区二区| 91精品国产91久久| 亚洲精品丝袜日韩| 久久久中文字幕| www.日韩av.com| 久久久99久久精品女同性| 日韩一区二区av| 韩国精品美女www爽爽爽视频| 亚洲欧美精品在线| 自拍亚洲一区欧美另类| 国内精品久久久久久影视8| 清纯唯美日韩制服另类| 欧美国产日韩一区二区三区| 久久久久这里只有精品| 日本午夜精品理论片a级appf发布| 精品动漫一区二区三区| 国产一区二区视频在线观看| 欧美大码xxxx| 亚洲精品国偷自产在线99热| 精品国产乱码久久久久久婷婷| 日韩精品一区二区视频| 欧美性生交xxxxxdddd| 成人欧美一区二区三区黑人孕妇| 亚洲国产精品久久精品怡红院| 久久影院资源站| 欧美理论在线观看| 国产精品一区二区三区毛片淫片| 久久亚洲影音av资源网| 日韩电影网在线| 黄网动漫久久久| 欧美成人黄色小视频| 最近免费中文字幕视频2019| 日韩欧美在线视频| 久久频这里精品99香蕉| 日韩精品中文字| 日韩av在线免费观看一区| 久久亚洲欧美日韩精品专区| 久久久久久中文字幕| 亚洲日韩欧美视频一区| 国产精品欧美日韩久久| 欧美亚洲一区在线| 成人美女免费网站视频| 久久夜色精品国产欧美乱| 欧美色道久久88综合亚洲精品| 在线观看日韩视频| 欧美孕妇性xx| 91国语精品自产拍在线观看性色| 亚洲男人av在线| 国产精品一区二区久久精品| 国产精品丝袜久久久久久高清| 国产免费观看久久黄| 亚洲高清色综合| 色婷婷亚洲mv天堂mv在影片| 在线电影中文日韩| 亚洲一区二区福利| 国产精品对白刺激| 九九热在线精品视频| 国产精品久久久久久搜索| 精品激情国产视频| 亚洲福利视频二区| 亚洲一区二区三区视频播放| 91视频8mav| 久久亚洲精品一区| 亚洲男人天堂2023| 91久久久久久久久久久| 69国产精品成人在线播放| 91久久久国产精品| 亚洲国产高清高潮精品美女| 亚洲伦理中文字幕| 欧美精品999| 欧美综合在线第二页| 欧美肥老妇视频| 久久久久久久激情视频| 中文字幕日韩欧美在线视频| 欧美日韩xxx| 丝袜美腿精品国产二区| 亚洲精品网站在线播放gif| 日韩中文字在线| 91chinesevideo永久地址| 国内精品久久久久| 亚洲欧美日韩天堂一区二区| 亚洲精品日韩欧美| 中文字幕亚洲一区| 欧日韩不卡在线视频| 成人av资源在线播放| 亚洲3p在线观看| 中文字幕精品国产| 色无极亚洲影院| 最近2019年好看中文字幕视频| 亚洲精品国产精品自产a区红杏吧| 国产亚洲欧美日韩一区二区| 欧美性猛交xxxx乱大交3| 亚洲成人精品视频在线观看| 亚洲国产精品成人va在线观看| 亚洲欧洲午夜一线一品| 国产日韩综合一区二区性色av| 欧美性猛xxx| 国产成人一区二区| 日韩电影网在线| 日日狠狠久久偷偷四色综合免费| 一道本无吗dⅴd在线播放一区| 蜜臀久久99精品久久久久久宅男| 97国产精品视频| 精品国产一区二区三区久久久狼| 亚洲精品av在线| 欧美大尺度电影在线观看| 色狠狠久久aa北条麻妃| 青草青草久热精品视频在线网站| 欧美日韩精品中文字幕| 在线观看日韩欧美| 欧美性生交xxxxx久久久| 91色在线视频| 91久久精品国产91性色| 中文字幕欧美在线| 色综久久综合桃花网| 久久天天躁狠狠躁老女人| 亚洲午夜未满十八勿入免费观看全集| 国产精品日韩一区|