成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

php撲克牌數(shù)據(jù)結(jié)構(gòu) 撲克牌代碼面向?qū)ο蟪绦蛟O計

撲克牌不同花色分出來!

我做過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ù)結(jié)構(gòu)

牌類型

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;

//打印生成結(jié)果

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;

}

}

}

//打印隨機結(jié)果

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ā)牌結(jié)果:");

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()方法里的調(diào)用{

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

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

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

}

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

PHP 數(shù)據(jù)結(jié)構(gòu) 算法 三元組 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");

}

這次對了。

本文題目:php撲克牌數(shù)據(jù)結(jié)構(gòu) 撲克牌代碼面向?qū)ο蟪绦蛟O計
文章轉(zhuǎn)載:http://jinyejixie.com/article32/ddcccsc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、微信小程序、外貿(mào)網(wǎng)站建設網(wǎng)站改版響應式網(wǎng)站、電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
长春市| 天柱县| 临江市| 罗源县| 凌云县| 广元市| 南郑县| 修水县| 双峰县| 曲靖市| 牟定县| 军事| 汾西县| 曲阜市| 恩平市| 会理县| 当雄县| 华坪县| 隆回县| 峡江县| 西乌珠穆沁旗| 米易县| 舞阳县| 宁化县| 稷山县| 宜宾市| 阜阳市| 青海省| 清丰县| 塔城市| 黄浦区| 攀枝花市| 巴彦县| 白玉县| 墨竹工卡县| 徐闻县| 三台县| 东乌| 天津市| 松江区| 邢台市|