// ********* // * * // * * // * 9 * // * * // * * // * * // * * // ********* int iSizeFigure, iXPosition=1, iYPosition=1, iXPositionNumbers, iYPositionNumbers, iCounterOne=0, iCounterTwo=0, iPressKay, iSizeFigureMax=30, iSizeFigureMem, iSizeFigureMin=7; char cSymbolSpace=' ', cSymbulPerimeter='*'; bool bPicturedNumber=false, iRemoveGaps=false, bDrawing=true; std::cout<<"Moving figures UP key \"UP\""<<std::endl; std::cout<<"Moving figures DOWN key \"DOWN\""<<std::endl; std::cout<<"Moving figures LEFT key \"LEFT\""<<std::endl; std::cout<<"Moving figures RIGHT key \"RIGHT\""<<std::endl; std::cout<<"====================================="<<std::endl; std::cout<<"Moving number UP key \"Pg8\""<<std::endl; std::cout<<"Moving number DOWN key \"Pg2\""<<std::endl; std::cout<<"Moving number LEFT key \"Pg4\""<<std::endl; std::cout<<"Moving number RIGHT key \"Pg6\""<<std::endl; std::cout<<"====================================="<<std::endl; std::cout<<"The increase in figures \"+\""<<std::endl; std::cout<<"The decrease in figure \"-\""<<std::endl; std::cout<<"====================================="<<std::endl; std::cout<<"Enter the size of the figure, no more than "<<iSizeFigureMax<<" and no less "<<iSizeFigureMin<<std::endl; std::cin>>iSizeFigure; if(iSizeFigure>iSizeFigureMax || iSizeFigure<iSizeFigureMin) { while(iSizeFigure>iSizeFigureMax || iSizeFigure<iSizeFigureMin) { std::cout<<"Enter the size of the figure, no more than "<<iSizeFigureMax<<" and no less "<<iSizeFigureMin<<std::endl; std::cin>>iSizeFigure; } } iYPositionNumbers = iSizeFigure/2; iXPositionNumbers = iSizeFigure/2; iSizeFigureMem = iSizeFigure; while(1) { if(iSizeFigure>=10) { iCounterOne=1; } if(bDrawing) { if(iSizeFigure>=10) { iCounterOne=1; } else { iCounterOne=0; } system("cls"); for(int i=0;i<=iYPosition;++i)//position along the axis Y { std::cout<<std::endl; } for(int i=0;i<=iSizeFigure;++i)//Drawing screen { for(int j=0;j<=iXPosition;++j)//position along the axis X { std::cout<<' '; } if(i==0 || i==iSizeFigure)//Drawing the first and last row { for(int j=0;j<=iSizeFigure;++j) { std::cout<<cSymbulPerimeter; } } else //Edge and filling in figure { int iCounterTwo=0; std::cout<<cSymbulPerimeter; for(int j=0;j<=iSizeFigure-2;++j) { if(i == iYPositionNumbers)//Whether to draw a number in this series { if(j == iXPositionNumbers) { bPicturedNumber=true; } } if(bPicturedNumber) { std::cout<<iSizeFigure; bPicturedNumber = false; iRemoveGaps = true;//drew a numbers } else { if(iCounterOne>iCounterTwo && true==iRemoveGaps)//Removing extra spaces occupied by the numbers { ++iCounterTwo; if(iCounterOne==iCounterTwo) { iRemoveGaps=false; } continue; } std::cout<<cSymbolSpace; } } std::cout<<cSymbulPerimeter; } std::cout<<std::endl; } bDrawing=false; iRemoveGaps=false; } iPressKay=_getch(); switch(iPressKay) { case 224: break; case 72://UP Figure if(iYPosition!=0) { --iYPosition; bDrawing=true; } break; case 80://DUWN Figure if(iYPosition!=20) { ++iYPosition; bDrawing=true; } break; case 75://LEFT Figure if(iXPosition!=0) { --iXPosition; bDrawing=true; } break; case 77://RIGHT Figure if(iXPosition!=(77-iSizeFigure)) { ++iXPosition; bDrawing=true; } break; case 43://increase the size of the figure if(iSizeFigure!=iSizeFigureMax) { ++iSizeFigure; if(iXPosition==(77-iSizeFigure)) { --iXPosition; } bDrawing=true; } break; case 45://decrease the size of the figure if(iSizeFigure!=iSizeFigureMem) { --iSizeFigure; if(iXPositionNumbers==iSizeFigure-2) { --iXPositionNumbers; } if(iYPositionNumbers==iSizeFigure) { --iYPositionNumbers; } bDrawing=true; } break; case 56://UP Numbers if(iYPositionNumbers!=1) { --iYPositionNumbers; bDrawing=true; } break; case 50://DUWN Numbers if(iYPositionNumbers!=(iSizeFigure-1)) { ++iYPositionNumbers; bDrawing=true; } break; case 52://LEFT Numbers if(iXPositionNumbers!=0) { --iXPositionNumbers; bDrawing=true; } break; case 54://RIGHT Numbers if(iXPositionNumbers!=(iSizeFigure-3)) { ++iXPositionNumbers; bDrawing=true; } break; case 27: return 0; break; } }
Программа рисует фигуру, внутри размер, есть навигация клавишами.
Сообщений 1 страница 2 из 2
Поделиться106-03-2011 22:56:47
Поделиться214-07-2023 03:47:57
kbps251.4CHAPTREAJeebJuliChilPeteBarbAlanbertStamCollTurnTescFedeTescTescHjarRotoZoneMeis
CARDTescStouZyliPlatSENSRaffVaniBestReflNickClubSampGoodGlisPlanZewaPaleClauColgIdriElse
PantSchwCharPushRosaWantCotoBadaJohnELEGJohnGHIBLobsTerrOmsaCircClicCircSelahidigunmSamp
SyroMargVoguUFOrTangElegPatrJeffDiptSatiMiyoVentHaroGHOSZoneVentNatiCollASASZoneHowaZone
HappModoZoneRHZNErnsZoneJeffXVIIJeanVIIIZoneZoneZoneZoneGeorZoneZoneCassZoneAlanZoneZone
AstrZoneXVIIZonediamZoneWindAtmoDenoHolwSmarArdoSonyNickDaxtCantExtrFeelChicSaleDOUGMist
HEYNMitsVOLVKaieHandCoolPELOEditEducMarlHautGullWantWindWindLiveBOOMValeBorkCafeRoyaBook
RobeCastMoviWindKarlAgatChriSideMarcLandAloiParkKarlXVIIEtheDenideadLeonDeutRollSpanSimp
JoanValeComeLCACWindRobeBambCapaAndrVIIIStepEnglICNALloyPatsJameGoldInteAusrWeedDonaRoge
LewiAntoReadXVIIVIIIForeCheeDenoDenoDenoSkyeCounBirdECCOBravJeffDaviCarlGoldAlejArouGabr
tuchkasRuthYour