Leksus
Зарегистрирован: 12.01.2005 Сообщения: 4
|
Добавлено: Пн Май 30 2005 17:51 Заголовок сообщения: Vashe mnenie |
|
|
Proga Tusuet Kolodu Kart i razdaet po 5 kart 2 igrokam
Код: | #include<stdio.h>
#include<stdlib.h>
#include<time.h>
void shuffle(int[][13]);/* функция тосовки карт*/
void deal(const int[][13],const char*[],const char*[]);/*печатает перемешанную колоду карт*/
void distribute(const int[][13],int[][2],int[][2]);/*Сдача карт двум игрокам */
int main(){
const char *suit[4]={"Hearts","Diamonds","Clubs","Spades"};/*массив мастей*/
const char *fase[13]={"Ace","Deuce","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"};/*массив карточных номиналов*/
int deck[4][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{14,15,16,17,18,19,20,21,22,23,24,25,26},{27,28,29,30,31,32,33,34,35,36,37,38,39}
,{40,41,42,43,44,45,46,47,48,49,50,51,52}};/*колода карт*/
int player_1[5][2]={0};
int player_2[5][2]={0};/* игроки массивы расчитанные на сдачу пяти карт*/
srand(time(0));/* функция обеспечивающая случайное число*/
shuffle(deck);/* перемешивание карт*/
deal(deck,fase,suit);/*передаем массив "тасованную колоду карт", массив мастей, массив номиналов*/
for(int s=0;s<=3;s++){for(int f=0;f<=12;f++)printf(" %d ", deck[s][f]);printf("\n");}/*Выводим перемешанную колоду карт*/
distribute(deck,player_1,player_2);
printf("Player 1\n");
for(int card=0;card<=4;card++) printf("%5s of %-8s%c", suit[player_1[card][0]],fase[player_1[card][1]],card%2==0?'\n':'\t');/*вывод карт первого игрока*/
printf("\nPlayer 2\n");
for(int c=0;c<=4;c++)printf("%5s of %-8s%c", suit[player_2[c][0]],fase[player_2[c][1]],c%2==0?'\n':'\t');/*выводит карты второго игрока*/
getchar();
getchar();
}
void shuffle(int wDeck[][13]){
int row, column,Suit,Fase,midl;
for(Suit=0;Suit<=3;Suit++)for(Fase=0;Fase<=12;Fase++){
row=rand()%4;
column=rand()%13;
midl=wDeck[Suit][Fase];
wDeck[Suit][Fase]=wDeck[row][column];
wDeck[row][column]=midl;
//printf(" WDeck[%d][%d]==%d\n", row, column, wDeck[Suit][Fase]);
}
}
void deal(const int wDeck[][13],const char *wFace[],const char *wSuit[])
{
int card, row, column;
for(card=1;card<=52;card++)
for(row=0;row<=3;row++)
for(column=0;column<=12;column++)
if(wDeck[row][column]==card)
printf("%5s of %-8s%c", wFace[column],wSuit[row],card%2==0?'\n':'\t');
}
void distribute(const int Deck[][13],int Player_1[5][2],int Player_2[5][2]){
int card, row, column,p_1=0,p_2=0;
for(card=1;card<=10;card++){
for(row=0;row<=3;row++){for(column=0;column<=12;column++){
if(Deck[row][column]==card){
if(card%2){ Player_1[p_1][0]=row;
Player_1[p_1][1]=column;
p_1++;
}
else{Player_2[p_2][0]=row;Player_2[p_2][1]=column;p_2++;}
}
if(Deck[row][column]==card)break; }
if(Deck[row][column]==card)break;
}
}
}
|
|
|