骰子游戏


/*游戏者每次投掷两颗骨子,每个骰子是一个正方体,当骰子停止时,将每个骰子朝上的点数相加,
在第一次投掷骰子时,如果所得到的和为7或11,那么游戏者为胜;所得和为2、3或12则输
如和为4、5、6、8、9或 10,则此和为游戏者点数。
如要想赢得胜利,必须继续投掷骰子,直到取和得自己的点数(也即规则2的点数)为止,
如果投掷出的和为7,则为输(并非指第一次投掷的情况下)
要求main函数中可选择是继续还是退出游戏,统计并显示游戏获胜次数和输掉次数。*/
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<stdio.h>
using namespace std;
int Wincount=0,Losecount=0,count=0,num11;
int myth()
{
    int num1,num2;
    srand((unsigned)time(0));
    num1=1+rand()%6;
    cout<<"筛子1点数"<<num1<<endl;
     num2=1+rand()%6;
    cout<<"筛子2点数"<<num2<<endl;
    int num=num1+num2;
    cout<<"筛子1,2点数和"<<num<<endl;
    if(count==0)
    {
        if(num==7||num==11)
        {
            Wincount++;
            count=0;
            return 0;
        }
        else if(num==2||num==3||num==12)
        {
            Losecount++;
            count=0;
            return 0;
        }
        else
        {
            count++;
            num11=num;

        }
    }
    else
    {
        if(num==7)
        {
            Losecount++;
            count=0;
            return 0;
        }
        else if(num==num11)//少了一个=号啊,居然不报错
        {
            Wincount++;
            count=0;
            return 0;
        }
    }
    return 0;
}
int main()
{
    myth();
    do
    {
        printf("是否想继续游戏(Y/N)\n");
        char c;
        cin>>c;
        c=tolower(c);
        while(c!='y'&&c!='n')
        {
            printf("输入有误,请重新输入\n");
            cin>>c;
            c=tolower(c);
        }
        if(c=='y')
            myth();
        else if(c=='n')
            break;
    }while(1);
    printf("赢的次数\n");
    cout<<Wincount<<endl;
    printf("输的次数\n");
    cout<<Losecount<<endl;
    return 0;
}


/*游戏者每次投掷两颗骨子,每个骰子是一个正方体,当骰子停止时,将每个骰子朝上的点数相加,
在第一次投掷骰子时,如果所得到的和为7或11,那么游戏者为胜;所得和为2、3或12则输
如和为4、5、6、8、9或 10,则此和为游戏者点数。
如要想赢得胜利,必须继续投掷骰子,直到取和得自己的点数(也即规则2的点数)为止,
如果投掷出的和为7,则为输(并非指第一次投掷的情况下)
要求main函数中可选择是继续还是退出游戏,统计并显示游戏获胜次数和输掉次数。*/
#include<iostream>
using namespace std;
int Wincount=0,Losecount=0,count=0,num11;
void myth()
{
    int num1=1+rand()%6;
    int num2=1+rand()%6;
    int num=num1+num2;
    if(count==0)
    {
        if(num==7||num==11)
        {
            Wincount++;
            count=0;
            return;
        }
        else if(num==2||num==3||num==12)
        {
            Losecount++;
            count=0;
            return;
        }
        else
        {
            count++;
            num11=num;
        }
    }
    else
    {
        if(num==7)
        {
            Losecount++;
            count=0;
            return;
        }
        else if(num=num11)
        {
            Wincount++;
            count=0;
            return;
        }
    }
}
int main()
{
    do
    {
        myth();
        printf("是否想继续游戏(Y/N)\n");
        char c;
        cin>>c;
        c=tolower(c);
        while(1)
        {
        if(c=='Y')
            myth();
        else if(c=='N')
            break;
        else
            printf("输入有误,请重新输入\n");
        }
    }while(1);
    return 0;
}
原文地址:https://www.cnblogs.com/heqinghui/p/2707340.html