เชชเชฐเชฟเชเชฏ
"เชฒเชฟเชจเชเซเชธ เชฐเชฎเชคเซ เชฎเชพเชเซ เชจเชฅเซ!" - เชเช เชเซเชจเซ เชตเชพเชเซเชฏ: เชนเชตเซ เช เช
เชฆเซเชญเซเชค เชธเชฟเชธเซเชเชฎ เชฎเชพเชเซ เชเชพเชธ เชเชฐเซเชจเซ เชเชฃเซ เช
เชฆเซเชญเซเชค เชฐเชฎเชคเซ เชเซ. เชชเชฐเชเชคเซ เชคเซเชฎ เชเชคเชพเช, เชเซเชเชฒเซเชเชตเชพเชฐ เชคเชฎเชจเซ เชเชเชเช เชตเชฟเชถเซเชท เชเซเชเช เชเซ เชเซ เชคเชฎเชจเซ เช
เชจเซเชเซเชณ เชเชตเซ... เช
เชจเซ เชฎเซเช เช เชตเชฟเชถเซเชท เชตเชธเซเชคเซ เชฌเชจเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช.
เชเชงเชพเชฐ
เชนเซเช เชเชเซ เชเซเชก เชฌเชคเชพเชตเซเชถ เชจเชนเซเช เช เชจเซ เชเชนเซเชถ เชจเชนเซเช (เชคเซ เชเซเชฌ เช เชฐเชธเชชเซเชฐเชฆ เชจเชฅเซ) - เชซเชเซเชค เชฎเซเชเซเชฏ เชฎเซเชฆเซเชฆเชพเช.
1.เชชเชพเชคเซเชฐ
เชฌเชงเชพ เช เชเซเชทเชฐ เชชเชฐเชฟเชฎเชพเชฃเซ เช เชนเซเช เชธเซเชเชฟเชฌเชฆเซเชง เชเซ (เชธเซเชตเชพเชธเซเชฅเซเชฏ, เชฌเชเซเชคเชฐ, เช เชจเซเชญเชต, เชตเชเซเชฐเซ.) เชฐเซเชเชฟเชจเซเช เชเชฟเชคเซเชฐ เช เชจเซ เชเชณเชตเชณเชจเซ เชฆเชฟเชถเชพ เชเซ (เชเซ เชนเชพเชฒเชฎเชพเช เชเชชเชฒเชฌเซเชง เชจเชฅเซ).
int x = 5, y = 5;
hp = 100,
maxhp = 100,
dm = 20,
armor = 0,
xp = 0,
level = 0,
diff = 10, // ัะปะพะถะฝะพััั
pos = 0; // ะฝะฐะฟัะฐะฒะปะตะฝะธะต
bool reg = 0,
Mdm = 0, // ะฑะพะฝััั
ght = 0;
string color; // ัะฒะตั ะฑัะดะตั ะธัะฟะพะปัะทะพะฒะฐะฝ ะฒ ะบะฐัะตััะฒะต ะธะฝะดะธะบะฐัะพัะฐ ัะพััะฐัะฝะธั ะณะตัะพั
void hero() // ะทะดะตัั ะฟัะพะธัั
ะพะดะธั ะฟะตัะตะผะตัะตะฝะธะต ะณะตัะพั ะฝะฐ ะบะพะพัะดะธะฝะฐัั (x ; y)
{
cout << "e[u " << "e[0;0H"; // ะฒะพัััะฐะฝะพะฒะปะตะฝะธะต ะฟะพะทะธัะธะธ ะบัััะพัะฐ, ะทะฐัะธัะฐะฝะธะต ะฟัะพะฑะตะปะพะผ
for (int i = 0; i <= x; i++)
cout << RIGHT; // ะผะฐะบัะพั "e[1C"
for (int i = 0; i <= y; i++)
cout << DOWN; // ะผะฐะบัะพั "e[1B"
cout << "e[s" << color << "โฌ"; // ัะพั
ัะฐะฝะตะฝะธะต ะฟะพะทะธัะธะธ ะบัััะพัะฐ
}
2.เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ
เช เชเซเชทเชฐเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชธเซเชกเชตเซเช เชคเซ เชชเชนเซเชฒเซเชฅเซ เช เชธเซเชชเชทเซเช เชเซ (xโ++, yโ++). เชชเชฐเชเชคเซ เชเซเชฌเซเชฐเซเชก เชชเซเชฐเซเชธเซเชธเชฟเชเช เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เชเซ:
char key;
char getkey()
{
system("stty raw");
key = getchar();
system("stty cooked");
return key;
}
เชเซ เชฌเชพเชเซ เชเซ เชคเซ "เชจเชฟเชฏเชเชคเซเชฐเชฃ เช เชเซเชทเชฐเซ" เชธเซเช เชเชฐเชตเชพเชจเซเช เชเซ. เชคเชฎเซ เชธเซเชตเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซ เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชฎเชจเซ เชคเซ เชจเชซเชฐเชค เชเซ.
switch(...) case .. : ... ; break
เชเชจเชพ เชเซเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช
#define KEY if (key ==
#define I ){
#define J ;}else
void keys()
{
getkey();
KEY 'a' I x-- ; pos = 1 J
KEY......
}
เชธเซเชเชฆเชฐเชคเชพ! เชฒเซเชช เชซเชเชเซเชถเชจเซเชธ เช เชจเซ เชธเซเชเซเชฐเซเชจเชจเซ เชเชธเชชเชพเชธ เชเชฒเชพเชตเซ! เชชเชฐเชเชคเซ เชเซเชเช เชฐเซเชคเซ เชคเซ เชฅเซเชกเซเช เชเช เซเชฐ เชเซ... เช เชจเซ เชเชฐเซเชธเชฐ เชเชฎเชเซ เชเซ, เช เชจเซ เช เชเซเชทเชฐเซ... เช เชฎเซ เชคเซเชจเซ เช เซเช เชเชฐเซเชถเซเช!
//ะะพ ัะธะบะปะฐ
cout << "e[?25l"; //ะพัะบะปััะฐะตะผ ะพัะพะฑัะฐะถะตะฝะธะต ะบัััะพัะฐ
system("stty -echo"); //ะพัะบะปััะฐะตะผ ัั
ะพ-ะฒะฒะพะด
system("xset r rate 120 10"); // ะธะทะผะตะฝัะตะผ ะทะฐะดะตัะถะบั ะฝะฐ ะฑะพะปะตะต ะฟะปะฐะฒะฝัั
//ะะพัะปะต ัะธะบะปะฐ
//-------Return_normal_system_settings--------
cout << "e[00m";
system("reset");
system("xset r rate 200 20");
เชตเชพเชน! เชเช เชเชเชพ เชคเซเชฏเชพเชฐ เชเซ!
3. เชเชชเชฃเซ เชเชธเชชเชพเชธเชจเซ เชฆเซเชจเชฟเชฏเชพ
เช
เชนเซเช เชเชชเชฃเซ เชตเชฟเชถเซเชตเชจเชพ x, y เชเซเชเชกเชพเช เช
เชจเซ เชชเซเชคเชพเชจเชพ เชเซเชเชกเชพเช เชฎเชพเชเซ เชเชฐเซ เชฌเชจเชพเชตเซเช เชเซเช (char o[N])
, เชฐเชพเชเซเชทเชธเซ เช
เชจเซ เชฌเซเชจเชธ เชฎเชพเชเซ เชธเชฎเชพเชจ.
เชเช เชเชพเชฐเซเชฏ เชฌเชจเชพเชตเซ world(int objx[N] .... objy[N] ... obj[N], ... objcolor[N])
เชธเชพเชฅเซ เชธเชพเชฎเซเชฏเชคเชพ เชฆเซเชตเชพเชฐเชพ hero()
, เชชเชฐเชเชคเซ เชชเซเชฐเชพเชฎเซเชเชฐเซเชธ เช
เชจเซ เชเชฐเซเชจเซ เชเชเชเชชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชงเชพเชฐเชพเชจเชพ เชฒเซเชช เชธเชพเชฅเซ... เชเชจเชเชฆ เชฎเชพเชเซ, เช
เชฎเซ เชซเชเซเชค เชฆเซเชถเซเชฏเชจเชพ เชเซเชทเซเชคเซเชฐเชฎเชพเช เชฆเซเชฐเซเช เชเซเช (เชตเชฟเช) (if (ox[k] < vis && oy[k]....))
เชนเชตเซ เชเชชเชฃเซ เชเชฐเชกเชพเช เช
เชจเซ เชฎเชพเชฐเซเชเซ เชฎเชพเชเซ เชธเชฐเชณ เช
เชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชค เชฐเซเชคเซ เชนเซเชฒเซ เชเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฟเชถเซเชตเชจเชพ เชเชฃเซเชฅเซ เชธเซเชเซเชฐเซเชจ เชญเชฐเซเช เชเซเช, เชคเซ เช เชธเชฎเชฏเซ เชเชชเชฃเซ เชฆเซเชถเซเชฎเชจเซ เช
เชจเซ เชตเชธเซเชคเซเช เชฆเชพเชเชฒ เชเชฐเซเช เชเซเช, เชธเชเชชเซเชฐเซเชฃ เช
เชตเซเชฏเชตเชธเซเชฅเชฟเชคเชคเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชญเซเชฒเซ เชเชคเชพ เชจเชฅเซ. srand(time(NULL));
//------------------GENERATION---------------
void rooms()
{
for (int i = 0; i <= 50; i++)
{
px[i] = rand() % 115 + 2;
py[i] = rand() % 34 + 2;
pl[i] = rand() % 5 + 5;
ph[i] = rand() % 5 + 5;
if (px[i] + pl[i] > 117) px[i] = 50 - pl[i] / 2; else
if (px[i] < 2) px[i] = 50 - pl[i] / 2; else
if (py[i] < 1) py[i] = 15 - ph[i] / 2; else
if (py[i] + ph[i] > 37) py[i] = 15 - ph[i] / 2;
for (int j = 0; j <= i; j++)
{
while (px[i] > px[j] && px[i] < px[j] + pl[j])
(px[i]+pl[i]/2 >= 55) ? px[i]++ : px[i]-- ;
while (py[i] > py[j] && py[i] < py[j] + ph[j])
(py[i]+ph[i]/2 >= 18) ? py[i]++ : py[i]-- ;
while (px[i]+pl[i] > px[j] && px[i]+pl[i] < px[j] + pl[j])
(px[i]+pl[i]/2 >= 55) ? px[i]++ : px[i]-- ;
while (py[i]+ph[i] > py[j] && py[i]+ph[i] < py[j] + ph[j])
(py[i]+ph[i]/2 >= 18) ? py[i]++ : py[i]-- ;
}
for (int j = 0; j <= i; j++)
{
while (px[j] + pl[j] >= 116) px[j]-- ;
while (px[j] < 2) px[j]++ ;
while (py[j] < 1) py[j]++ ;
while (py[j] + ph[j] >= 37) py[j]-- ;
}
tx[i] = px[i]+10; ty[i] = py[i]-3;
if (i <= diff)
{
ex[i] = px[i];
ey[i] = py[i];
while (ex[i] < 10){ ex[i]++ ; epos[i] = 3 ;}
while (ey[i] < 10){ ey[i]++ ; epos[i] = 1 ;}
e[i] = evar[pl[i]];
ecolor[i] = "e[00me[31m";
edm[i] = edmvar[pl[i]];
ehp[i] = ehpvar[pl[i]];
exp[i] = expvar[pl[i]];
}
rect(px[i], py[i], pl[i], ph[i]);
}
}
void corrs()
{
int pc, px, py;
for (int i = 0; i <= 4; i++)
{
if (i < 2){
px = 3;
py = rand() % 33 + 3;
pc = 110;
line(px, py, pc, true);
line(px, py+1, pc, true);
} else {
px = rand() % 100 + 3;
py = 3;
pc = 33;
line(px, py, pc, false);
line(px+1, py, pc, false);
}
}
}
4. เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ
เชนเชตเซ เชเชชเชฃเซ เชเซเชเช เชฐเซเชคเซ เชฆเชฟเชตเชพเชฒเซ เช เชจเซ เชฐเชพเชเซเชทเชธเซเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชตเชพเชจเซเช เชเชพเชณเชตเชพเชจเซ เช เชจเซ เชตเชธเซเชคเซเชเชฎเชพเชเชฅเซ เชฌเซเชจเชธ เชฎเซเชณเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชฎเชพเชฐเชพ เชฎเชจเชชเชธเชเชฆ เชฎเชพเชเซ เช เชจเซ # เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเซ
#define TOUCH if (x == ox[i] && y == oy[i] && pos ==
#define HIT x == ex[i] && y == ey[i] && pos ==
for (int i = 0; i <= n; i++)
{
if (i <= diff)
{
if (Mdm) ehp[i]-=2 ; // ะตัะปะธ ะฑะพะฝัั "ะผะฐััะพะฒัะน ััะพะฝ" ะฒะบะปััะตะฝ
epos[i] = 0;
if (ex[i] < x+5 && ex[i] > x-5 &&
ey[i] < y+5 && ey[i] > y-5 )
{
edel(i); // ััะฝะบัะธั ะฟะตัะตะฟะธััะฒะฐััะฐั ะฟัะตะดัะดััะตะต ะฟะพะปะพะถะตะฝะธะต ะฟัะพัะธะฒะฝะธะบะฐ
if (ex[i] < x I ex[i]++ ; epos[i] = 1 J
if (ex[i] > x I ex[i]-- ; epos[i] = 2 J
if (ey[i] < y I ey[i]++ ; epos[i] = 3 J
if (ey[i] > y I ey[i]-- ; epos[i] = 4 ;}
}
for (int j = 0; j <= n; j++) // ััะพะปะบะฝะพะฒะตะฝะธะต ะผะพะฑะฐ ัะพ ััะตะฝะบะฐะผะธ
while (ex[i] == ox[j] && ey[i] == oy[j] || ex[i] == ex[j] && ey[i] == ey[j] && j != i)
{
if (epos[i] == 1) ex[i]-- ; else
if (epos[i] == 2) ex[i]++ ; else
if (epos[i] == 3) ey[i]-- ; else
if (epos[i] == 4) ey[i]++ ;
}
if (x == ex[i] && y == ey[i]) // "ะฑะธัะฒะฐ"
{
if (ehp[i] > 1)
{
ehp[i] -= dm;
(edm[i] < armor) ?
hp -= 0 :
hp -= edm[i]-armor;
} else {
ex[i] = ey[i] = -1;
xp += exp[i];
ehp[i] = 12;
}
}
if (!ght) // ะตัะปะธ ะฝะต ะฟัะธะทัะฐะบ ะฟัะพะฒะตัััั ััะพะปะบะฝะพะฒะตะฝะธะต ะธะณัะพะบะฐ ั ะฒัะฐะณะฐะผะธ
{
if (HIT 1) y++ ;else
if (HIT 2) x-- ;else
if (HIT 3) y-- ;else
if (HIT 4) x++ ;
}
}
if (!ght) // ัะพ ะถะต, ะฝะพ ัะพ ััะตะฝะฐะผะธ
{
TOUCH 1 I y++ J
TOUCH 2 I x-- J
TOUCH 3 I y-- J
TOUCH 4 ) x++ ;
}
}
5.เชฎเซเชจเซ
เช เชฎเซ เชซเชเซเชค เชฎเซเชจเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซเช เชเซเช, เชตเชธเซเชคเซเชเชจเซ เชจเชเชฌเชฐ เชเชชเซเช เชเซเช เช เชจเซ เชเซเชฒเชพเชกเซเชจเซ เชชเชธเชเชฆเชเซ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เชฎเชพเชเซ getkey() เชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เช เชฎเซ เชเซเชฐเซเชเซเชเชฐเชจเซ เชธเซเชเซเชเชธ เชฌเชพเชฐ เชฒเชเซเช เชเซเช, เชฒเซเชตเชฒเชฟเชเช เชฎเซเชจเซเชจเซ เช เชฎเชฒ เชเชฐเซเช เชเซเช, เชฌเซเชเชธเซเชเซเชฐเซ เชฒเชเซเช เชเซเช เช เชจเซ เช เชฎเซ เชคเซเชจเซ "เชธเชฌเชธเซเชเชฒ" เชคเชฐเซเชเซ เชเชณเชเซเช เชเซเช.
เชจเชฟเชทเซเชเชฐเซเชท
เช เชเชเชเช เชเชตเซเช เชเซ. เชคเชฎเซ เชคเซเชจเซ เชฐเชฎเซ เชถเชเซ เชเซ
$ sudo chmod +x Subsoil-1.0/Subsoil
$ Subsoil-1.0/Subsoil
, เช เชฅเชตเชพ, เช เชเชคเซ เชชเซเชฐเซเชฐเชฟเชค, เชคเชฎเชพเชฐเซ เชเชพเชคเชจเซ เชคเชฎเชพเชฐเซ เชชเซเชคเชพเชจเซ เชชเชธเชเชฆเชจเซเช เชธเชพเชนเชธ เชฒเชเซ. เชนเซเช เชคเชฎเชจเซ เช เชเชพเชเชฅเซ เชเซเชคเชตเชฃเซ เชเชชเซเช เชเซเช: เชฎเชพเชฐเซ เชฐเชฎเชค เชธเชฐเชณ เชจเชฅเซ!
เชฒเชฟเชเชเซเชธ
เชธเซเชฐเซเชธ: www.habr.com