/** * Función para modificar los bits de un arreglo de caracteres de acuerdo a los parámetros recibidos * @param salida Es un arreglo de caracteres al cual se le van a modificar los bits * @param salidaLength El tamaño en bits del arreglo * @param pointer La posición a partir de la cual se comenzar a modificar los * @param c El caracter a codificar * @param frecuencias El arreglo de las frecuencias * @param length El tamaño del arreglo de frecuencias */ int escribeBits(char * salida, int salidaLength, long pointer, char c, Frecuencia * frecuencias, int length){ int bitsescritos; int indiceFrecuencia = buscaFrecuencia(frecuencias, 0, length, c); Frecuencia f = frecuencias[indiceFrecuencia]; for(bitsescritos = 0; f.codigo[bitsescritos] != '\0'; bitsescritos++) { if(f.codigo[bitsescritos] == '1') { pon1(salida,pointer + bitsescritos); } else if(f.codigo[bitsescritos] == '0') { pon0(salida,pointer + bitsescritos); } } return bitsescritos; }
void Result::showResultWin(int score){ int left = -320; int right = 320; int top = 240; int bot = -240; char strbuffer[64]; // W Point pow1(left+60,top-80); Point pow2(left+140+5,bot+220); Point pow3(left+180+5,bot+300); Point pow4(left+220+5,bot+220); Point pow5(left+300+10,top-80); Point pow6(left+260+5,top-80); Point pow7(left+220+5,top-160); Point pow8(left+180+5,top-80); Point pow9(left+140+5,top-160); Point pow10(left+100+5,top-80); Point powc((pow1.x+pow5.x)/2,(pow1.y+pow2.y)/2); vector<Point> pow; pow.push_back(pow1); pow.push_back(pow2); pow.push_back(pow3); pow.push_back(pow4); pow.push_back(pow5); pow.push_back(pow6); pow.push_back(pow7); pow.push_back(pow8); pow.push_back(pow9); pow.push_back(pow10); if (firsttime){ pol_w.setCorner(pow); pol_w.setCenter(powc); Transform scale = createScale(0.1, 0.1); pol_w.applyTransform(scale); } // I Point poi1(left+340,top-80); Point poi2(left+340,bot+220); Point poi3(left+390,bot+220); Point poi4(left+390,top-80); Point poic((poi1.x+poi3.x)/2,(poi1.y+poi3.y)/2); vector<Point> poi; poi.push_back(poi1); poi.push_back(poi2); poi.push_back(poi3); poi.push_back(poi4); if (firsttime){ pol_i.setCorner(poi); pol_i.setCenter(poic); Transform scale = createScale(0.1, 0.1); pol_i.applyTransform(scale); } // N Point pon1(left+420,top-80); Point pon2(left+420,bot+220); Point pon3(left+470,bot+220); Point pon4(left+470,top-170); Point pon5(left+530,bot+220); Point pon6(left+580,bot+220); Point pon7(left+580,top-80); Point pon8(left+530,top-80); Point pon9(left+530,bot+310); Point pon10(left+470,top-80); Point ponc((pon1.x+pon6.x)/2,(pon1.y+pon6.y)/2); vector<Point> pon; pon.push_back(pon1); pon.push_back(pon2); pon.push_back(pon3); pon.push_back(pon4); pon.push_back(pon5); pon.push_back(pon6); pon.push_back(pon7); pon.push_back(pon8); pon.push_back(pon9); pon.push_back(pon10); if (firsttime){ pol_n.setCorner(pon); pol_n.setCenter(ponc); Transform scale = createScale(0.1, 0.1); pol_n.applyTransform(scale); } // Other Point pot1(left+60, top-40); Point pot2(right-60, top-40); Point pot3(right-60, top-60); Point pot4(left+60, top-60); Point potc((pot1.x+pot2.x)/2,(pot2.x+pot3.x)/2); vector<Point> pot; pot.push_back(pot1); pot.push_back(pot2); pot.push_back(pot3); pot.push_back(pot4); if (firsttime){ pol_pot1.setCorner(pot); pol_pot1.setCenter(potc); Transform scale = createScale(0.1, 0.1); pol_pot1.applyTransform(scale); } pot1.set(left+60, bot+180); pot2.set(right-60, bot+180); pot3.set(right-60, bot+200); pot4.set(left+60, bot+200); potc.set((pot1.x+pot2.x)/2,(pot2.x+pot3.x)/2); pot.clear(); pot.push_back(pot1); pot.push_back(pot2); pot.push_back(pot3); pot.push_back(pot4); if (firsttime){ pol_pot2.setCorner(pot); pol_pot2.setCenter(potc); Transform scale = createScale(0.1, 0.1); pol_pot2.applyTransform(scale); } resultframe++; if (resultframe >= 25) resultframe = 25; else { Transform scale = createScale(1.1, 1.1); pol_pot1.applyTransform(scale); pol_pot2.applyTransform(scale); pol_w.applyTransform(scale); pol_i.applyTransform(scale); pol_n.applyTransform(scale); } pol_w.draw(WHITE); fill_polygon(pol_w[0].x, pol_w[3].y, pol_w[4].x, pol_w[0].y,WHITE,WHITE); pol_i.draw(WHITE); fill_polygon(pol_i[0].x, pol_i[2].y, pol_i[2].x, pol_i[0].y,WHITE,WHITE); pol_n.draw(WHITE); fill_polygon(pol_n[0].x, pol_n[5].y, pol_n[5].x, pol_n[0].y,WHITE,WHITE); pol_pot1.draw(WHITE); pol_pot2.draw(WHITE); settextstyle(7,0,40); setcolor(WHITE); sprintf(strbuffer,"%d",score); outtextxy(getmaxx()/2-50, getmaxy()/2+100, strbuffer); firsttime = false; }