Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.04 KB | None | 0 0
  1. #define F_CPU 16000000UL
  2.  
  3. #include <avr/io.h>
  4. #include <util/delay.h>
  5.  
  6. void zeruj()
  7. {
  8.     int k;
  9.     for(k=1;k<5;k++)
  10.     {
  11.         PORTC=~2^(k-1);
  12.         PORTD=~0;
  13.     }
  14. }
  15.  
  16. void win(int t)
  17. {
  18.     PORTC =~4;
  19.     PORTD=~0x4F;
  20.     PORTC =~2;
  21.     PORTD=~0x15;
  22.     PORTC=~1;
  23.     PORTD=~0x3D;
  24.     _delay_ms(10000);
  25.     if(t==1)
  26.     PORTB=1;
  27.     else if(t==2)
  28.     PORTB=2;
  29.     else
  30.     PORTB=3;
  31.     zeruj();
  32. }
  33.  
  34.  
  35. void przeg()
  36. {
  37.     PORTC=~8;
  38.     PORTD=~0xE;
  39.     PORTC=~4;
  40.     PORTD=~0x7E;
  41.     PORTC=~2;
  42.     PORTD=~0x5B;
  43.     PORTC=~1;
  44.     PORTD=~0x4F;
  45.     _delay_ms(2000);
  46.     zeruj();
  47. }
  48.  
  49. void plus1()
  50. {
  51.     PORTC=~8;
  52.     PORTD=~0x67;
  53.     PORTC=~4;
  54.     PORTD=~0xE;
  55.     PORTC=~2;
  56.     PORTD=~0x3E;
  57.     PORTC=~1;
  58.     PORTD=~0x5B;
  59.     _delay_ms(2000);
  60.     zeruj();
  61.    
  62. }
  63.  
  64. void wyswietlpkt(int t, int tabl[])
  65. {
  66.     if(t>9)
  67.     {
  68.         int pierwsza=t/10;
  69.         int druga=t%10;
  70.         PORTC=~2;
  71.         PORTD=tabl[pierwsza];
  72.         PORTC=~1;
  73.         PORTD=tabl[druga];
  74.     }
  75.     if(t<9)
  76.     {
  77.         PORTC=~1;
  78.         PORTD=tabl[t];
  79.     }
  80.     _delay_ms(2000);
  81.     zeruj();
  82. }
  83.  
  84.  
  85. int main(void)
  86. {
  87.     while(1)
  88.     {
  89.         DDRB=0xFF;
  90.         DDRC = 0xff;
  91.         DDRD=0xFF;
  92.         PORTB=0;
  93.         PORTC=0;
  94.         PORTD=0;
  95.         int tabl[10]={~0x7E, ~0x30, ~0x6D, ~0x79, ~0x33, ~0x5B, ~0x5F, ~0x70, ~0x7F, ~0x7B};
  96.         int Talia[24];
  97.         int elko[6]={0,10,2,3,4,11};
  98.         int i;
  99.         int l=0;
  100.         for(i=1;i<25;i++)
  101.         {
  102.             Talia[i-1]=elko[l];
  103.             if (i%4==0)
  104.             l++;
  105.         }
  106.         //random_shuffle(&Talia[0],&Talia[23]); // Wymieszanie elementów tablicy złożonej z wartosci kart
  107.         int p=0;
  108.         int punktya, punktyb;
  109.         int gracz1=1;
  110.         int gracz2=1;
  111.         int k=0;
  112.         if(gracz1==1&&gracz2==1){
  113.             PORTB=1;
  114.             if(k==0)
  115.             {
  116.                 PORTC=~4;
  117.                 PORTD=~0x67; // P
  118.                 //PORTC=~2;
  119.                 //PORTD=~0x30; // 1
  120.                 _delay_ms(2000);
  121.                 zeruj();
  122.                 k++;
  123.             }
  124.            
  125.             while(1)
  126.             {
  127.                 int przycisk=2;;
  128.                 if(przycisk==1)
  129.                 {
  130.                     punktya=punktya+Talia[p];
  131.                     p++;
  132.                     k++;
  133.                     break;
  134.                 }
  135.                 if(przycisk==0)
  136.                 {
  137.                     gracz1=0;
  138.                     break;
  139.                 }
  140.                 if(PORTB==0x19)
  141.                 przycisk=1;
  142.                 if(PORTB==0x29)
  143.                 przycisk=0;
  144.                
  145.             }
  146.             if(k==2)
  147.             {
  148.                 plus1();
  149.                 wyswietlpkt(Talia[p-1],tabl);
  150.                 wyswietlpkt(punktya,tabl);
  151.                
  152.             }
  153.             if(punktya>21)
  154.             {
  155.                 przeg();
  156.                 gracz1=0;
  157.                 win(2);
  158.             }
  159.         }
  160.        
  161.         k=0;
  162.         PORTB=0;
  163.         PORTC=0;
  164.         PORTD=0;
  165.         if(gracz2==1&&gracz2==1){
  166.             PORTB=2;
  167.             if(k==0)
  168.             {
  169.                 PORTC=4;
  170.                 PORTD=0x67; // P
  171.                 PORTC=2;
  172.                 PORTD=tabl[2]; // 1
  173.                 _delay_ms(2000);
  174.                 zeruj();
  175.                 k++;
  176.             }
  177.            
  178.             while(1)
  179.             {
  180.                 int przycisk=2;
  181.                 if(przycisk==1)
  182.                 {
  183.                     punktyb=punktyb+Talia[p];
  184.                     p++;
  185.                     k++;
  186.                     break;
  187.                 }
  188.                 if(przycisk==0)
  189.                 {
  190.                     gracz1=0;
  191.                     break;
  192.                 }
  193.                 if(PORTB==0x1A)
  194.                 przycisk=1;
  195.                 if(PORTB==0x2A)
  196.                 przycisk=0;
  197.                
  198.             }
  199.             if(k==2)
  200.             {
  201.                 plus1();
  202.                 wyswietlpkt(Talia[p-1],tabl);
  203.                 wyswietlpkt(punktyb,tabl);
  204.                
  205.             }
  206.             if(punktyb>21)
  207.             {
  208.                 przeg();
  209.                 gracz2=0;
  210.                 win(1);
  211.                
  212.             }
  213.         }
  214.         if(gracz1==0&&gracz2==0)
  215.         {
  216.             if(punktya>punktyb)
  217.             {
  218.                 win(1);
  219.             }
  220.             else if(punktyb>punktya)
  221.             {
  222.                 win(2);
  223.             }
  224.             else
  225.             {
  226.                 win(3);
  227.             }
  228.            
  229.         }
  230.     }
  231.     return 0;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement