SHARE
TWEET

Untitled

a guest Nov 19th, 2019 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Torpedó v0.1
  2. // Egy hajó, egy darabból
  3. #include <stdio.h>
  4.  
  5. #define TABLA_SOROK_SZAMA 5
  6. #define TABLA_OSZLOPOK_SZAMA 5
  7.  
  8. #define URES_MEZO ' '
  9. #define TALALT_MEZO 'T'
  10. #define SULLYEDT_MEZO 'S'
  11. #define NEM_TALALT_MEZO '.'
  12.  
  13. typedef struct {
  14.     char mezok[TABLA_SOROK_SZAMA][TABLA_OSZLOPOK_SZAMA];
  15. }tabla;
  16.  
  17. tabla uresTabla(){
  18.     tabla t;
  19.     for(int i=0;i<TABLA_SOROK_SZAMA;i++)
  20.         for(int j=0;j<TABLA_OSZLOPOK_SZAMA;j++)
  21.             t.mezok[i][j]=URES_MEZO;
  22.     return t;
  23. }
  24.  
  25. void kiirTabla(tabla t){
  26.     // +-+-+...
  27.     printf(" ");
  28.     for(int i=0;i<TABLA_OSZLOPOK_SZAMA;i++)
  29.         printf("+-%c-",'A'+i);
  30.     printf("+\n");
  31.     for(int i=0;i<TABLA_SOROK_SZAMA;i++){
  32.         for(int j=0;j<TABLA_OSZLOPOK_SZAMA;j++){
  33.             if (j==0)
  34.                 printf("%c",'0'+i);
  35.             printf("| %c ",t.mezok[i][j]);
  36.         }
  37.         printf("|\n");
  38.         printf(" ");
  39.         for(int j=0;j<TABLA_OSZLOPOK_SZAMA;j++)
  40.             printf("+---");
  41.         printf("+\n");
  42.     }
  43. }
  44.  
  45. #define IGAZ 1
  46. #define HAMIS 0
  47.  
  48. typedef struct{
  49.     char oszlop;
  50.     char sor;
  51. }pozicio_tipus;
  52.  
  53. typedef struct {
  54.     pozicio_tipus pozicio;
  55.     char talalat;
  56. }hajo_darab_tipus;
  57.  
  58. pozicio_tipus bekerPozicio(){
  59.     pozicio_tipus pos;
  60.     char gepelt_pozicio[5];
  61.     printf("Kérem a pozíciót (A0..%c%c): ",
  62.                 'A'+TABLA_OSZLOPOK_SZAMA-1,
  63.                 '0'+TABLA_SOROK_SZAMA-1);
  64.     scanf("%s",gepelt_pozicio);
  65.     pos.oszlop=gepelt_pozicio[0]-'A';
  66.     pos.sor=gepelt_pozicio[1]-'0';
  67.     return pos;
  68. }
  69.  
  70. typedef struct{
  71.     hajo_darab_tipus darabok;
  72.     char sullyed_e;
  73. }hajo_tipus;
  74.  
  75. hajo_tipus bekerHajo(){
  76.     hajo_tipus h;
  77.     printf("Kérem a hajó adatait!\n");
  78.     h.darabok.pozicio=bekerPozicio();
  79.     h.darabok.talalat=HAMIS;
  80.  
  81.     h.sullyed_e=HAMIS;
  82.     return h;
  83. }
  84.  
  85. typedef struct{
  86.     hajo_tipus hajo;
  87.     char sullyed_e
  88. }flotta_tipus;
  89.  
  90. char talalt_e(flotta_tipus* flotta,pozicio_tipus p){
  91.     char eredmeny=NEM_TALALT_MEZO;
  92.     if ((*flotta).hajo.darabok.pozicio.sor==p.sor&&
  93.             (*flotta).hajo.darabok.pozicio.oszlop==p.oszlop){
  94.         eredmeny=TALALT_MEZO;
  95.         (*flotta).hajo.darabok.talalat=IGAZ;
  96.     }
  97.     if ((*flotta).hajo.darabok.talalat==IGAZ){
  98.         eredmeny=SULLYEDT_MEZO;
  99.         // mert csak 1 darabja van
  100.         (*flotta).hajo.sullyed_e=IGAZ;
  101.     }
  102.     if ((*flotta).hajo.sullyed_e==IGAZ)
  103.         // mert csak 1 hajó van
  104.         (*flotta).sullyed_e=IGAZ;
  105.     return eredmeny;
  106. }
  107.  
  108. flotta_tipus bekerFlotta(){
  109.     flotta_tipus flotta;
  110.     printf("Kérem a flotta adatait!\n");
  111.     flotta.hajo=bekerHajo();
  112.     flotta.sullyed_e=HAMIS;
  113.     return flotta;
  114. }
  115.  
  116. int main(){
  117.     tabla t;
  118.     t=uresTabla();
  119.     kiirTabla(t);
  120.     flotta_tipus flotta=bekerFlotta();
  121.     do{
  122.         printf("Kérek egy lövést!\n");
  123.         pozicio_tipus p=bekerPozicio();
  124.         //printf("A lövés eredménye: %c\n",
  125.         //      talalt_e(flotta,p));
  126.         t.mezok[p.sor][p.oszlop]=talalt_e(&flotta,p);
  127.         kiirTabla(t);
  128.     }while (flotta.sullyed_e==HAMIS);
  129.     if (flotta.sullyed_e==IGAZ)
  130.         printf("Győztél!\n");
  131.     return 0;
  132. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top