Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Vashe mnenie

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Обучение
Предыдущая тема :: Следующая тема  
Автор Сообщение
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;

                             }

                            }

 

 

 

}

 

 

 

 

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Обучение Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...