Miért rajzolódik ki ilyen lassan a fegyver? C++
# include <iostream>
# include <stdlib.h>
typedef unsigned short ushort;
using std::cout;
using std::cin;
using std::endl;
int main()
{
for(ushort x = 0; x < 6; x++)
{
for(ushort y = 0; y < 77; y++)
{
if((x==0 && y > 1 && y < 6) || (x == 1 && y <= 77) || (x == 2 && y <= 32) || (x == 2 && y >= 56) || (x == 3 && y > 1 && y < 6) || (x == 3 && y >= 32 && y <= 42) || (x == 3 && y >= 47 && y <= 50) || (x == 3 && y == 55) || (x == 3 && y >= 64) || (x == 4 && y == 43) || (x == 4 && y == 46) || (x == 4 && y >= 52 && y <= 54) || (x == 4 && y >= 70) || (x == 5 && y >= 44 && y <= 45))
{
system("color 0F");
cout <<"o";
}
else
{cout <<" ";}
}
cout << endl;
}
cin.get();
return 0;
}
Code Block-ot használok.
És amint lefuttatom nem egyből a fegyver jelenik meg hanem lassan kirajzolódik,de csak akkor ha megváltoztatom a system el a betű színét.
Miért lesz ettől ilyen lassú a megjelenítés?
Eléggé hardcore megjelenítés...
A sokmillió if helyett hasnzálhatnál konstans 2D-s tömböt, amibe raszteresen letárolod a képet 0-kal és 1-ekkel, majd ezen mész végig két ciklussal...
Azt hiszem ez ennek a megoldása:
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
Ezért (a feladat miatt) lett ilyen hardcore-os :)
Igazatok volt a system color a main függvény legelső sorába tettem így már jó.
Egyébként még nem tartok a tömböknél a tanulásban de már nagyon kiv... vagyok hogy mi lehet az.
jópofa alternatív megoldásként akkor egy tömörített verzió:
van egy darab int vektorod, amibe az írás-nemírás karakterek hosszát tárolod szekvenciálisan és sorfolytonosan. Mindig mikor új elemhez érsz a tömbbe megváltoztatod a "ceruza" állapotát és kiírsz annyi darab karaktert, ami a szám értéke, majd megfordítod a ceruza "értékét". Tehát ha eddig írt, akkor a vektor következő értékénél annyi "üres" karaktert írsz, amennyi az értéke.
Ja és ne feledd mindig 80 karakterig kiegészíteni a sorokat. tehát ez alapján az első két sor valahogy így néz ki:
164,5,73,57,1,19,3...
a 164 az első két sor üreset jelenti karakterrel a harmadik sor elején, majd az 5 karakterrel kirajzolod a tetejét, majd 73 karakter újabb semmi. az 53 karakter már a negyedik sor második karakterétől indul és az utána lévő 1 a kis lyukat jelzi, majd 19 karakterrel az azutánit rajzolod ki és vőgül újabb 3 karakter szünet (1 karakter az tus lekerekítése miatt, kettő a fegyver új sorának elején lévő hely miatt).
És így kb 32 int szám megadásával tömörítetten kirajzoltad a fegyvert és ez garantáltan k-gyors.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!