เดเดฎเตเดเด
"เดฒเดฟเดจเดเตเดธเต เดเตเดฏเดฟเดฎเตเดเตพเดเตเดเตเดณเตเดณเดคเดฒเตเดฒ!" - เดเดพเดฒเดนเดฐเดฃเดชเตเดชเตเดเตเด เดเดฐเต เดตเดพเดเดเด: เดเดชเตเดชเตเตพ เด เด
เดคเตเดญเตเดคเดเดฐเดฎเดพเดฏ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเดพเดฏเดฟ เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เด
เดคเตเดญเตเดคเดเดฐเดฎเดพเดฏ เดเตเดฏเดฟเดฎเตเดเตพ เดเดฃเตเดเต. เดเดจเตเดจเดฟเดเตเดเตเด, เดเดฟเดฒเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เด
เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต ... เดเตเดเดพเดคเต เด เดชเตเดฐเดคเตเดฏเตเด เดเดพเดฐเตเดฏเด เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต.
เด เดเดฟเดธเตเดฅเดพเดจเด
เดเดพเตป เดฎเตเดดเตเดตเตป เดเตเดกเตเด เดเดพเดฃเดฟเดเตเดเตเดเดฏเตเด เดชเดฑเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเดฟเดฒเตเดฒ (เดเดคเต เดตเดณเดฐเต เดฐเดธเดเดฐเดฎเดฒเตเดฒ) - เดชเตเดฐเดงเดพเดจ เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดฎเดพเดคเตเดฐเด.
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()
, เดเดจเตเดจเดพเตฝ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเด เด
เดฑเต เดเดเตเดเตเดชเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เด
เดงเดฟเด เดฒเตเดชเตเดชเตเด เดเดชเดฏเตเดเดฟเดเตเดเต... เดตเดฟเดจเตเดฆเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดเดเตเดเตพ เดตเตเดฏเต เดซเตเตฝเดกเดฟเตฝ เดฎเดพเดคเตเดฐเด เดตเดฐเดฏเตเดเตเดเตเดจเตเดจเต (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