真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php撲克牌數(shù)據(jù)結構 撲克牌代碼面向對象程序設計

撲克牌不同花色分出來!

我做過j2me斗地主還有麻將的游戲;我的做法是:

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的懷安網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

1. 首先需要定義好數(shù)據(jù)結構

牌類型

public class Card{

int value;// 有1~15 種可能

//1~13分別代表 A~K 14代表小王, 15代表大王

int color;//花色, 0~3種可以代表黑紅梅方

public Card(int v,int c){

value=v;color=c;

}

}

2. 定義好初始化牌堆(一幅新牌,沒切洗過)

Card[][] cards=new Card[15][4];

并初始化好它們,

for(int i=0;icards.length;i++)

for(int j=0;j4;j++)

Cards[i][j]=new Card(i,j);

當然還要做例外處理,因為第14個元素存的是大小王,所以里面只包含兩個元素,要保證其cards[14][2]和cards[14][3]為NULL

3。如果隨機發(fā)牌?

策略一:

如果發(fā)N張牌;

int counter=0

Card[] myCards=new Card[n];//我想得到的隨機牌組

while(counter n){

a.每次生成0~14隨機數(shù) i;

b.再生成 0~3 隨機數(shù) j;

c. 判斷 如果 cards[i][j]==null,繼續(xù)循環(huán)

continue;

d. 判斷 如果 cards[i][j]!=null,得到一張隨機牌!

myCard[counter]=cards[i][j];

counter++; //并且~~~~~ 一定要~~~

cards[i][j]=null; //置空,以保證不會重復

}

策略二:

另一種可以效率更高的隨機產(chǎn)生牌的策略:

for(int i=0;icards.length;i++)

for(int j=0;j4;j++)

a.隨機生成 0~14 的數(shù)字 X;

b.隨機生成 0~3 的數(shù)字 Y;

c.讓 cards[i][j] 與cards[x][y]交換數(shù)據(jù)

然后再用循環(huán)將 cards[][]中的牌按順利發(fā)N張到 myCards[]中

如果第二個人需要,又可以發(fā)N張

另外: 由于牌的大小和花色都是按數(shù)字值表示的,所以可以很容易對cards數(shù)組進行排序!

同時給玩家發(fā)完牌后,玩家也可以隨時進行牌的排序??梢园创笮∨?,也可以按花色牌,非常方便,整個代碼寫下來一共才一兩百行就搞定!

我還有連連看的消去兩張同樣牌的尋路算法。

泡泡龍碰撞反彈的軌跡算法。

麻將的胡牌算法

中國象棋行棋規(guī)律算法

等等。歡迎感興趣的朋友,有需要的立個貼,給分就貼

唉,如今賺個分不容易啊,好吧,代碼送上

public static class Card{

int value;// 有1~15 種可能

int color;//花色, 0~3種可以代表黑紅梅方

public Card(int v,int c){

value=v;color=c;

}

}

public static Card[][] initCards(){

Card[][] cards=new Card[15][4];

for(int i=0;icards.length;i++) {

for(int j=0;j4;j++) {

cards[i][j]=new Card(i,j);

}

}

cards[14][2]=null;

cards[14][3]=null;

//打印生成結果

for(int i=0;icards.length;i++) {

for(int j=0;j4;j++) {

if(cards[i][j]!=null){

System.out.print(cards[i][j].value+","+cards[i][j].color);

System.out.print(" ");

}

}

System.out.println();

}

return cards;

}

//隨機洗亂牌

public static Card[][] randomCards( Card[][] cards){

Random random=new Random();

for(int i=0;icards.length;i++) {

for(int j=0;j4;j++) {

if(cards[i][j]!=null){

int x=random.nextInt(14);

int y=random.nextInt(4);

Card tmp=cards[i][j];

cards[i][j]=cards[x][y];

cards[x][y]=tmp;

}

}

}

//打印隨機結果

for(int i=0;icards.length;i++) {

for(int j=0;j4;j++) {

if(cards[i][j]!=null){

System.out.print(cards[i][j].value+","+cards[i][j].color);

System.out.print(" ");

}

}

System.out.println();

}

return cards;

}

public static Card[] getCards(int num,Card[][] cards){

Card[] myCards=new Card[num];

int counter=0;

for(int i=0;icards.length;i++) {

for(int j=0;j4;j++) {

if(counter=num){

break;

}

myCards[counter]=cards[i][j];

cards[i][j]=null;

counter++;

}

if(counter=num){

break;

}

}

System.out.println("");

System.out.println("打印發(fā)牌結果:");

for(int j=0;jmyCards.length;j++) {

if(myCards[j]!=null){

System.out.print(myCards[j].value+","+myCards[j].color);

System.out.print(" ");

}

}

return myCards;

}

main()方法里的調用{

Card[][] cards=initCards();//初始化牌

cards=randomCards(cards);//洗牌,隨機

Card[] mycards= getCards(17,cards);//發(fā)17張牌出來

}

這總可以了吧? 總不會連main方法怎么用的也不知道吧? 哈

PHP 數(shù)據(jù)結構 算法 三元組 Triplet

復制代碼

代碼如下:

?php

/**

*

三元組

Triplet

*

*/

class

Triplet

{

private

$_data

=

null;

//

初始化三元組

public

function

init($val1,$val2,$val3)

{

$this-_data[0]

=

$val1;

$this-_data[1]

=

$val2;

$this-_data[2]

=

$val3;

return

true;

}

//

銷毀三元組

public

function

destroy()

{

unset($this-_data);

return

true;

}

//

返回第$key的值

public

function

get($key)

{

if($key

1

||

$key

3)

return

false;

return

$this-_data[$key

-

1];

}

//

設置第$key元的值為$val

public

function

put($key,$val)

{

if($key

1

||

$key

3)

return

false;

$this-_data[$key

-

1]

=

$val;

return

true;

}

//

是否按升序排序

public

function

isAscending()

{

return

($this-_data[0]

=

$this-_data[1])

($this-_data[1]

=

$this-_data[2]);

}

//

是否按降序排序

public

function

isDescending()

{

return

($this-_data[0]

=

$this-_data[1])

($this-_data[1]

=

$this-_data[2]);

}

//

獲取最大值

public

function

max()

{

return

($this-_data[0]

=

$this-_data[1])?

($this-_data[0]

=

$this-_data[2])?

$this-_data[0]

:

$this-_data[2]

:

($this-_data[1]

=

$this-_data[2])?

$this-_data[1]

:

$this-_data[2];

}

//

獲取最小值

public

function

min()

{

return

($this-_data[0]

=

$this-_data[1])?

($this-_data[0]

=

$this-_data[2])?

$this-_data[0]

:

$this-_data[2]

:

($this-_data[1]

=

$this-_data[2])?

$this-_data[1]

:

$this-_data[2];

}

}

//

$objTriplet

=

new

Triplet();

echo

"init:";var_dump($objTriplet-init(1,2,3));

echo

"br/";

echo

"get

1:";var_dump($objTriplet-get(1));

echo

"br/";

echo

"get

4:";var_dump($objTriplet-get(4));

echo

"br/";

//

false

echo

"put

3,4:";var_dump($objTriplet-put(3,4));

echo

"br/";

echo

"max:";var_dump($objTriplet-max());

echo

"br/";

echo

"min:";var_dump($objTriplet-min());

echo

"br/";

echo

"isAscending:";var_dump($objTriplet-isAscending());

echo

"br/";

echo

"isDescending:";var_dump($objTriplet-isDescending());

echo

"br/";

?

C語言編程題:撲克牌排序問題

#include?stdlib.h

#include?stdio.h

#include?time.h

#define?Color?short

#define?Red?0

#define?Green?1

#define?Blue?2

#define?White?3

#define?Pink?4

#define?Purple?5

#define?Suit?short

#define?Spades?1

#define?Hearts?0

#define?Diamonds?2

#define?Clubs?3

#define?J?11

#define?Q?12

#define?K?13

#define?A?1

#define?SmallJoker?14

#define?BigJoker?15

typedef?struct?{

int?ranking;

Color?color;

Suit?suit;

}?Card;

void?create_cards(Card?cards[],?int?size)?{

int?i,?j;

Card?temp;

for?(i?=?0;?i??size;?i++)?{

cards[i].color?=?i?/?54;

cards[i].suit?=?i?%?54?%?4;

cards[i].ranking?=?i?%?54?=?52???i?%?54?-?53?+?BigJoker?:?i?%?54?/?4?+?1;

}

for?(i?=?0;?i??size;?i++)?{

j?=?rand()?%?(size?-?i)?+?i;

if?(j?!=?i)?{

temp?=?cards[i];

cards[i]?=?cards[j];

cards[j]?=?temp;

}

}

}

void?print_card(Card*?card,?FILE*?file)?{

const?char*?color[]?=?{"紅",?"綠",?"藍",?"白",?"粉",?"紫"};

const?char*?suit[]?=?{"紅心",?"黑桃",?"方塊",?"梅花"};

const?char*?ranking[]?=?{"dummy",?"A",?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",?"Q",?"K",?"小王",?"大王"};

fprintf(file,?"%s底的",?color[card-color]);

if?(card-ranking??SmallJoker)?{

fprintf(file,?"%s",?suit[card-suit]);

}

fprintf(file,?"%s\n",?ranking[card-ranking]);

}

int?cmp(const?void*?a,?const?void*?b)?{

Card*?ca?=?(Card*)a;

Card*?cb?=?(Card*)b;

int?ranking[2]?=?{ca-ranking,?cb-ranking},?i;

for?(i?=?0;?i??2;?i++)?{

if?(ranking[i]?=?SmallJoker)?{

ranking[i]?+=?2;

}

else?if(ranking[i]?=?2)?{

ranking[i]?+=?13;

}

}

if?(ranking[0]?!=?ranking[1])?{

return?ranking[0]?-?ranking[1];

}

if?(ca-color?!=?cb-color)?{

return?ca-color?-?cb-color;

}

return?ca-suit?-?cb-suit;

}

void?sort_all_cards(Card?cards[],?int?size)?{

qsort(cards,?size,?sizeof(cards[0]),?cmp);

}

int?main()?{

const?int?size?=?54?*?6;

int?i;

Card?cards[size];

FILE?*before,?*after;

srand((unsigned?int)time(NULL));

create_cards(cards,?size);

before?=?fopen("Before.txt",?"w");

if?(before?==?NULL)?{

printf("Error?open?Before.txt\n");

exit(-1);

}

for?(i?=?0;?i??size;?i++)?{

print_card(cards?+?i,?before);

}

fclose(before);

sort_all_cards(cards,?size);

after?=?fopen("After.txt",?"w");

if?(before?==?NULL)?{

printf("Error?open?After.txt\n");

exit(-1);

}

for?(i?=?0;?i??size;?i++)?{

print_card(cards?+?i,?after);

}

fclose(after);

return?0;

}

Before.txt (僅供參考)

白底的方塊3

紫底的梅花K

綠底的方塊9

紅底的梅花10

綠底的黑桃K

白底的方塊10

綠底的紅心3

紫底的梅花A

藍底的方塊10

粉底的黑桃A

藍底的黑桃A

藍底的黑桃8

粉底的梅花7

紫底的黑桃4

紫底的梅花8

紫底的梅花2

白底的梅花K

藍底的紅心2

藍底的黑桃6

紅底的紅心Q

粉底的方塊K

藍底的黑桃Q

綠底的紅心10

紅底的黑桃9

粉底的黑桃K

白底的方塊J

紫底的紅心10

紫底的梅花Q

紅底的黑桃4

綠底的黑桃A

綠底的黑桃9

白底的方塊8

藍底的梅花6

白底的黑桃J

綠底的方塊4

紫底的紅心2

粉底的黑桃10

紫底的紅心Q

紅底的黑桃Q

粉底的黑桃6

綠底的梅花2

白底的方塊K

藍底的梅花J

紅底的方塊A

藍底的梅花3

粉底的梅花4

紫底的紅心4

紫底的紅心5

白底的方塊5

藍底的大王

綠底的黑桃8

紅底的黑桃5

綠底的紅心9

綠底的方塊7

白底的小王

藍底的方塊4

紫底的梅花5

綠底的方塊J

紫底的梅花10

白底的紅心2

紫底的黑桃6

白底的方塊9

紅底的方塊7

綠底的大王

紅底的紅心5

粉底的紅心J

藍底的黑桃3

藍底的紅心10

白底的紅心3

粉底的梅花6

綠底的黑桃7

白底的紅心10

綠底的方塊5

綠底的黑桃4

藍底的紅心3

白底的梅花8

紅底的黑桃7

白底的梅花A

藍底的方塊2

紫底的梅花J

粉底的梅花A

紫底的方塊Q

紅底的黑桃A

綠底的紅心8

綠底的紅心J

白底的方塊A

藍底的方塊5

粉底的方塊2

粉底的黑桃7

藍底的方塊3

白底的方塊6

紅底的方塊8

綠底的梅花A

藍底的方塊A

紫底的方塊5

紫底的方塊J

粉底的方塊10

粉底的梅花8

粉底的梅花10

紅底的紅心K

白底的大王

粉底的紅心Q

紫底的方塊4

藍底的紅心Q

藍底的梅花2

紫底的小王

白底的梅花J

綠底的紅心7

藍底的梅花Q

綠底的梅花10

紅底的梅花3

粉底的紅心7

紫底的方塊10

綠底的黑桃6

紅底的梅花4

藍底的梅花A

紅底的黑桃6

藍底的黑桃9

綠底的小王

紫底的紅心7

白底的紅心K

粉底的梅花Q

白底的紅心9

紫底的方塊A

紅底的紅心4

白底的黑桃9

綠底的梅花4

紅底的方塊4

綠底的紅心4

紅底的黑桃8

紅底的紅心7

紫底的方塊2

白底的黑桃3

藍底的黑桃10

紅底的梅花2

紅底的方塊J

白底的黑桃2

粉底的黑桃5

綠底的黑桃Q

紫底的黑桃8

綠底的紅心K

藍底的黑桃J

粉底的紅心9

粉底的梅花J

紫底的黑桃7

白底的梅花4

藍底的紅心8

紫底的方塊6

藍底的黑桃2

藍底的黑桃K

藍底的黑桃7

藍底的黑桃4

紅底的方塊10

紅底的黑桃3

粉底的紅心8

紅底的梅花7

粉底的梅花5

粉底的紅心2

綠底的方塊8

紅底的黑桃10

紅底的梅花6

紫底的梅花7

白底的黑桃A

紅底的梅花5

白底的黑桃4

粉底的梅花K

綠底的方塊Q

紅底的方塊K

紫底的方塊K

粉底的方塊A

紫底的紅心6

粉底的梅花3

粉底的黑桃4

綠底的黑桃2

綠底的方塊10

綠底的梅花K

紅底的紅心3

粉底的黑桃8

紅底的梅花8

粉底的黑桃Q

紅底的大王

紫底的黑桃Q

綠底的黑桃5

藍底的梅花8

白底的梅花6

紅底的方塊2

粉底的紅心6

紅底的黑桃J

綠底的紅心5

綠底的紅心2

藍底的紅心7

紫底的方塊8

藍底的方塊8

白底的黑桃Q

藍底的紅心4

綠底的方塊A

粉底的方塊5

紅底的梅花Q

紫底的黑桃A

粉底的方塊9

紫底的梅花9

白底的黑桃5

藍底的方塊K

白底的黑桃7

藍底的方塊6

藍底的黑桃5

白底的梅花3

粉底的黑桃2

粉底的方塊8

綠底的梅花3

白底的黑桃10

紫底的黑桃2

紅底的黑桃2

藍底的梅花4

紅底的梅花K

綠底的梅花Q

藍底的方塊Q

藍底的梅花9

紫底的黑桃J

綠底的紅心6

粉底的紅心10

藍底的梅花K

綠底的梅花J

紅底的紅心2

紅底的紅心6

粉底的黑桃9

藍底的紅心A

綠底的梅花8

紅底的紅心A

紫底的方塊7

白底的紅心4

紫底的大王

藍底的紅心5

綠底的黑桃J

紫底的紅心3

粉底的方塊Q

白底的紅心A

白底的梅花10

藍底的紅心J

綠底的梅花5

白底的梅花7

白底的紅心J

紫底的黑桃10

粉底的紅心A

紅底的紅心8

紫底的梅花3

粉底的梅花2

綠底的紅心Q

白底的黑桃K

藍底的方塊J

綠底的方塊2

白底的梅花Q

綠底的方塊K

粉底的黑桃3

綠底的梅花7

紅底的方塊6

紫底的黑桃9

紅底的梅花A

紫底的紅心A

粉底的紅心5

粉底的紅心4

粉底的紅心3

藍底的紅心9

紫底的紅心K

綠底的黑桃3

綠底的梅花6

紅底的紅心J

白底的方塊Q

粉底的大王

白底的黑桃8

藍底的梅花5

粉底的小王

白底的紅心7

紫底的方塊3

紫底的黑桃3

白底的梅花9

白底的方塊2

紅底的方塊3

藍底的方塊9

粉底的方塊6

紅底的方塊9

白底的方塊7

紫底的紅心9

白底的紅心Q

粉底的方塊7

綠底的梅花9

白底的方塊4

紫底的黑桃5

白底的梅花5

粉底的梅花9

紫底的黑桃K

紫底的紅心J

紅底的梅花9

紅底的方塊5

白底的紅心5

粉底的方塊4

紫底的方塊9

綠底的紅心A

綠底的方塊3

紅底的方塊Q

粉底的方塊3

藍底的紅心K

藍底的梅花7

紅底的黑桃K

綠底的方塊6

藍底的方塊7

白底的紅心8

藍底的小王

紅底的紅心10

白底的紅心6

白底的梅花2

紅底的梅花J

藍底的梅花10

紅底的紅心9

綠底的黑桃10

藍底的紅心6

粉底的方塊J

紅底的小王

粉底的紅心K

紫底的梅花6

白底的黑桃6

紫底的梅花4

粉底的黑桃J

紫底的紅心8

After.txt

紅底的紅心3

紅底的黑桃3

紅底的方塊3

紅底的梅花3

綠底的紅心3

綠底的黑桃3

綠底的方塊3

綠底的梅花3

藍底的紅心3

藍底的黑桃3

藍底的方塊3

藍底的梅花3

白底的紅心3

白底的黑桃3

白底的方塊3

白底的梅花3

粉底的紅心3

粉底的黑桃3

粉底的方塊3

粉底的梅花3

紫底的紅心3

紫底的黑桃3

紫底的方塊3

紫底的梅花3

紅底的紅心4

紅底的黑桃4

紅底的方塊4

紅底的梅花4

綠底的紅心4

綠底的黑桃4

綠底的方塊4

綠底的梅花4

藍底的紅心4

藍底的黑桃4

藍底的方塊4

藍底的梅花4

白底的紅心4

白底的黑桃4

白底的方塊4

白底的梅花4

粉底的紅心4

粉底的黑桃4

粉底的方塊4

粉底的梅花4

紫底的紅心4

紫底的黑桃4

紫底的方塊4

紫底的梅花4

紅底的紅心5

紅底的黑桃5

紅底的方塊5

紅底的梅花5

綠底的紅心5

綠底的黑桃5

綠底的方塊5

綠底的梅花5

藍底的紅心5

藍底的黑桃5

藍底的方塊5

藍底的梅花5

白底的紅心5

白底的黑桃5

白底的方塊5

白底的梅花5

粉底的紅心5

粉底的黑桃5

粉底的方塊5

粉底的梅花5

紫底的紅心5

紫底的黑桃5

紫底的方塊5

紫底的梅花5

紅底的紅心6

紅底的黑桃6

紅底的方塊6

紅底的梅花6

綠底的紅心6

綠底的黑桃6

綠底的方塊6

綠底的梅花6

藍底的紅心6

藍底的黑桃6

藍底的方塊6

藍底的梅花6

白底的紅心6

白底的黑桃6

白底的方塊6

白底的梅花6

粉底的紅心6

粉底的黑桃6

粉底的方塊6

粉底的梅花6

紫底的紅心6

紫底的黑桃6

紫底的方塊6

紫底的梅花6

紅底的紅心7

紅底的黑桃7

紅底的方塊7

紅底的梅花7

綠底的紅心7

綠底的黑桃7

綠底的方塊7

綠底的梅花7

藍底的紅心7

藍底的黑桃7

藍底的方塊7

藍底的梅花7

白底的紅心7

白底的黑桃7

白底的方塊7

白底的梅花7

粉底的紅心7

粉底的黑桃7

粉底的方塊7

粉底的梅花7

紫底的紅心7

紫底的黑桃7

紫底的方塊7

紫底的梅花7

紅底的紅心8

紅底的黑桃8

紅底的方塊8

紅底的梅花8

綠底的紅心8

綠底的黑桃8

綠底的方塊8

綠底的梅花8

藍底的紅心8

藍底的黑桃8

藍底的方塊8

藍底的梅花8

白底的紅心8

白底的黑桃8

白底的方塊8

白底的梅花8

粉底的紅心8

粉底的黑桃8

粉底的方塊8

粉底的梅花8

紫底的紅心8

紫底的黑桃8

紫底的方塊8

紫底的梅花8

紅底的紅心9

紅底的黑桃9

紅底的方塊9

紅底的梅花9

綠底的紅心9

綠底的黑桃9

綠底的方塊9

綠底的梅花9

藍底的紅心9

藍底的黑桃9

藍底的方塊9

藍底的梅花9

白底的紅心9

白底的黑桃9

白底的方塊9

白底的梅花9

粉底的紅心9

粉底的黑桃9

粉底的方塊9

粉底的梅花9

紫底的紅心9

紫底的黑桃9

紫底的方塊9

紫底的梅花9

紅底的紅心10

紅底的黑桃10

紅底的方塊10

紅底的梅花10

綠底的紅心10

綠底的黑桃10

綠底的方塊10

綠底的梅花10

藍底的紅心10

藍底的黑桃10

藍底的方塊10

藍底的梅花10

白底的紅心10

白底的黑桃10

白底的方塊10

白底的梅花10

粉底的紅心10

粉底的黑桃10

粉底的方塊10

粉底的梅花10

紫底的紅心10

紫底的黑桃10

紫底的方塊10

紫底的梅花10

紅底的紅心J

紅底的黑桃J

紅底的方塊J

紅底的梅花J

綠底的紅心J

綠底的黑桃J

綠底的方塊J

綠底的梅花J

藍底的紅心J

藍底的黑桃J

藍底的方塊J

藍底的梅花J

白底的紅心J

白底的黑桃J

白底的方塊J

白底的梅花J

粉底的紅心J

粉底的黑桃J

粉底的方塊J

粉底的梅花J

紫底的紅心J

紫底的黑桃J

紫底的方塊J

紫底的梅花J

紅底的紅心Q

紅底的黑桃Q

紅底的方塊Q

紅底的梅花Q

綠底的紅心Q

綠底的黑桃Q

綠底的方塊Q

綠底的梅花Q

藍底的紅心Q

藍底的黑桃Q

藍底的方塊Q

藍底的梅花Q

白底的紅心Q

白底的黑桃Q

白底的方塊Q

白底的梅花Q

粉底的紅心Q

粉底的黑桃Q

粉底的方塊Q

粉底的梅花Q

紫底的紅心Q

紫底的黑桃Q

紫底的方塊Q

紫底的梅花Q

紅底的紅心K

紅底的黑桃K

紅底的方塊K

紅底的梅花K

綠底的紅心K

綠底的黑桃K

綠底的方塊K

綠底的梅花K

藍底的紅心K

藍底的黑桃K

藍底的方塊K

藍底的梅花K

白底的紅心K

白底的黑桃K

白底的方塊K

白底的梅花K

粉底的紅心K

粉底的黑桃K

粉底的方塊K

粉底的梅花K

紫底的紅心K

紫底的黑桃K

紫底的方塊K

紫底的梅花K

紅底的紅心A

紅底的黑桃A

紅底的方塊A

紅底的梅花A

綠底的紅心A

綠底的黑桃A

綠底的方塊A

綠底的梅花A

藍底的紅心A

藍底的黑桃A

藍底的方塊A

藍底的梅花A

白底的紅心A

白底的黑桃A

白底的方塊A

白底的梅花A

粉底的紅心A

粉底的黑桃A

粉底的方塊A

粉底的梅花A

紫底的紅心A

紫底的黑桃A

紫底的方塊A

紫底的梅花A

紅底的紅心2

紅底的黑桃2

紅底的方塊2

紅底的梅花2

綠底的紅心2

綠底的黑桃2

綠底的方塊2

綠底的梅花2

藍底的紅心2

藍底的黑桃2

藍底的方塊2

藍底的梅花2

白底的紅心2

白底的黑桃2

白底的方塊2

白底的梅花2

粉底的紅心2

粉底的黑桃2

粉底的方塊2

粉底的梅花2

紫底的紅心2

紫底的黑桃2

紫底的方塊2

紫底的梅花2

紅底的小王

綠底的小王

藍底的小王

白底的小王

粉底的小王

紫底的小王

紅底的大王

綠底的大王

藍底的大王

白底的大王

粉底的大王

紫底的大王

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

#includestdio.h

int asc(char p[][3]);

int?isError(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的撲克牌,撲克牌之間以空格隔開,然后按下回車:\n");

for(i=0;i3;i++)

{

for(j=0;j3;j++)

{

c=getchar();

if(c!=' 'c!=10)

{

if(j==0)

{

if(c=='H'||c=='S'||c=='D'||c=='C')

;

else

{

printf("Input Error!\n");

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!\n");

return 0;

}

}

if(j==2)

{

if(c!='0')

{

printf("Input Error!\n");

return 0;

}else

{

flag=0;

c=58;

a[i][1]=c;

break;

}

}

a[i][j]=c;

}else

{

if(flag==1)

{

printf("Input Error!\n");

return 0;

}

if(j==2)

break;

j--;

}

}

}

printf("請輸入B的撲克牌,撲克牌之間以空格隔開,然后按下回車:\n");

for(i=0;i3;i++)

{

for(j=0;j3;j++)

{

c=getchar();

if(c!=' 'c!=10)

{

if(j==0)

{

if(c=='H'||c=='S'||c=='D'||c=='C')

;

else

{

printf("Input Error!\n");

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!\n");

return 0;

}

}

if(j==2)

{

if(c!='0')

{

printf("Input Error!\n");

return 0;

}else

{

flag=0;

c=58;

b[i][1]=c;

break;

}

}

b[i][j]=c;

}else

{

if(flag==1)

{

printf("Input Error!\n");

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;i3;i++)

{

a[i][2]='\0';

b[i][2]='\0';

}

printf("A: ");

for(i=0;i3;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("\nB: ");

for(i=0;i3;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("\n");

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!\n");

return 0;

}

}

if(p[1][1]==p[2][1])

{

if(p[1][0]==p[2][0])

{

printf("Input Error!\n");

return 0;

}

}

if(p[0][1]==p[2][1])

{

if(p[0][0]==p[2][0])

{

printf("Input Error!\n");

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;

}

int?isError(char p1[][3],char p2[][3])

{

int n;

for(n=0;n3;n++)

{

if(p1[n][0]==p2[0][0]p1[n][1]==p2[0][1])

{

printf("Input Error!\n");

return 0;

}

if(p1[n][0]==p2[n][0]p1[1][1]==p2[1][1])

{

printf("Input Error!\n");

return 0;

}

if(p1[n][0]==p2[n][0]p1[2][1]==p2[2][1])

{

printf("Input Error!\n");

return 0;

}

}

return 1;

}

void compare(char p3[][3],char p4[][3])

{

int x;

for(x=0;x3;x++)

{

if(p3[x][1]==p4[x][1])

continue;

if(p3[x][1]p4[x][1]){

printf("Winner is A!\n");

return;

}

if(p3[x][1]p4[x][1]){

printf("Winner is B!\n");

return;

}

}

printf("Winner is X!\n");

}

這次對了。


網(wǎng)頁題目:php撲克牌數(shù)據(jù)結構 撲克牌代碼面向對象程序設計
本文地址:http://weahome.cn/article/ddcccsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部