现在的位置: 首页 > 综合 > 正文

取奇数游戏(c)

2012年08月03日 ⁄ 综合 ⁄ 共 1560字 ⁄ 字号 评论关闭

/*
该游戏规则如下: 操作者先输入一个奇数 N(<200)表示N个石
子. 设计算机为 A 方,操作者为 B 方, 双方轮流取石子,每次取1-3个. 最后取
到石子总数为奇数的一方获胜. 编制程序使计算机有较多的获胜机会,
*/

#include "stdio.h"
#include 
"conio.h"
main()
{

    int total;
    
int p=0,c=0,pAdd,cAdd;

    printf("total=");
    scanf(
"%d",&total);

    printf("\n****begin****\n\n");

    do
    {
        
if(c%2==0)
        {
           
if(total>=3)
           {
              cAdd
=3;
           }
           
else if(total>=1)
           {
               cAdd
=1;
           }
        }
        
else
        {
            
if(total>=2)
            {
                cAdd
=2;
            }
            
else
            {
               cAdd
=1;
            }
        }
        total
-=cAdd;
        c
+=cAdd;
        printf(
"computer:%d\n",cAdd);
        
if(total==0break;
        printf(
"    %d leave.\n",total);

        printf("    person:");
        scanf(
"%d",&pAdd);
        
while(pAdd>3 || pAdd<1 || pAdd>total)
        {
            printf(
"    error! %d leave.again:",total);
            scanf(
"%d",&pAdd);
        }

        total-=pAdd;
        p
+=pAdd;
        printf(
"person:%d\n",pAdd);

    }while(total!=0);
    
    printf(
"\n****end****\n\n");

    outputResult(p,c);
    
    getch();
}

outputResult(_pNum,_cNum)
{
   int pTag,cTag;

   printf("----result----\n");
   printf(
"person:%d\n",_pNum);
   printf(
"computer:%d\n",_cNum);

   pTag=(_pNum%2!=0?1:0);
   cTag
=(_cNum%2!=0?1:0);

   printf("--------\n");
   
if((pTag||cTag) && !(pTag&&cTag))
   {
      
if(pTag)
      {
          printf(
"person win!");
      }
      
else
      {
          printf(
"computer win!");
      }

   }
   else
   {
      printf(
"no one win!");
   }

    
}

抱歉!评论已关闭.