亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用C語言實現的紙牌計算24點小游戲代碼分享

發布時間:2021-08-27 18:08:54 來源:億速云 閱讀:140 作者:chen 欄目:編程語言

本篇內容主要講解“用C語言實現的紙牌計算24點小游戲代碼分享”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“用C語言實現的紙牌計算24點小游戲代碼分享”吧!

游戲描述:

  A-10:分別代表數字 1-10。  J,Q,K:均代表數字1。  考慮到部分地方的規則,J,Q,K 也可以當成10 ,或者直接代表本身所代表的數字,即11、12、13來運算。  使用加減乘除,能得出24者為贏,存在無解情況。  游戲開始得分為1000分,每一秒鐘減少1分,當答對一次時,分數增加100分。(暫未實現)

代碼展示:

/* * * Project : 計算24  *  * Date : 2015年3月25日10:55:47  * * Remark :紙牌中的10以0代替,減法得數均為正數  */ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h>  char getPokerCard(int value) {  if(value==1)  {   return 'A';  } else if(value<10) {  return value+'0'; } else if(value==10) {  return '0'; } else if(value==11) {  return 'J'; } else if(value==12) {  return 'Q'; } else if(value==13) {  return 'K'; } }  void printAnswer(int flag,int *poker,char *oper,char *answer) {  char a=getPokerCard(poker[0]);  char b=getPokerCard(poker[1]);  char c=getPokerCard(poker[2]);  char d=getPokerCard(poker[3]);    switch(flag)  {   //1.((A*B)*C)*D   case 1:    printf("((%c%c%c)%c%c)%c%c\n",a,oper[0],b,oper[1],c,oper[2],d);    break;   //2.(A*(B*C))*D   case 2:    printf("(%c%c(%c%c%c))%c%c\n",a,oper[0],b,oper[1],c,oper[2],d);    break;   //3.(A*B)*(C*D)   case 3:    printf("(%c%c%c)%c(%c%c%c)\n",a,oper[0],b,oper[1],c,oper[2],d);    break;   //4.A*(B*(C*D))   case 4:    printf("%c%c(%c%c(%c%c%c))\n",a,oper[0],b,oper[1],c,oper[2],d);    break;   //5.A*((B*C)*D)    case 5:    printf("%c%c((%c%c%c)%c%c)\n",a,oper[0],b,oper[1],c,oper[2],d);    break;   default:    break;  }    //存儲answer      return ;  }  double getValue(double num1,double num2,char oper) {  double result;    switch(oper)  {   case '+':   result=num1+num2;   break;  case '-':   result=fabs(num1-num2);   break;  case '*':   result=num1*num2;   break;  case '/':   result=num1/num2;   break;  default :   break;  }    return result; }  int getResult(int *poker,char *oper,char *answer) {  double t;  //將計算值取到   int a=poker[0]>10?1:poker[0];  int b=poker[1]>10?1:poker[1];  int c=poker[2]>10?1:poker[2];  int d=poker[3]>10?1:poker[3];    //窮舉運算次序 //1.((A*B)*C)*D t=0; t=getValue(a,b,oper[0]); t=getValue(t,c,oper[1]); t=getValue(t,d,oper[2]);  if(fabs(t-24)<0.0001) {  printAnswer(1,poker,oper,answer);  return 1; }  //2.(A*(B*C))*D t=0; t=getValue(b,c,oper[1]); t=getValue(a,t,oper[0]); t=getValue(t,d,oper[2]);  if(fabs(t-24)<0.0001) {  printAnswer(2,poker,oper,answer);  return 1; }  //3.(A*B)*(C*D) t=0; t=getValue(getValue(a,b,oper[0]),getValue(c,d,oper[2]),oper[1]);  if(fabs(t-24)<0.0001) {  printAnswer(3,poker,oper,answer);  return 1; }  //4.A*(B*(C*D)) t=0; t=getValue(c,d,oper[2]); t=getValue(b,t,oper[1]); t=getValue(a,t,oper[0]);  if(fabs(t-24)<0.0001) {  printAnswer(4,poker,oper,answer);  return 1; }  //5.A*((B*C)*D)  t=0;  t=getValue(b,c,oper[1]); t=getValue(t,d,oper[2]); t=getValue(a,t,oper[0]);  if(fabs(t-24)<0.0001) {  printAnswer(5,poker,oper,answer);  return 1; }   return 0; }  void printResult(int *poker,char *answer) {  char OperKey[4]={'+','-','*','/'};  char oper[3];  int i,j,k;  int count=0;    for(i=0;i<4;i++)  for(j=0;j<4;j++)  for(k=0;k<4;k++)  {   oper[0]=OperKey[i];   oper[1]=OperKey[j];   oper[2]=OperKey[k];      if(getResult(poker,oper,answer))   count++;  }  if(count)  {   printf("共%d種解法\n",count);  }  else  {   printf("該情況無解\n");  }    return ; }  void printPoker(int *poker) {   int i;  for(i=0;i<4;i++)  {   printf("%c ",getPokerCard(poker[i]));  }  printf("\n");    return ; }  void getRandomPokers(int *poker) {  int i;    //利用系統時間作為種子產生隨機數 ,函數srand(),rand()=>stdlib.h ,函數time()=>time.h  srand((unsigned)time(NULL)); for(i=0;i<4;i++) {  poker[i]=rand()%12+1; }  return ;  }  main() {   int poker[4]; char answer[20];  char c;    printf("紙牌計算24點\n--------------------------------------------\n");  do  {   //生成隨機紙牌    getRandomPokers(poker);      printf("隨機生成的紙牌為:\n");   //輸出生成的紙牌    printPoker(poker);      printf("\n任意鍵獲得結果...\n");   getchar();       //輸出計算結果   printResult(poker,answer);      printf("\n回車鍵繼續,其他鍵并回車退出...\n");   c=getchar();      printf("--------------------------------------------\n");  }  while(c=='\n');    return 0; }

到此,相信大家對“用C語言實現的紙牌計算24點小游戲代碼分享”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

十堰市| 易门县| 临沂市| 黄浦区| 阿坝县| 贡觉县| 自治县| 绵阳市| 仁布县| 陵水| 盐津县| 鄱阳县| 福建省| 台南市| 双牌县| 保亭| 昌乐县| 丰台区| 菏泽市| 临西县| 巴青县| 府谷县| 佛山市| 黑水县| 称多县| 高安市| 黎平县| 江城| 莆田市| 临朐县| 边坝县| 达州市| 上饶市| 梅州市| 抚松县| 洪洞县| 依安县| 彭阳县| 务川| 中方县| 班玛县|