
เชชเชฐเชฟเชเชฏ
"เชฒเชฟเชจเชเซเชธ เชเซเชฎเชฟเชเช เชฎเชพเชเซ เชจเชฅเซ!" เช เชเช เชเซเชจเซ เชตเชพเชเซเชฏ เชเซ: เชนเชตเซ เช เช
เชฆเซเชญเซเชค เชธเชฟเชธเซเชเชฎ เชฎเชพเชเซ เชเชพเชธ เชฐเชเชพเชฏเซเชฒ เชเชฃเซ เช
เชฆเซเชญเซเชค เชฐเชฎเชคเซ เชเซ. เชชเชฐเชเชคเซ เชเซเชฏเชพเชฐเซเช, เชคเชฎเชจเซ เชเชเชเช เชเชพเชธ เชเซเชเช เชเซ, เชเชเชเช เชเชตเซเช เชเซ เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ เชฏเซเชเซเชฏ เชนเซเชฏ... เช
เชจเซ เชฎเซเช เชคเซ เชเชเชเช เชเชพเชธ เชฌเชจเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช.
เชเชงเชพเชฐ
เชนเซเช เชคเชฎเชจเซ เชฌเชงเซ เชเซเชก เชฌเชคเชพเชตเซเชถ เชจเชนเซเช เช เชจเซ เชเชนเซเชถ เชจเชนเซเช (เชคเซ เชฌเชนเซ เชฐเชธเชชเซเชฐเชฆ เชจเชฅเซ) - เชซเชเซเชค เชฎเซเชเซเชฏ เชฎเซเชฆเซเชฆเชพเช.
เซง.เชชเชพเชคเซเชฐ
เชฌเชงเชพ เชชเชพเชคเซเชฐ เชชเชฐเชฟเชฎเชพเชฃเซ (เชธเซเชตเชพเชธเซเชฅเซเชฏ, เชฌเชเซเชคเชฐ, เช เชจเซเชญเชต, เชตเชเซเชฐเซ) เช เชนเซเช เชธเซเชเชฟเชฌเชฆเซเชง เชเซ. เชฐเชธเชชเซเชฐเชฆ เชฌเชพเชฌเชค เช เชเซ เชเซ เชเชคเชฟเชจเซเช เชเชฟเชคเซเชฐ เช เชจเซ เชฆเชฟเชถเชพ (เชเซ เชนเชพเชฒเชฎเชพเช เชเซเชฐเชนเชพเชเชฐ เชเซ).
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");
เชซเชซ! เชเช เชเชเชพ เชคเซเชฏเชพเชฐ!
เซฉ. เชเชชเชฃเซ เชเชธเชชเชพเชธเชจเซ เชฆเซเชจเชฟเชฏเชพ
เช
เชนเซเช เชเชชเชฃเซ เชตเชฟเชถเซเชตเชจเชพ x, y เชเซเชเชกเชพเช เช
เชจเซ เชคเซ เชเซเชเชกเชพเช เชฎเชพเชเซ เชเชฐเซ เชฌเชจเชพเชตเซเช เชเซเช. (char o[N]), เชฐเชพเชเซเชทเชธเซ เช
เชจเซ เชฌเซเชจเชธ เชฎเชพเชเซ เชธเชฎเชพเชจ.
เชเช เชซเชเชเซเชถเชจ เชฌเชจเชพเชตเซ world(int objx[N] .... objy[N] ... obj[N], ... objcolor[N]) เชธเชพเชฅเซ เชธเชพเชฎเซเชฏเชคเชพ เชฆเซเชตเชพเชฐเชพ hero(), เชชเชฐเชเชคเซ เชชเชฐเชฟเชฎเชพเชฃเซ เช
เชจเซ เชเชฐเซ เชเชเชเชชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชงเชพเชฐเชพเชจเชพ เชฒเซเชช เชธเชพเชฅเซ... เชฎเชจเซเชฐเชเชเชจ เชฎเชพเชเซ, เช
เชฎเซ เชซเชเซเชค เชฆเซเชถเซเชฏ เชเซเชทเซเชคเซเชฐเชฎเชพเช เชฆเซเชฐเซเช เชเซเช (vis) (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
