Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.51 KB | None | 0 0
  1. #include<iterator>
  2. #include<conio.h>
  3. #include<windows.h>
  4. #include<list>
  5. #include<bits/stdc++.h>
  6.  
  7. using namespace std;
  8.  
  9. long long n, m, a=1, b=1, t, a1, b1, mp_npc[100][100], m2, hp1 = 100, hp2 = 100, dg1 = 5, dg2 = 5;
  10. string name1, comand;
  11. char c, mp[100][100], tem, tem2, f1, f2;
  12. vector<char> bag1, bag2;
  13.  
  14. void setcur(int x, int y)
  15. {
  16. COORD coord;
  17. coord.X = x;
  18. coord.Y = y;
  19. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  20. }
  21. void hod(char c2){
  22. if (c2 == 'd'){
  23. if (mp[a][b+1] == ' '){
  24. mp[a][b+1] = char(2);
  25. mp[a][b] = ' ';
  26. b ++;
  27. }
  28. else if (mp[a][b+1] == char(3)){
  29. mp[a][b+1] = char(2);
  30. hp1 += 20;
  31. mp[a][b] = ' ';
  32. b ++;
  33. m2 ++;
  34. }
  35. else if (mp[a][b+1] != '#' && mp[a][b+1] != '0' && mp[a][b+1] != char(1)){
  36. bag1.push_back(mp[a][b+1]);
  37. mp[a][b+1] = char(2);
  38. mp[a][b] = ' ';
  39. b ++;
  40. }
  41. }
  42. if (c2 == 's'){
  43. if (mp[a+1][b] == ' '){
  44. mp[a+1][b] = char(2);
  45. mp[a][b] = ' ';
  46. a ++;
  47. }
  48. else if (mp[a+1][b] == char(3)){
  49. mp[a+1][b] = char(2);
  50. hp1 += 20;
  51. mp[a][b] = ' ';
  52. a ++;
  53. m2 ++;
  54. }
  55. else if (mp[a+1][b] != '#' && mp[a+1][b] != '0' && mp[a+1][b] != char(1)){
  56. bag1.push_back(mp[a+1][b]);
  57. mp[a+1][b] = char(2);
  58. mp[a][b] = ' ';
  59. a ++;
  60. }
  61. }
  62. if (c2 == 'a'){
  63. if (mp[a][b-1] == ' '){
  64. mp[a][b-1] = char(2);
  65. mp[a][b] = ' ';
  66. b --;
  67. }
  68. else if (mp[a][b-1] == char(3)){
  69. mp[a][b-1] = char(2);
  70. mp[a][b] = ' ';
  71. hp1 += 20;
  72. b --;
  73. m2 ++;
  74. }
  75. else if (mp[a][b-1] != '#' && mp[a][b-1] != '0' && mp[a][b-1] != char(1)){
  76. bag1.push_back(mp[a][b-1]);
  77. mp[a][b-1] = char(2);
  78. mp[a][b] = ' ';
  79. b --;
  80. }
  81. }
  82. if (c2 == 'w'){
  83. if (mp[a-1][b] == ' '){
  84. mp[a-1][b] = char(2);
  85. mp[a][b] = ' ';
  86. a --;
  87. }
  88. else if (mp[a-1][b] == char(3)){
  89. mp[a-1][b] = char(2);
  90. mp[a][b] = ' ';
  91. a --;
  92. hp1 += 20;
  93. m2 ++;
  94. }
  95. else if (mp[a-1][b] != '#' && mp[a-1][b] != '0' && mp[a-1][b] != char(1)){
  96. bag1.push_back(mp[a-1][b]);
  97. mp[a-1][b] = char(2);
  98. mp[a][b] = ' ';
  99. a --;
  100. }
  101. }
  102. int l=0;
  103. if (mp[a][b-1] == '#'){
  104. l ++;
  105. }
  106. if (mp[a][b+1] == '#'){
  107. l ++;
  108. }
  109. if (mp[a-1][b] == '#'){
  110. l ++;
  111. }
  112. if (mp[a+1][b] == '#'){
  113. l ++;
  114. }
  115. if (l == 3){
  116. mp[a][b-1] = '#';
  117. mp[a][b+1] = '#';
  118. mp[a-1][b] = '#';
  119. mp[a+1][b] = '#';
  120. }
  121. return ;
  122. }
  123. void fire1(char c2){
  124. if (c2 == 'w' || c2 == 'd' || c2 == 's' || c2 == 'a'){
  125. f1 = c2;
  126. }
  127. if (c2 == 'e'){
  128. if (f1 == 'w'){
  129. mp[a-1][b] = '*';
  130. for (int i = a-1; i > 1; i --){
  131.  
  132. if (mp[i-1][b] == ' '){
  133. mp[i][b] = ' ';
  134. mp[i-1][b] = '*';
  135. }
  136. if (mp[i-1][b] == '#'){
  137. mp[i][b] = ' ';
  138. mp[i-1][b] = ' ';
  139. break;
  140. }
  141. if (mp[i-1][b] == char(1)){
  142. mp[i][b] = ' ';
  143. hp2 -= 20;
  144. break;
  145. }
  146. if (mp[i-1][b] == '0'){
  147. mp[i][b] = ' ';
  148. break;
  149. }
  150. }
  151. }
  152. if (f1 == 'd'){
  153. mp[a][b+1] = '*';
  154. for (int i = b+1; i < m-2; i ++){
  155.  
  156. if (mp[a][i+1] == ' '){
  157. mp[a][i] = ' ';
  158. mp[a][i+1] = '*';
  159. }
  160. if (mp[a][i+1] == '#'){
  161. mp[a][i] = ' ';
  162. mp[a][i+1] = ' ';
  163. break;
  164. }
  165. if (mp[a][i+1] == char(1)){
  166. mp[a][i] = ' ';
  167. hp2 -= 20;
  168. break;
  169. }
  170. if (mp[a][i+1] == '0'){
  171. mp[a][i] = ' ';
  172. break;
  173. }
  174. }
  175. }
  176. if (f1 == 'a'){
  177. mp[a][b-1] = '*';
  178. for (int i = b-1; i > 1; i --){
  179.  
  180. if (mp[a][i-1] == ' '){
  181. mp[a][i] = ' ';
  182. mp[a][i-1] = '*';
  183. }
  184. if (mp[a][i-1] == '#'){
  185. mp[a][i] = ' ';
  186. mp[a][i-1] = ' ';
  187. break;
  188. }
  189. if (mp[a][i-1] == char(1)){
  190. mp[a][i] = ' ';
  191. hp2 -= 20;
  192. break;
  193. }
  194. if (mp[a][i-1] == '0'){
  195. mp[a][i] = ' ';
  196. break;
  197. }
  198. }
  199. }
  200. if (f1 == 's'){
  201. mp[a+1][b] = '*';
  202. for (int i = a+1; i < n-2; i ++){
  203.  
  204. if (mp[i+1][b] == ' '){
  205. mp[i][b] = ' ';
  206. mp[i+1][b] = '*';
  207. }
  208. if (mp[i+1][b] == '#'){
  209. mp[i][b] = ' ';
  210. mp[i+1][b] = ' ';
  211. break;
  212. }
  213. if (mp[i+1][b] == char(1)){
  214. mp[i][b] = ' ';
  215. hp2 -= 20;
  216. break;
  217. }
  218. if (mp[i+1][b] == '0'){
  219. mp[i][b] = ' ';
  220. break;
  221. }
  222. }
  223. }
  224. }
  225. }
  226. void op_bag2(){
  227. if (isdigit(c)){
  228. int i = c - '0' - 1;
  229. tem2 = bag2[i];
  230. bag2.erase(bag2.begin()+i,bag2.begin()+i+1);
  231. }
  232. if (c == 'i' && mp[a1-1][b1] == ' '){
  233. mp[a1-1][b1] = tem2;
  234. tem2 = ' ';
  235. }
  236. if (c == 'j' && mp[a1][b1-1] == ' '){
  237. mp[a1][b1-1] = tem2;
  238. tem2 = ' ';
  239. }
  240. if (c == 'k' && mp[a1+1][b1] == ' '){
  241. mp[a1+1][b1] = tem2;
  242. tem2 = ' ';
  243. }
  244. if (c == 'l' && mp[a1][b1+1] == ' '){
  245. mp[a1][b1+1] = tem2;
  246. tem2 = ' ';
  247. }
  248. }
  249. void hod2(char c2){
  250. if (c2 == 'h'){
  251. if (mp[a1][b1+1] == ' '){
  252. mp[a1][b1+1] = char(1);
  253. mp[a1][b1] = ' ';
  254. b1 ++;
  255. }
  256. else if (mp[a1][b1+1] == char(3)){
  257. hp2 += 20;
  258. mp[a1][b1+1] = char(1);
  259. mp[a1][b1] = ' ';
  260. b1 ++;
  261. }
  262. else if (mp[a1][b1+1] != '#' && mp[a1][b1+1] != '0' && mp[a1][b1+1] != char(2)){
  263. bag2.push_back(mp[a1][b1+1]);
  264. mp[a1][b1+1] = char(1);
  265. mp[a1][b1] = ' ';
  266. b1 ++;
  267. }
  268. }
  269. if (c2 == 'g'){
  270. if (mp[a1+1][b1] == ' '){
  271. mp[a1+1][b1] = char(1);
  272. mp[a1][b1] = ' ';
  273. a1 ++;
  274. }
  275. else if (mp[a1+1][b1] == char(3)){
  276. hp2 += 20;
  277. mp[a1+1][b1] = char(1);
  278. mp[a1][b1] = ' ';
  279. a1 ++;
  280. }
  281. else if (mp[a1+1][b1] != '#' && mp[a1+1][b1] != '0' && mp[a1+1][b1] != char(2)){
  282. bag2.push_back(mp[a1+1][b1]);
  283. mp[a1+1][b1] = char(1);
  284. mp[a1][b1] = ' ';
  285. a1 ++;
  286. }
  287. }
  288. if (c2 == 'f'){
  289. if (mp[a1][b1-1] == ' '){
  290. mp[a1][b1-1] = char(1);
  291. mp[a1][b1] = ' ';
  292. b1 --;
  293. }
  294. else if (mp[a1][b1-1] == char(3)){
  295. hp2 += 20;
  296. mp[a1][b1-1] = char(1);
  297. mp[a1][b1] = ' ';
  298. b1 --;
  299. }
  300. else if (mp[a1][b1-1] != '#' && mp[a1][b1-1] != '0' && mp[a1][b1-1] != char(2)){
  301. bag2.push_back(mp[a1][b1-1]);
  302. mp[a1][b1-1] = char(1);
  303. mp[a1][b1] = ' ';
  304. b1 --;
  305. }
  306. }
  307. if (c2 == 't'){
  308. if (mp[a1-1][b1] == ' '){
  309. mp[a1-1][b1] = char(1);
  310. mp[a1][b1] = ' ';
  311. a1 --;
  312. }
  313. else if (mp[a1-1][b1] == char(3)){
  314. mp[a1-1][b1] = char(1);
  315. mp[a1][b1] = ' ';
  316. hp2 += 20;
  317. a1 --;
  318. m2 ++;
  319. }
  320. else if (mp[a1-1][b1] != '#' && mp[a1-1][b1] != '0' && mp[a1-1][b1] != char(2)){
  321. bag2.push_back(mp[a1-1][b1]);
  322. mp[a1-1][b1] = char(1);
  323. mp[a1][b1] = ' ';
  324. a1 --;
  325. }
  326. }
  327. int l=0;
  328. if (mp[a1][b1-1] == '#'){
  329. l ++;
  330. }
  331. if (mp[a1][b1+1] == '#'){
  332. l ++;
  333. }
  334. if (mp[a1-1][b1] == '#'){
  335. l ++;
  336. }
  337. if (mp[a1+1][b1] == '#'){
  338. l ++;
  339. }
  340. if (l == 3){
  341. mp[a1][b1-1] = '#';
  342. mp[a1][b1+1] = '#';
  343. mp[a1-1][b1] = '#';
  344. mp[a1+1][b1] = '#';
  345. }
  346. return ;
  347. }
  348. void inator(int i){
  349. if (i == 8){
  350. cout << " dg first player = " << dg1;
  351. }
  352. if (i == 9){
  353. cout << " dg second player = " << dg2;
  354. }
  355. if (i == 10){
  356. cout << " hp first player = " << hp1;
  357. }
  358. if (i == 11){
  359. cout << " hp second player = " << hp2;
  360. }
  361. if (i == 12){
  362. cout << " bag one ";
  363. for (int k=0; k < bag1.size(); k ++){
  364. cout << bag1[k] << " ";
  365. }
  366. }
  367. if (i == 13){
  368. cout << " bag two ";
  369. for (int k=0; k < bag2.size(); k ++){
  370. cout << bag2[k] << " ";
  371. }
  372. }
  373. }
  374. void op_bag(){
  375. if (isdigit(c)){
  376. int i = c - '0' - 1;
  377. tem = bag1[i];
  378. bag1.erase(bag1.begin()+i,bag1.begin()+i+1);
  379. }
  380. if (c == 'i' && mp[a-1][b] == ' '){
  381. mp[a-1][b] = tem;
  382. tem = ' ';
  383. }
  384. if (c == 'j' && mp[a][b-1] == ' '){
  385. mp[a][b-1] = tem;
  386. tem = ' ';
  387. }
  388. if (c == 'k' && mp[a+1][b] == ' '){
  389. mp[a+1][b] = tem;
  390. tem = ' ';
  391. }
  392. if (c == 'l' && mp[a][b+1] == ' '){
  393. mp[a][b+1] = tem;
  394. tem = ' ';
  395. }
  396. }
  397. void system(){
  398. system("cls");
  399. cin >> comand;
  400. if (comand[0] == 'h' && comand[8] == '1'){
  401. hp1 = 100;
  402. }
  403. if (comand[0] == 'h' && comand[8] == '2'){
  404. hp2 = 100;
  405. }
  406. if (comand[0] == 'u' && comand[9] == '1'){
  407. dg1 = 50;
  408. }
  409. if (comand[0] == 'u' && comand[9] == '2'){
  410. dg2 = 50;
  411. }
  412. system("cls");
  413. return ;
  414. }
  415. void dv(){
  416.  
  417. for (int i=1; i < n-1; i ++){
  418. for (int j=0; j < m; j ++){
  419. if (mp[i-1][j] == char(3) && mp[i][j] != char(3)){
  420. mp[i][j] = '9';
  421. mp[i-1][j] = ' ';
  422. }
  423. }
  424. }
  425. for (int i=1; i < n-1; i ++){
  426. for (int j=0; j < m; j ++){
  427. if (mp[i][j] == '9'){
  428. mp[i][j] = char(3);
  429. }
  430. }
  431. }
  432.  
  433. }
  434. /*
  435. nado dokonchit
  436. void gen_map_npc(){
  437. for (int i=0; i < n; i ++){
  438. for (int j=0; j < m; j ++){
  439. if (i == 0 || j == 0 || i == n-1 || j == m-1){
  440. mp_npc[i][j] = -1;
  441. }else{
  442. mp_npc[i][j] = 0;
  443. }
  444. }
  445. }
  446. }
  447.  
  448. void npc_hod(){
  449. long long mn = 99999999999;
  450. long long temp, l, x = -1;
  451. for (int i=0; i < 2; i ++){
  452. if (mp_npc[a1,b1+x] != -1 && mp_npc[a1,b1+x] < mn){
  453. temp = x;
  454. l = 1;
  455. mn = mp_npc[a1,b1+x];
  456. }
  457. if (mp_npc[a1+x,b1] != -1 && mp_npc[a1+x,b1] < mn){
  458. temp = x;
  459. l = 2;
  460. mn = mp_npc[a1+x,b1];
  461. }
  462. x = 1;
  463. }
  464. if (l == 2){
  465. mp_npc[a1+temp,b1] ++;
  466. mp[a1+temp,b1] = char(2);
  467. mp[a1,b1] = ' ';
  468. a1 += temp;
  469. }
  470. if (l == 1){
  471. mp_npc[a1,b1+temp] ++;
  472. mp[a1,b1+temp] = char(2);
  473. mp[a1,b1] = ' ';
  474. b1 += temp;
  475. }
  476. }
  477.  
  478. bool bul(int a2, int b2){
  479. if ((a2 == n-1 && b2 == m-2) || (a2 == n-2 && b2 == m-1)){
  480. return false;
  481. }
  482. return true;
  483. }
  484. */
  485. void gen_map(){
  486. a1 = n-2, b1 = m-2;
  487. a = 1, b = 1;
  488. for (int i=0; i < n; i ++){
  489. for (int j=0; j < m; j ++){
  490. if (i == 0 || j == 0 || i == n-1 || j == m-1){
  491. mp[i][j] = '0';
  492. }else {
  493. if (rand() % (i+j) == 0){
  494. mp[i][j] = '#';
  495. }
  496. else
  497. mp[i][j] = ' ';
  498. }
  499. }
  500. }
  501. mp[a][b] = char(2);
  502. mp[a1][b1] = char(1);
  503. return ;
  504. }
  505.  
  506. int main() {
  507.  
  508. srand (time(NULL));
  509.  
  510. n = 20;
  511. m = 30;
  512. gen_map();
  513.  
  514. // cout << endl << endl << endl;
  515. // cout << " enter the name of player :: ";
  516. // cin >> name1;
  517. system("cls");
  518.  
  519. while (true) {
  520. c = _getch();
  521. if (c == '`'){
  522. system();
  523. }
  524. if (c == '+'){
  525. gen_map();
  526. }
  527. fire1(c);
  528. hod(c);
  529. hod2(c);
  530. op_bag();
  531. // npc_hod();
  532. setcur(0,1);
  533. // system("cls");
  534. for (int i=0; i < n; i ++){
  535. for (int j=0; j < m; j ++){
  536. cout << mp[i][j];
  537. }
  538. inator(i);
  539. cout << endl;
  540. }
  541. // dv();
  542. }
  543. return 0;
  544. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement