Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iterator>
- #include<conio.h>
- #include<windows.h>
- #include<list>
- #include<bits/stdc++.h>
- using namespace std;
- long long n, m, a=1, b=1, t, a1, b1, mp_npc[100][100], m2, hp1 = 100, hp2 = 100, dg1 = 5, dg2 = 5;
- string name1, comand;
- char c, mp[100][100], tem, tem2, f1, f2;
- vector<char> bag1, bag2;
- void setcur(int x, int y)
- {
- COORD coord;
- coord.X = x;
- coord.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
- }
- void hod(char c2){
- if (c2 == 'd'){
- if (mp[a][b+1] == ' '){
- mp[a][b+1] = char(2);
- mp[a][b] = ' ';
- b ++;
- }
- else if (mp[a][b+1] == char(3)){
- mp[a][b+1] = char(2);
- hp1 += 20;
- mp[a][b] = ' ';
- b ++;
- m2 ++;
- }
- else if (mp[a][b+1] != '#' && mp[a][b+1] != '0' && mp[a][b+1] != char(1)){
- bag1.push_back(mp[a][b+1]);
- mp[a][b+1] = char(2);
- mp[a][b] = ' ';
- b ++;
- }
- }
- if (c2 == 's'){
- if (mp[a+1][b] == ' '){
- mp[a+1][b] = char(2);
- mp[a][b] = ' ';
- a ++;
- }
- else if (mp[a+1][b] == char(3)){
- mp[a+1][b] = char(2);
- hp1 += 20;
- mp[a][b] = ' ';
- a ++;
- m2 ++;
- }
- else if (mp[a+1][b] != '#' && mp[a+1][b] != '0' && mp[a+1][b] != char(1)){
- bag1.push_back(mp[a+1][b]);
- mp[a+1][b] = char(2);
- mp[a][b] = ' ';
- a ++;
- }
- }
- if (c2 == 'a'){
- if (mp[a][b-1] == ' '){
- mp[a][b-1] = char(2);
- mp[a][b] = ' ';
- b --;
- }
- else if (mp[a][b-1] == char(3)){
- mp[a][b-1] = char(2);
- mp[a][b] = ' ';
- hp1 += 20;
- b --;
- m2 ++;
- }
- else if (mp[a][b-1] != '#' && mp[a][b-1] != '0' && mp[a][b-1] != char(1)){
- bag1.push_back(mp[a][b-1]);
- mp[a][b-1] = char(2);
- mp[a][b] = ' ';
- b --;
- }
- }
- if (c2 == 'w'){
- if (mp[a-1][b] == ' '){
- mp[a-1][b] = char(2);
- mp[a][b] = ' ';
- a --;
- }
- else if (mp[a-1][b] == char(3)){
- mp[a-1][b] = char(2);
- mp[a][b] = ' ';
- a --;
- hp1 += 20;
- m2 ++;
- }
- else if (mp[a-1][b] != '#' && mp[a-1][b] != '0' && mp[a-1][b] != char(1)){
- bag1.push_back(mp[a-1][b]);
- mp[a-1][b] = char(2);
- mp[a][b] = ' ';
- a --;
- }
- }
- int l=0;
- if (mp[a][b-1] == '#'){
- l ++;
- }
- if (mp[a][b+1] == '#'){
- l ++;
- }
- if (mp[a-1][b] == '#'){
- l ++;
- }
- if (mp[a+1][b] == '#'){
- l ++;
- }
- if (l == 3){
- mp[a][b-1] = '#';
- mp[a][b+1] = '#';
- mp[a-1][b] = '#';
- mp[a+1][b] = '#';
- }
- return ;
- }
- void fire1(char c2){
- if (c2 == 'w' || c2 == 'd' || c2 == 's' || c2 == 'a'){
- f1 = c2;
- }
- if (c2 == 'e'){
- if (f1 == 'w'){
- mp[a-1][b] = '*';
- for (int i = a-1; i > 1; i --){
- if (mp[i-1][b] == ' '){
- mp[i][b] = ' ';
- mp[i-1][b] = '*';
- }
- if (mp[i-1][b] == '#'){
- mp[i][b] = ' ';
- mp[i-1][b] = ' ';
- break;
- }
- if (mp[i-1][b] == char(1)){
- mp[i][b] = ' ';
- hp2 -= 20;
- break;
- }
- if (mp[i-1][b] == '0'){
- mp[i][b] = ' ';
- break;
- }
- }
- }
- if (f1 == 'd'){
- mp[a][b+1] = '*';
- for (int i = b+1; i < m-2; i ++){
- if (mp[a][i+1] == ' '){
- mp[a][i] = ' ';
- mp[a][i+1] = '*';
- }
- if (mp[a][i+1] == '#'){
- mp[a][i] = ' ';
- mp[a][i+1] = ' ';
- break;
- }
- if (mp[a][i+1] == char(1)){
- mp[a][i] = ' ';
- hp2 -= 20;
- break;
- }
- if (mp[a][i+1] == '0'){
- mp[a][i] = ' ';
- break;
- }
- }
- }
- if (f1 == 'a'){
- mp[a][b-1] = '*';
- for (int i = b-1; i > 1; i --){
- if (mp[a][i-1] == ' '){
- mp[a][i] = ' ';
- mp[a][i-1] = '*';
- }
- if (mp[a][i-1] == '#'){
- mp[a][i] = ' ';
- mp[a][i-1] = ' ';
- break;
- }
- if (mp[a][i-1] == char(1)){
- mp[a][i] = ' ';
- hp2 -= 20;
- break;
- }
- if (mp[a][i-1] == '0'){
- mp[a][i] = ' ';
- break;
- }
- }
- }
- if (f1 == 's'){
- mp[a+1][b] = '*';
- for (int i = a+1; i < n-2; i ++){
- if (mp[i+1][b] == ' '){
- mp[i][b] = ' ';
- mp[i+1][b] = '*';
- }
- if (mp[i+1][b] == '#'){
- mp[i][b] = ' ';
- mp[i+1][b] = ' ';
- break;
- }
- if (mp[i+1][b] == char(1)){
- mp[i][b] = ' ';
- hp2 -= 20;
- break;
- }
- if (mp[i+1][b] == '0'){
- mp[i][b] = ' ';
- break;
- }
- }
- }
- }
- }
- void op_bag2(){
- if (isdigit(c)){
- int i = c - '0' - 1;
- tem2 = bag2[i];
- bag2.erase(bag2.begin()+i,bag2.begin()+i+1);
- }
- if (c == 'i' && mp[a1-1][b1] == ' '){
- mp[a1-1][b1] = tem2;
- tem2 = ' ';
- }
- if (c == 'j' && mp[a1][b1-1] == ' '){
- mp[a1][b1-1] = tem2;
- tem2 = ' ';
- }
- if (c == 'k' && mp[a1+1][b1] == ' '){
- mp[a1+1][b1] = tem2;
- tem2 = ' ';
- }
- if (c == 'l' && mp[a1][b1+1] == ' '){
- mp[a1][b1+1] = tem2;
- tem2 = ' ';
- }
- }
- void hod2(char c2){
- if (c2 == 'h'){
- if (mp[a1][b1+1] == ' '){
- mp[a1][b1+1] = char(1);
- mp[a1][b1] = ' ';
- b1 ++;
- }
- else if (mp[a1][b1+1] == char(3)){
- hp2 += 20;
- mp[a1][b1+1] = char(1);
- mp[a1][b1] = ' ';
- b1 ++;
- }
- else if (mp[a1][b1+1] != '#' && mp[a1][b1+1] != '0' && mp[a1][b1+1] != char(2)){
- bag2.push_back(mp[a1][b1+1]);
- mp[a1][b1+1] = char(1);
- mp[a1][b1] = ' ';
- b1 ++;
- }
- }
- if (c2 == 'g'){
- if (mp[a1+1][b1] == ' '){
- mp[a1+1][b1] = char(1);
- mp[a1][b1] = ' ';
- a1 ++;
- }
- else if (mp[a1+1][b1] == char(3)){
- hp2 += 20;
- mp[a1+1][b1] = char(1);
- mp[a1][b1] = ' ';
- a1 ++;
- }
- else if (mp[a1+1][b1] != '#' && mp[a1+1][b1] != '0' && mp[a1+1][b1] != char(2)){
- bag2.push_back(mp[a1+1][b1]);
- mp[a1+1][b1] = char(1);
- mp[a1][b1] = ' ';
- a1 ++;
- }
- }
- if (c2 == 'f'){
- if (mp[a1][b1-1] == ' '){
- mp[a1][b1-1] = char(1);
- mp[a1][b1] = ' ';
- b1 --;
- }
- else if (mp[a1][b1-1] == char(3)){
- hp2 += 20;
- mp[a1][b1-1] = char(1);
- mp[a1][b1] = ' ';
- b1 --;
- }
- else if (mp[a1][b1-1] != '#' && mp[a1][b1-1] != '0' && mp[a1][b1-1] != char(2)){
- bag2.push_back(mp[a1][b1-1]);
- mp[a1][b1-1] = char(1);
- mp[a1][b1] = ' ';
- b1 --;
- }
- }
- if (c2 == 't'){
- if (mp[a1-1][b1] == ' '){
- mp[a1-1][b1] = char(1);
- mp[a1][b1] = ' ';
- a1 --;
- }
- else if (mp[a1-1][b1] == char(3)){
- mp[a1-1][b1] = char(1);
- mp[a1][b1] = ' ';
- hp2 += 20;
- a1 --;
- m2 ++;
- }
- else if (mp[a1-1][b1] != '#' && mp[a1-1][b1] != '0' && mp[a1-1][b1] != char(2)){
- bag2.push_back(mp[a1-1][b1]);
- mp[a1-1][b1] = char(1);
- mp[a1][b1] = ' ';
- a1 --;
- }
- }
- int l=0;
- if (mp[a1][b1-1] == '#'){
- l ++;
- }
- if (mp[a1][b1+1] == '#'){
- l ++;
- }
- if (mp[a1-1][b1] == '#'){
- l ++;
- }
- if (mp[a1+1][b1] == '#'){
- l ++;
- }
- if (l == 3){
- mp[a1][b1-1] = '#';
- mp[a1][b1+1] = '#';
- mp[a1-1][b1] = '#';
- mp[a1+1][b1] = '#';
- }
- return ;
- }
- void inator(int i){
- if (i == 8){
- cout << " dg first player = " << dg1;
- }
- if (i == 9){
- cout << " dg second player = " << dg2;
- }
- if (i == 10){
- cout << " hp first player = " << hp1;
- }
- if (i == 11){
- cout << " hp second player = " << hp2;
- }
- if (i == 12){
- cout << " bag one ";
- for (int k=0; k < bag1.size(); k ++){
- cout << bag1[k] << " ";
- }
- }
- if (i == 13){
- cout << " bag two ";
- for (int k=0; k < bag2.size(); k ++){
- cout << bag2[k] << " ";
- }
- }
- }
- void op_bag(){
- if (isdigit(c)){
- int i = c - '0' - 1;
- tem = bag1[i];
- bag1.erase(bag1.begin()+i,bag1.begin()+i+1);
- }
- if (c == 'i' && mp[a-1][b] == ' '){
- mp[a-1][b] = tem;
- tem = ' ';
- }
- if (c == 'j' && mp[a][b-1] == ' '){
- mp[a][b-1] = tem;
- tem = ' ';
- }
- if (c == 'k' && mp[a+1][b] == ' '){
- mp[a+1][b] = tem;
- tem = ' ';
- }
- if (c == 'l' && mp[a][b+1] == ' '){
- mp[a][b+1] = tem;
- tem = ' ';
- }
- }
- void system(){
- system("cls");
- cin >> comand;
- if (comand[0] == 'h' && comand[8] == '1'){
- hp1 = 100;
- }
- if (comand[0] == 'h' && comand[8] == '2'){
- hp2 = 100;
- }
- if (comand[0] == 'u' && comand[9] == '1'){
- dg1 = 50;
- }
- if (comand[0] == 'u' && comand[9] == '2'){
- dg2 = 50;
- }
- system("cls");
- return ;
- }
- void dv(){
- for (int i=1; i < n-1; i ++){
- for (int j=0; j < m; j ++){
- if (mp[i-1][j] == char(3) && mp[i][j] != char(3)){
- mp[i][j] = '9';
- mp[i-1][j] = ' ';
- }
- }
- }
- for (int i=1; i < n-1; i ++){
- for (int j=0; j < m; j ++){
- if (mp[i][j] == '9'){
- mp[i][j] = char(3);
- }
- }
- }
- }
- /*
- nado dokonchit
- void gen_map_npc(){
- for (int i=0; i < n; i ++){
- for (int j=0; j < m; j ++){
- if (i == 0 || j == 0 || i == n-1 || j == m-1){
- mp_npc[i][j] = -1;
- }else{
- mp_npc[i][j] = 0;
- }
- }
- }
- }
- void npc_hod(){
- long long mn = 99999999999;
- long long temp, l, x = -1;
- for (int i=0; i < 2; i ++){
- if (mp_npc[a1,b1+x] != -1 && mp_npc[a1,b1+x] < mn){
- temp = x;
- l = 1;
- mn = mp_npc[a1,b1+x];
- }
- if (mp_npc[a1+x,b1] != -1 && mp_npc[a1+x,b1] < mn){
- temp = x;
- l = 2;
- mn = mp_npc[a1+x,b1];
- }
- x = 1;
- }
- if (l == 2){
- mp_npc[a1+temp,b1] ++;
- mp[a1+temp,b1] = char(2);
- mp[a1,b1] = ' ';
- a1 += temp;
- }
- if (l == 1){
- mp_npc[a1,b1+temp] ++;
- mp[a1,b1+temp] = char(2);
- mp[a1,b1] = ' ';
- b1 += temp;
- }
- }
- bool bul(int a2, int b2){
- if ((a2 == n-1 && b2 == m-2) || (a2 == n-2 && b2 == m-1)){
- return false;
- }
- return true;
- }
- */
- void gen_map(){
- a1 = n-2, b1 = m-2;
- a = 1, b = 1;
- for (int i=0; i < n; i ++){
- for (int j=0; j < m; j ++){
- if (i == 0 || j == 0 || i == n-1 || j == m-1){
- mp[i][j] = '0';
- }else {
- if (rand() % (i+j) == 0){
- mp[i][j] = '#';
- }
- else
- mp[i][j] = ' ';
- }
- }
- }
- mp[a][b] = char(2);
- mp[a1][b1] = char(1);
- return ;
- }
- int main() {
- srand (time(NULL));
- n = 20;
- m = 30;
- gen_map();
- // cout << endl << endl << endl;
- // cout << " enter the name of player :: ";
- // cin >> name1;
- system("cls");
- while (true) {
- c = _getch();
- if (c == '`'){
- system();
- }
- if (c == '+'){
- gen_map();
- }
- fire1(c);
- hod(c);
- hod2(c);
- op_bag();
- // npc_hod();
- setcur(0,1);
- // system("cls");
- for (int i=0; i < n; i ++){
- for (int j=0; j < m; j ++){
- cout << mp[i][j];
- }
- inator(i);
- cout << endl;
- }
- // dv();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement