Baby-gin

题目的是随机拿6张卡牌,卡牌上有0~9的数字。一种情况有三张连续的卡牌我们称之为run(类似4,5,6),第二种情况有三张相同卡牌我们称之为triplete(类似2,2,2)。

如果这六张牌有两个run或者两个triplete或者一个run一个triplete。我们称之为baby-gin。

例如

667767 是baby-gin(666,777)

123456 是baby-gin(123,456)

000456 是baby-gin(000,456)

101123不是baby-gin 因为111是triplete但是023不是run也不是triplete。或者123是run,但是011不是run也不是triplete

代码如下

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
int a[6];
int Y=1;
int main(){
    while(Y==1){
    //int temp;
    int count=0;
    int book[10];
    memset(book,0,sizeof(book));
    for(int i=0;i<6;i++) a[i]=rand()%10;
    printf("Input 6 Numbers: %d%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4],a[5]);
    for(int i=0;i<6;i++)
        if(book[a[i]]==0) book[a[i]]=1;
        else book[a[i]]++;
    for(int i=0;i<=9;i++){
        if(book[i]>=3){
            count++;
            book[i]=book[i]-3;
        }
        if(book[i]>0&&book[i+1]>0&&book[i+2]>0){
            count++;
            book[i]--;
            book[i+1]--;
            book[i+2]--;
        }
    }
    if(count>=2)
        printf("Baby gin !!!\n");
    else 
        printf("Lose\n");
    printf("Play the game again? (1-yes/2-no): ");
    scanf("%d",&Y);
    }
}

 

posted @ 2017-03-16 15:18  Mr.Struggle  阅读(362)  评论(0编辑  收藏  举报