diff --git a/dropdown.cpp b/dropdown.cpp
index b0f6442065a5760d00b2f385677374c2b859bb2c..740360a9485210a346da6a4cf0da1ab4ba1440c3 100644
--- a/dropdown.cpp
+++ b/dropdown.cpp
@@ -13,7 +13,7 @@ Dropdown::Dropdown(int x, int y, int extentx, int extenty, vector<string> option
     _extentx = extentx;
     _extenty = extenty;
     _mod = 1;
-    _number = 0;
+    _number = -1;
     _scroll = 0;
 }
 
@@ -30,103 +30,103 @@ void Dropdown::image()
 
 void Dropdown::operate(event ev)
 {
-    gout << move_to(_x, _y) << color(128, 128, 128) << box(_extentx, _extenty) << move_to(_x, _y + _extenty * 0.8) << color(255, 255, 255) << text(_options[_number]);
-    gout << move_to(_x + _extentx - _extenty + 3, _y + 3) << color(255, 255, 255) << box(_extenty - 6, _extenty - 6);
-    if (ev.type == ev_key && ev.keycode == key_down)
+    bool run = true;
+    while (gin >> ev && run)
     {
-        if(_scroll != _options.size()-_limit+1)
+        // Drawing dropdown items
+        for (int i = 0; i < 4; ++i) {
+            int y_offset = _y + (i * (_extenty + 5));
+            gout << move_to(_x, y_offset) << color(128, 128, 128) << box(_extentx, _extenty);
+            gout << move_to(_x, y_offset + _extenty * 0.8) << color(255, 255, 255) << text(_options[i]);
+        }
+        gout << refresh;
+
+        // Event handling
+        if (ev.type == ev_mouse && ev.button == btn_left)
         {
-            _scroll +=1;
+            cout << "Mouse clicked at: " << ev.pos_x << " , " << ev.pos_y << endl;
+            for (int i = 0; i < 4; ++i)
+            {
+                int y_offset = _y + (i * (_extenty + 5));
+                if (ev.pos_x >= _x && ev.pos_x <= _x + _extentx &&
+                    ev.pos_y >= y_offset && ev.pos_y <= y_offset + _extenty)
+                {
+                    cout << "Option " << i << " clicked" << endl; // Debug print
+                    _number = i;
+                    run = false; // Set run to false to exit the loop
+                    break; // Break the loop as we found the clicked option
+                }
+            }
         }
-    }
-    if (ev.type == ev_key && ev.keycode == key_up)
-    {
-        if(_scroll > 0)
+        if(_number != -1)
         {
-            _scroll -=1;
+            run = false;
+            break;
+
         }
     }
-    int szam = _scroll;
-    for (int i = _y + _extenty + 2; i < _y + _limit * (_extenty + 2); i += _extenty + 2)
+    /*
+    bool run = true;
+    while (gin >> ev and run)
     {
-        gout << color(128, 128, 128);
-        if (ev.pos_x >= _x and ev.pos_x <= _x + _extentx)
+        // Drawing dropdown items
+        for (int i = 0; i < 4; ++i) {
+            int y_offset = _y + (i * (_extenty + 5));
+            gout << move_to(_x, y_offset) << color(128, 128, 128) << box(_extentx, _extenty);
+            gout << move_to(_x, y_offset + _extenty * 0.8) << color(255, 255, 255) << text(_options[i]);
+        }
+        gout << refresh;
+
+        // Event handling
+        if (ev.type == ev_mouse && ev.button == btn_left)
         {
-            if (ev.pos_y >= i and ev.pos_y <= i + _extenty)
+            cout << "Mouse clicked at: " << ev.pos_x << " , " << ev.pos_y << endl;
+            for (int i = 0; i < 4; ++i)
             {
-                gout << color(50, 50, 50);
+                int y_offset = _y + (i * (_extenty + 5));
+                if (ev.pos_x >= _x && ev.pos_x <= _x + _extentx &&
+                    ev.pos_y >= y_offset && ev.pos_y <= y_offset + _extenty)
+                {
+                    _number = i;
+                    run = false;
+                    break;
+                }
             }
         }
-        gout << move_to(_x, i) << box(_extentx, _extenty);
-        gout << move_to(_x + 5, i + _extenty * 0.7) << color(255, 255, 255) << text(_options[szam]);
-        szam += 1;
     }
-    gout << refresh;
+    */
 }
 
 void Dropdown::reset(event ev)
 {
     gout << move_to(_x, _y) << color(0, 0, 0) << box((_extentx), (_extenty + 3) * 5);
     image();
+    cout << _number << "igazsag asd" <<endl;
     if (_mod == 2)
     {
         int szam = _scroll;
         for (int i = _y + _extenty + 2; i < _y + _limit * (_extenty + 2); i += _extenty + 2)
         {
-            if (ev.pos_x >= _x and ev.pos_x <= _x + _extentx)
+            if(ev.type == ev_mouse && ev.button == btn_left)
             {
-                if (ev.pos_y >= i and ev.pos_y <= i + _extenty)
+                if (ev.pos_x >= _x and ev.pos_x <= _x + _extentx)
                 {
-                    _number = szam;
-                    break;
+                    if (ev.pos_y >= i and ev.pos_y <= i + _extenty)
+                    {
+                        _number = szam;
+                        cout << _number << "igazsag" <<endl;
+                        break;
+                    }
                 }
             }
+
             szam += 1;
         }
     }
-    image();
 }
 
 bool Dropdown::is_chosen(int mx, int my, event ev)
 {
-    switch (_mod)
-    {
-    case 1:
-        if (mx >= (_x + _extentx - _extenty) and mx <= (_x + _extentx - 3))
-        {
-            if (my >= _y + 3 and my <= _y + _extenty - 3)
-            {
-                _mod = 2;
-                return true;
-            }
-            reset(ev);
-            return false;
-        }
-        reset(ev);
-        return false;
-        break;
-    case 2:
-        if (mx >= _x and mx <= _x + _extentx)
-        {
-            if (my >= _y + _extenty + 3 and my <= (_y + _extenty + 3) * 4)
-            {
-                reset(ev);
-                _mod = 1;
-                return false;
-            }
-            _mod = 1;
-            reset(ev);
-            return false;
-        }
-        _mod = 1;
-        reset(ev);
-        return false;
-        break;
-    default:
-        _mod = 1;
-        reset(ev);
-        return false;
-        break;
-    }
+    return false;
 }
 
diff --git a/main.cpp b/main.cpp
index 3ac7753693b6f790a7df408954d9d1ad54a3a212..8e1e46348bc7beeed70e0c5c80dd6822818d3536 100644
--- a/main.cpp
+++ b/main.cpp
@@ -23,8 +23,8 @@ public:
     void init_pieces()
     {
         // Fehér bábuk inicializálása
+        /*
         r1_1 = new Rook(this, 0, 0, true);
-
         kn1_1 = new Knight(this, 80, 0, true);
         b1_1 = new Bishop(this, 160, 0, true);
         k1 = new King(this, 240, 0, true);
@@ -32,6 +32,7 @@ public:
         b1_2 = new Bishop(this, 400, 0, true);
         kn1_2 = new Knight(this, 480, 0, true);
         r1_2 = new Rook(this, 560, 0, true);
+*/
         p1_1 = new Pawn(this, 0, 80, true);
         p1_2 = new Pawn(this, 80, 80, true);
         p1_3 = new Pawn(this, 160, 80, true);
@@ -40,9 +41,10 @@ public:
         p1_6 = new Pawn(this, 400, 80, true);
         p1_7 = new Pawn(this, 480, 80, true);
         p1_8 = new Pawn(this, 560, 80, true);
-
+        p1_8 = new Pawn(this, 560, 150, true);
 
         // Fekete bábuk inicializálása
+        /*
         r2_1 = new Rook(this, 0, 560, false);
         kn2_1 = new Knight(this, 80, 560, false);
         b2_1 = new Bishop(this, 160, 560, false);
@@ -51,6 +53,7 @@ public:
         b2_2 = new Bishop(this, 400, 560, false);
         kn2_2 = new Knight(this, 480, 560, false);
         r2_2 = new Rook(this, 560, 560, false);
+*/
         p2_1 = new Pawn(this, 0, 480, false);
         p2_2 = new Pawn(this, 80, 480, false);
         p2_3 = new Pawn(this, 160, 480, false);
diff --git a/pawn.cpp b/pawn.cpp
index b251bc777024004aecbd6e0b718dec865f7b9f20..019c180a5b534754613100780f7264138e5bd59e 100644
--- a/pawn.cpp
+++ b/pawn.cpp
@@ -427,18 +427,22 @@
                     }
                 }
             }
-            if ((_color && _y == 560) || (!_color && _y == 0)) {
-                cout << '1' << endl;
-                event ev1;
-                vector<string> options = {"Queen", "Rook", "Bishop", "Knight"}; // A választható opciók listája
-                Dropdown Dropdown(100,100,100,30, options,4); // Létrehozzuk a Dropdown objektumot
-                while (true) { // A ciklus addig fut, amíg valamilyen választás nem történik
+            //mukodik de nem elég simán fut
+            if ((_color && _y == 560) || (!_color && _y == 0))
+            {
+                vector<string> options = {"Queen", "Rook", "Bishop", "Knight"};
+                Dropdown Dropdown(100, 100, 100, 30, options, 5);
+                while (true)
+                {
                     event ev_dropdown;
                     gin >> ev_dropdown;
-                    Dropdown.operate(ev_dropdown); // Kezeljük az eseményeket a dropdown menüben
-
+                    Dropdown.operate(ev_dropdown);
+                    if(ev_dropdown.type == ev_mouse && ev_dropdown.button == btn_left)
+                    {
+                        break;
+                    }
                 }
-                cout << Dropdown.ret() << " szam " <<endl;
+                reset(run);
                 switch (Dropdown.ret())
                 {
                 case 0:
@@ -468,7 +472,6 @@
                 default:
                     break;
                 }
-
             }
             gout << refresh;
         }