เจเจพเจฃ เจชเจเจพเจฃ
"เจฒเฉเจจเจเจธ เจเฉเจกเจพเจ เจฒเจ เจจเจนเฉเจ เจนเฉ!" - เจเฉฑเจ เจชเฉเจฐเจพเจฃเจพ เจตเจพเจเฉฐเจธเจผ: เจนเฉเจฃ เจเจพเจธ เจคเฉเจฐ 'เจคเฉ เจเจธ เจธเจผเจพเจจเจฆเจพเจฐ เจชเฉเจฐเจฃเจพเจฒเฉ เจฒเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจธเจผเจพเจจเจฆเจพเจฐ เจเฉเจกเจพเจ เจนเจจ. เจชเจฐ เจซเจฟเจฐ เจตเฉ, เจเจฆเฉ-เจเจฆเฉ เจคเฉเจธเฉเจ เจเฉเจ เจเจพเจธ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ เจเฉ เจคเฉเจนเจพเจกเฉ เจ
เจจเฉเจเฉเจฒ เจนเฉเจตเฉ... เจ
เจคเฉ เจฎเฉเจ เจเจธ เจตเจฟเจธเจผเฉเจธเจผ เจเฉเจเจผ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพเฅค
เจเจงเจพเจฐ
เจฎเฉเจ เจชเฉเจฐเจพ เจเฉเจก เจจเจนเฉเจ เจฆเจฟเจเจพเจตเจพเจเจเจพ เจ เจคเฉ เจจเจนเฉเจ เจฆเฉฑเจธเจพเจเจเจพ (เจเจน เจฌเจนเฉเจค เจฆเจฟเจฒเจเจธเจช เจจเจนเฉเจ เจนเฉ) - เจธเจฟเจฐเจซเจผ เจฎเฉเฉฑเจ เจจเฉเจเจคเฉเฅค
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