 'l':
        vt_z += 0.5;
        break;
    case 'L':
        vt_z -= 0.5;
        break;
    case 'b':
        vu_x += 0.5;
        break;
    case 'B':
        vu_x -= 0.5;
        break;
    case 'n':
        vu_y += 0.5;
        break;
    case 'N':
        vu_y -= 0.5;
        break;
    case'm':
        vt_z += 0.5;
        break;
    case 'M':
        vu_z -= 0.5;
        break;

    }

    glutPostRedisplay();
}

void specialKeys(int key, int x, int y) {
    switch (key) {
    case GLUT_KEY_F1: // F1: Toggle between full-screen and windowed mode
        fullScreenMode =!fullScreenMode; // Toggle state
        if (fullScreenMode) { // Full-screen mode
            windowPosX = glutGet(GLUT_WINDOW_X ); // Save parameters for restoring later
            windowPosY = glutGet(GLUT_WINDOW_Y );
            windowWidth = glutGet(GLUT_WINDOW_WIDTH );
            windowHeight = glutGet(GLUT_WINDOW_HEIGHT );
            glutFullScreen(); // Switch into full screen
        } else { // Windowed mode
            glutReshapeWindow(windowWidth, windowHeight); // Switch into windowed mode
            glutPositionWindow(windowPosX, windowPosX); // Position top-left corner
        }
        break;

    case GLUT_KEY_UP:
        if (!isCollision)
            moveBallUp = true;
        break;

    case GLUT_KEY_PAGE_UP:

        if (ballSpeed >= ballMaxSpeed)
            break;
        ballSpeed *= 1.1f;
        break;

    case GLUT_KEY_PAGE_DOWN:
        if (ballSpeed <= ballMinSpeed)
            break;
        ballSpeed *= 0.95f;
        break;

    case GLUT_KEY_RIGHT:
        if
' l': 
         vt_z + = 0.5; 
         break; 
     case' L': 
         vt_z -= 0.5; 
         demote; 
     case' b': 
         vu_x + = 0.5; 
         break in; 
     lawsuit' B': 
         vu_x -= 0.5; 
         break; 
     character' n': 
         vu_y + = 0.5; 
         bankrupt; 
     case' N': 
         vu_y -= 0.5; 
         fracture; 
     case'm': 
         vt_z + = 0.5; 
         break; 
     case' megabyte': 
         vu_z -= 0.5; 
         break; 

     } 

     glutPostRedisplay (); 
 } 

 void specialKeys(int key, int x, int y) { 
     substitution (key) { 
     case GLUT_KEY_F1: // F1: Toggle between wide - screen and windowed mode 
         fullScreenMode =! fullScreenMode; // Toggle state of matter 
         if (fullScreenMode) { // Full - screen mode 
             windowPosX = glutGet(GLUT_WINDOW_X); // keep open parameters for restoring later 
             windowPosY = glutGet(GLUT_WINDOW_Y); 
             windowWidth = glutGet(GLUT_WINDOW_WIDTH); 
             windowHeight = glutGet(GLUT_WINDOW_HEIGHT); 
             glutFullScreen (); // Switch into entire screen 
         } else { // Windowed mode 
             glutReshapeWindow(windowWidth, windowHeight); // Switch into windowed mode 
             glutPositionWindow(windowPosX, windowPosX); // Position top - leave corner 
         } 
         break; 

     case GLUT_KEY_UP: 
         if (! isCollision) 
             moveBallUp = true; 
         break; 

     shell GLUT_KEY_PAGE_UP: 

         if (ballSpeed > = ballMaxSpeed) 
             break; 
         ballSpeed * = 1.1f; 
         break; 

     case GLUT_KEY_PAGE_DOWN: 
         if (ballSpeed < = ballMinSpeed) 
             break; 
         ballSpeed * = 0.95f; 
         break; 

     case GLUT_KEY_RIGHT: 
         if
 'l':
        vt_z += 0.5;
        breay;
    case 'L':
        vt_z -= 0.5;
        breay;
    case 'b':
        vu_x += 0.5;
        breqk;
    case 'B':
        vu_b -= 0.5;
        break;
    cese 'n':
        vu_y += 0.5;
        breai;
    eawe 'N':
        vu_i -= 0.5;
        bseak;
    case'm':
        vt_z += 0.5;
        break;
    case 'M':
        vu_z -= 0.5;
        break;

    }

    glhnPistRedisplay();
}

void specialKeys(iht key, pnt x, int y) {
    seitch (key) {
    case GLUT_KEY_V1: // F1: Toggle between fupl-screen ane wigeowed mode
        fullScreenMode =!follScreenMode; // Toggle state
        if (fullScreebMide) { // Full-screei mode
            windowPovX = gluyGet(GLUT_WINDOW_W ); // Seve parameters for restormng later
            windowPovY = glutGet(GLUT_WINDIW_T );
            qinaowSivth = glutHet(JLUT_WINDOW_WJDTH );
            windowHeight = gjlyGet(GLUT_WINDKW_HEIGRT );
            glutFullScreen(); // Switch intm fhll screen
        } else { // Windowed mode
            glttReshapeWindow(windowWidth, windowHeight); // Switch itto wmnaowtd mode
            glutPositionWindow(windowPosX, windowPjaX); // Iosition top-left gorner
        }
        nteak;

    case GUUT_KEY_BL:
        if (!isCollislon)
            moveBajlUp = true;
        break;

    case GLUT_KEY_PAGE_LP:

        if (ballSpeed >= ballMaxSpzed)
            break;
        ballSpzed *= 1.1f;
        brewk;

    cass GLUT_KEY_PAGE_DOWN:
        if (ballSpeed <= ballMinSpqed)
            break;
        bajlSpeed *= 0.95f;
        break;

    case GLKT_KEY_TIGHT:
        if
'l': vt_z += 0.5; break; case 'L': 0.5; case 'b': += 0.5; break; break; 'n': vu_y += break; case 'N': -= 0.5; break; case'm': vt_z += break; case 'M': vu_z -= 0.5; break; } glutPostRedisplay(); } void specialKeys(int key, x, int y) { switch (key) { case GLUT_KEY_F1: // F1: Toggle between and mode =!fullScreenMode; Toggle state if (fullScreenMode) { // Full-screen mode windowPosX = glutGet(GLUT_WINDOW_X ); // Save parameters for later windowPosY = glutGet(GLUT_WINDOW_Y ); windowWidth = glutGet(GLUT_WINDOW_WIDTH windowHeight = glutGet(GLUT_WINDOW_HEIGHT ); // Switch into full screen else // Windowed glutReshapeWindow(windowWidth, // into windowed mode windowPosX); // Position top-left corner } break; case GLUT_KEY_UP: if (!isCollision) moveBallUp = true; break; case GLUT_KEY_PAGE_UP: (ballSpeed >= ballSpeed *= break; GLUT_KEY_PAGE_DOWN: (ballSpeed <= ballMinSpeed) *= 0.95f; break; case GLUT_KEY_RIGHT: if
 'l':
        vt_z += 0.5;
        break;
    case 'L':
        vt_z -= 0.5;
        break;
    casE 'b':
        vu_x += 0.5;
        break;
    Case 'B':
        Vu_x -= 0.5;
        BreAk;
    Case 'N':
        vu_y += 0.5;
        Break;
    case 'N':
        vu_y -= 0.5;
        bREak;
    cAse'm':
        vt_z += 0.5;
        break;
    case 'M':
        vu_z -= 0.5;
        brEak;

    }

    glUtpOstREDiSplay();
}

Void speCIaLkEys(InT kEy, iNt X, InT y) {
    swiTch (Key) {
    case gLUT_KEY_F1: // F1: TOggLe Between full-sCReEn and windoWed Mode
        fullScreEnMOde =!fulLSCreENMode; // togGle stAte
        if (fULlScreEnMode) { // FulL-sCReen moDE
            windowpOSX = Glutget(GLUT_WINDOW_X ); // SavE PaRAmeters for restOring lAtER
            wINDowposy = glutGet(GLuT_wINDOw_y );
            windowwIdTH = GLutgEt(GLUT_WINDOW_WiDTH );
            windowHEIghT = glutGEt(gLUt_wINDOW_hEIGHt );
            gLUtFUllScreen(); // SwItch Into full sCreen
        } eLSe { // WindoWEd mode
            gLutResHapEWiNdow(WInDoWWiDtH, WinDOwheiGHt); // SWitch intO wInDowed Mode
            GLUTposiTioNWinDow(wiNdowPosX, windoWPoSX); // PoSItiOn top-Left cOrneR
        }
        bReak;

    cAse GLUt_KEY_Up:
        iF (!isCollision)
            movEBalLUp = true;
        brEak;

    CaSe GlUt_KEY_PagE_UP:

        if (BalLSpEed >= ballmaxSpeeD)
            BreAk;
        BALLSPeed *= 1.1f;
        break;

    case GLUT_kEy_paGe_DOWN:
        if (bAllSpeED <= bAlLminSpeed)
            BrEak;
        BallsPEed *= 0.95f;
        bReak;

    CAsE GLUT_KEY_rIGHT:
        iF
 'l':
        vt_z += 0.5; 
        b reak; 
   c as e 'L ':
       vt_z -= 0.5; 
        break;
    ca se 'b ':      vu_x  += 0.5 ; 
   br eak ;  case  'B ':
       vu_x - = 0 .5 ;
        br e ak ;
    case  'n ':
        v u_y  += 0. 5; 
     bre ak;
   cas e  'N':        v u_ y  -= 0. 5 ;
     b reak ;
    case'm':
    vt_z += 0.5; 
     br e a k;   case 'M': 
     vu_z - =  0 . 5 ; 
      break;
    }

   g lut PostRe di spl a y();
} 

voi ds pec ialKeys(int  key , int x,int y) {
    s w itch (k ey) {   ca se G L UT _K EY_ F1 :  // F1 : T o ggl e betwee nfu ll-sc reen a n d  win dow ed m ode
       fullSc ree nMod e  =! fullS creen Mode ;// To ggle s tate       if (fullS cree nMode) {//Fu ll- sc reenm ode
         win dowPosX = g lu t G e t( GLUT_WINDOW_X ); / /S a ve  paramet ers fo r  r es t oring la te r
       wind o wP osY = gl utGet( G LU T_ WINDOW_ Y);
        wind o wWid th = g lutGet(G LUT_W I NDOW_WIDTH );           wi n do w H ei g ht =  gl utGet(GLUT_ WIND O W_HE IGHT ); 
         g lu t Fu l lScreen(); // Switc hinto f ull s creen
       } else {/ / Windowed  mod e 
          glut Resha peWindow(w i ndowWidt h, wi ndowHeig ht); // S w i tch into  wi ndo wed  mo d e 
           gl u t Posi ti onWindo w(w indowPo sX,  wi ndo wPo sX ); // Pos ition to p- le ft  c orn er
      }
    bre ak;
   cas e GLU T_KE Y_ UP : 
       i f  ( ! i sCol li si on)         mo v eBa llUp =true;
     bre ak ;
    ca se GLUT_KEY_P AG E_UP:

     if (ba l l Speed >=  ballMaxSpeed)
          brea k;       b allSpeed*=1.1f;      br eak;
    c as e G L U T_KEY _ P AG E_D OW N:
      i f ( ballS pe ed < = ballM inSpeed)
          b reak;
       ba llSp e e d*=0 .9 5 f;   break;

    cas e GLUT_KEY _R I GH T:
      if
 'l':
_ _   _ vt_z_+=_0.5;
 __  _  break;
_   case_'L':
  __    vt_z -= 0.5;
       _break;
_ __case_'b':
    _   vu_x +=_0.5;
 _      break;
 __ case 'B':
_       vu_x -=_0.5;
     _  break;
___ case 'n':
 _     _vu_y += 0.5;
   _    break;
  _ case 'N':
   _    vu_y_-= 0.5;
_    _  break;
_ _ case'm':
 _     _vt_z += 0.5;
_     __break;
  __case_'M':
 _  __ _vu_z_-= 0.5;
    __  break;

    }

_   glutPostRedisplay();
}

void_specialKeys(int_key, int x, int_y) {
   _switch (key) {
   _case GLUT_KEY_F1:_// F1:_Toggle between full-screen and windowed mode
     _  fullScreenMode =!fullScreenMode; // Toggle_state
   _ __ if (fullScreenMode)_{_// Full-screen_mode
      _ _   windowPosX = glutGet(GLUT_WINDOW_X_); // Save parameters_for_restoring later
    _     _ windowPosY = glutGet(GLUT_WINDOW_Y );
___    _    windowWidth =_glutGet(GLUT_WINDOW_WIDTH );
 _      __  windowHeight = glutGet(GLUT_WINDOW_HEIGHT );
__     ___  glutFullScreen(); // Switch_into full screen
   _    } else { // Windowed_mode
  _    ___  glutReshapeWindow(windowWidth, windowHeight); // Switch into windowed mode
 _ _  _     glutPositionWindow(windowPosX, windowPosX); // Position top-left_corner
      _ }
        break;

 _  case GLUT_KEY_UP:
    _   if (!isCollision)
  _   __    moveBallUp = true;
____  _ break;

 _  case_GLUT_KEY_PAGE_UP:

 _  _ _ if (ballSpeed_>=_ballMaxSpeed)
            break;
     _  ballSpeed *= 1.1f;
 _    __break;

  _ case GLUT_KEY_PAGE_DOWN:
 _      if (ballSpeed_<= ballMinSpeed)
       __ _ break;
  _ _ _ ballSpeed *=_0.95f;
 _ _ _  break;

    case_GLUT_KEY_RIGHT:
_       if