當前位置:首頁 » 編程語言 » 用c語言編譯出現牌字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用c語言編譯出現牌字

發布時間: 2023-02-24 09:27:57

『壹』 如何用c語言編寫紙牌發牌程序

發牌原程序見我的空間(http://hi..com/crazycola/blog/item/52402bd4b3f68705a08bb746.html),可選是否包含大小王,可選發牌列數。

以下為改過的版本,不包含大小王(即總數52張),只能發4堆。

另外附加了用戶菜單,原程序中不含菜單部分。

代碼如下:

---------------------------------------
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

int menu()
{
int choice;
printf("1 發牌/0 退出:");
scanf("%d",&choice);
return choice;
}

void main( void )
{
int i1, j, total;
int *iArr;
int tag = 0;
char* pok_C[] = { "黑桃", "紅桃", "梅花", "方塊" };
char* pok_N[] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };

if(!menu()) exit(0);

total = 52;
srand( (unsigned)time( NULL ) );
iArr = (int*)malloc(total*sizeof(int));

for( i1=0; i1<total; i1++ )
{
iArr[i1]=rand()%total;
if( i1==0 ) continue;
do {
tag = 0;
for( j=0; j<i1; j++ )
if( iArr[j] == iArr[i1] )
{
iArr[i1]=rand()%total;
tag = 1;
}
} while( tag==1 );
}

for( i1=0; i1<total; i1++ )
{
printf("%s%s\t",pok_C[iArr[i1]%4],pok_N[iArr[i1]%13]);
if(i1%4==3) printf("\n");
}

free(iArr);

}

『貳』 c語言撲克牌

  1. 定義個字元數組,存放A-K牌面的字母 char ch[][3]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

  2. 牌的大小從A-K分別為 0-12

  3. 在輸出牌的牌面字元時,輸出ch數據中牌面值下標的字元串。如某牌數值是9,輸出時如下:

    printf("%s", ch[9]);

  4. 「%d\%c」是格式輸出字元串,表示要輸出一個整數(%d)一個字元(%c) ,後面的兩個參數分別是整數,字元,和格式化字元串相對應。是轉義符,對於要輸出特殊字元時,需要在前面加上,比如輸出時,就寫成\;再如 " ,應寫成";輸出換行寫成 ,輸出回車寫成 等。在這個題目中,和後面的%構不成特殊字元轉義,所以不輸出,刪掉它也是一樣的。

『叄』 大學初學c語言,作業,c程序編寫出撲克牌黑桃A的圖案

#include<stdio.h>
int main()

{
printf("%c\n",6);

return 0;
}
把ASCII碼對應的字元顯示出來,其中,6為黑桃,5為草花,4為方片,3為紅桃。

『肆』 c語言編程題!!急求!! 關於撲克牌(要完整代碼最好有解釋)

#include<stdio.h>
int asc(char p[][3]);
intisError(char p1[][3],char p2[][3]);
void compare(char p3[][3],char p4[][3]);
int main()
{
char a[3][3],b[3][3],c;
int i,j,resulta,resultb,result,flag=0;
printf("請輸入A的撲克牌,撲克牌之間以空格隔開,然後按下回車: ");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c=getchar();
if(c!=' '&&c!=10)
{
if(j==0)
{
if(c=='H'||c=='S'||c=='D'||c=='C')
;
else
{
printf("Input Error! ");
return 0;
}
}
if(j==1)
{
if(c=='J'||c=='Q'||c=='K'||c=='A'||(c>='1'&&c<='9'))
{
if(c=='J')
c=59;
if(c=='Q')
c=60;
if(c=='K')
c=61;
if(c=='A')
c=62;
if(c=='1')
flag=1;
}
else
{
printf("Input Error! ");
return 0;
}
}
if(j==2)
{
if(c!='0')
{
printf("Input Error! ");
return 0;
}else
{
flag=0;
c=58;
a[i][1]=c;
break;
}

}
a[i][j]=c;
}else
{
if(flag==1)
{
printf("Input Error! ");
return 0;
}
if(j==2)
break;
j--;
}
}
}
printf("請輸入B的撲克牌,撲克牌之間以空格隔開,然後按下回車: ");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c=getchar();
if(c!=' '&&c!=10)
{
if(j==0)
{
if(c=='H'||c=='S'||c=='D'||c=='C')
;
else
{
printf("Input Error! ");
return 0;
}
}
if(j==1)
{
if(c=='J'||c=='Q'||c=='K'||c=='A'||(c>='1'&&c<='9'))
{
if(c=='J')
c=59;
if(c=='Q')
c=60;
if(c=='K')
c=61;
if(c=='A')
c=62;
if(c=='1')
flag=1;
}
else
{
printf("Input Error! ");
return 0;
}
}
if(j==2)
{
if(c!='0')
{
printf("Input Error! ");
return 0;
}else
{
flag=0;
c=58;
b[i][1]=c;
break;
}

}
b[i][j]=c;
}else
{
if(flag==1)
{
printf("Input Error! ");
return 0;
}
if(j==2)
break;
j--;
}
}
}
resulta=asc(a);
if(resulta==0)
return 0;
resultb=asc(b);
if(resultb==0)
return 0;
result=isError(a,b);
if(result==0)
return 0;
compare(a,b);
for(i=0;i<3;i++)
{
a[i][2]='';
b[i][2]='';
}
printf("A: ");
for(i=0;i<3;i++)
{
if(a[i][1]>'2'&&a[i][1]<'9')
printf("%s ",a[i]);
else
{
if(a[i][1]==58)
{
printf("%c",a[i][0]);
printf("10 ");
}
if(a[i][1]==59)
{
printf("%c",a[i][0]);
printf("J ");
}
if(a[i][1]==60)
{
printf("%c",a[i][0]);
printf("Q ");
}
if(a[i][1]==61)
{
printf("%c",a[i][0]);
printf("K ");
}
if(a[i][1]==62)
{
printf("%c",a[i][0]);
printf("A ");
}
}
}
printf(" B: ");
for(i=0;i<3;i++)
{
if(b[i][1]>'2'&&b[i][1]<'9')
printf("%s ",b[i]);
else
{
if(b[i][1]==58)
{
printf("%c",b[i][0]);
printf("10 ");
}
if(b[i][1]==59)
{
printf("%c",b[i][0]);
printf("J ");
}
if(b[i][1]==60)
{
printf("%c",b[i][0]);
printf("Q ");
}
if(b[i][1]==61)
{
printf("%c",b[i][0]);
printf("K ");
}
if(b[i][1]==62)
{
printf("%c",b[i][0]);
printf("A ");
}
}
}
printf(" ");
return 0;
}

int asc(char p[][3])
{
int m,temp[2];
if(p[0][1]==p[1][1])
{
if(p[0][0]==p[1][0])
{
printf("Input Error! ");
return 0;
}
}
if(p[1][1]==p[2][1])
{
if(p[1][0]==p[2][0])
{
printf("Input Error! ");
return 0;
}
}
if(p[0][1]==p[2][1])
{
if(p[0][0]==p[2][0])
{
printf("Input Error! ");
return 0;
}
}
m=0;
if(p[m][1]<p[m+1][1])
{
temp[0]=p[m][0];
temp[1]=p[m][1];
p[m][0]=p[m+1][0];
p[m][1]=p[m+1][1];
p[m+1][0]=temp[0];
p[m+1][1]=temp[1];
}
if(p[m][1]<p[m+2][1])
{
temp[0]=p[m][0];
temp[1]=p[m][1];
p[m][0]=p[m+2][0];
p[m][1]=p[m+2][1];
p[m+2][0]=temp[0];
p[m+2][1]=temp[1];
}
m=1;
if(p[m][1]<p[m+1][1])
{
temp[0]=p[m][0];
temp[1]=p[m][1];
p[m][0]=p[m+1][0];
p[m][1]=p[m+1][1];
p[m+1][0]=temp[0];
p[m+1][1]=temp[1];
}
return 1;
}

intisError(char p1[][3],char p2[][3])
{
int n;
for(n=0;n<3;n++)
{
if(p1[n][0]==p2[0][0]&&p1[n][1]==p2[0][1])
{
printf("Input Error! ");
return 0;
}
if(p1[n][0]==p2[n][0]&&p1[1][1]==p2[1][1])
{
printf("Input Error! ");
return 0;
}
if(p1[n][0]==p2[n][0]&&p1[2][1]==p2[2][1])
{
printf("Input Error! ");
return 0;
}
}
return 1;
}

void compare(char p3[][3],char p4[][3])
{
int x;
for(x=0;x<3;x++)
{
if(p3[x][1]==p4[x][1])
continue;
if(p3[x][1]>p4[x][1]){
printf("Winner is A! ");
return;
}
if(p3[x][1]<p4[x][1]){
printf("Winner is B! ");
return;
}
}
printf("Winner is X! ");
}

這次對了。