Ledger Nano X - The secure hardware wallet
SHARE
TWEET

Untitled

a guest Apr 6th, 2020 163 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include <stdio.h>    
  4. #include <stdlib.h>
  5. #include <time.h>
  6. #include <math.h>
  7. #include <vector>
  8. #include <algorithm>
  9. #include <Windows.h>
  10. #include <mysql.h>
  11.  
  12. using namespace std;
  13.  
  14. int num_players;
  15. int num_teams;
  16.  
  17. int pos = 1;
  18. int ypos = 1;
  19. int xpos = 1;
  20. int cteam = 0;
  21. int oteam = 1;
  22.  
  23. int switch_teams(int num) {
  24.     if (num == 1) {
  25.         return 0;
  26.     }
  27.     else {
  28.         return 1;
  29.     }
  30. }
  31.  
  32. string positions[3][5] = {
  33.     // 0 - Attacker
  34.     { "CF", "SS", "ST", "LW", "RW" },
  35.     // 1 - Midfielder
  36.     { "AM", "CM", "LM", "RM", "DM" },
  37.     // 2 - Defender
  38.     { "CB", "LB", "RB" }
  39. };
  40.  
  41. int field_pos[3][3] = {
  42.     {20, 30, 20},
  43.     {10, 15, 10},
  44.     {5 ,  1,  5}
  45. };
  46.  
  47. void get_pos(int score) {
  48.  
  49. }
  50.  
  51. class Jucator {
  52. private:
  53.     int id;
  54.     int age;
  55.     int teamid;
  56.     int number;
  57.     int foot;
  58.     int height;
  59.     int value;
  60.     int overall;
  61.     int pace;
  62.     int shooting;
  63.     int passing;
  64.     int dribbling;
  65.     int defending;
  66.     int physical;
  67.     string firstname;
  68.     string lastname;
  69.     string position;
  70.  
  71. public:
  72.     int role; // 0 - forward, 1 - midfielder, 2 - defender
  73.  
  74. #pragma region Setter
  75.  
  76.     void set_id(int id) {
  77.         this->id = id;
  78.     }
  79.     void set_age(int age) {
  80.         this->age = age;
  81.     }
  82.     void set_teamid(int teamid) {
  83.         this->teamid = teamid;
  84.     }
  85.     void set_pace(int pace) {
  86.         this->pace = pace;
  87.     }
  88.     void set_shooting(int shooting) {
  89.         this->shooting = shooting;
  90.     }
  91.     void set_passing(int passing) {
  92.         this->passing = passing;
  93.     }
  94.     void set_dribbling(int dribbling) {
  95.         this->dribbling = dribbling;
  96.     }
  97.     void set_defending(int defending) {
  98.         this->defending = defending;
  99.     }
  100.     void set_physical(int physical) {
  101.         this->physical = physical;
  102.     }
  103.     void set_name(string firstname, string lastname) {
  104.         this->firstname = firstname;
  105.         this->lastname = lastname;
  106.     }
  107.     void set_firstname(string firstname) {
  108.         this->firstname = firstname;
  109.     }
  110.     void set_lastname(string lastname) {
  111.         this->lastname = lastname;
  112.     }
  113.     void set_position(string position) {
  114.         this->position = position;
  115.     }
  116.     void set_number(int number) {
  117.         this->number = number;
  118.     }
  119.     void set_foot(int foot) {
  120.         this->foot = foot;
  121.     }
  122.     void set_height(int height) {
  123.         this->height = height;
  124.     }
  125.     void set_value(int value) {
  126.         this->value = value;
  127.     }
  128.  
  129.  
  130. #pragma endregion
  131.  
  132. #pragma region Getter
  133.  
  134.     int get_id() {
  135.         return this->id;
  136.     }
  137.     int get_overall() {
  138.         return this->overall;
  139.     }
  140.     int get_pace() {
  141.         return this->pace;
  142.     }
  143.     int get_shooting() {
  144.         return this->shooting;
  145.     }
  146.     int get_passing() {
  147.         return this->passing;
  148.     }
  149.     int get_dribbling() {
  150.         return this->dribbling;
  151.     }
  152.     int get_defending() {
  153.         return this->defending;
  154.     }
  155.     int get_physical() {
  156.         return this->physical;
  157.     }
  158.     string get_firstname() {
  159.         return this->firstname;
  160.     }
  161.     string get_lastname() {
  162.         return this->lastname;
  163.     }
  164.     string get_position() {
  165.         return this->position;
  166.     }
  167.     int get_teamid() {
  168.         return this->teamid;
  169.     }
  170.     int get_height() {
  171.         return this->height;
  172.     }
  173.     int get_value() {
  174.         return this->value;
  175.     }
  176.  
  177. #pragma endregion
  178.  
  179.     void show() {
  180.         string foot;
  181.         if (this->foot == 0)
  182.             foot = "Right";
  183.         else
  184.             foot = "Left";
  185.  
  186.         cout << "id: " << this->id << " " << this->firstname << " " << this->lastname << ", number: " << this->number << ", foot: " << foot << endl;
  187.         cout << "    age: " << this->age << ", height: " << this->height << ", position: " << this->position << ", value: " << this->value << endl;
  188.         cout << "    ovr: " << this->overall << endl;
  189.         cout << endl;
  190.     }
  191.  
  192.     void make_overall() {
  193.         int sum = (
  194.             this->pace
  195.             + this->shooting
  196.             + this->passing
  197.             + this->dribbling
  198.             + this->defending
  199.             + this->physical
  200.             );
  201.         float x = sum / 5.15;
  202.         this->overall = round(x);
  203.     }
  204. };
  205.  
  206. class Team {
  207. private:
  208.     int id;
  209.     int budget;
  210.     int ovr;
  211.     string name;
  212.     string city;
  213.     string stadium;
  214.     string division;
  215.  
  216. public:
  217.     //int num_players = 0;
  218.     int att_ovr = 0;
  219.     int mid_ovr = 0;
  220.     int def_ovr = 0;
  221.     vector<int> players;
  222.  
  223. #pragma region Setter
  224.  
  225.     void set_id(int id) {
  226.         this->id = id;
  227.     }
  228.     void set_ovr(int ovr) {
  229.         this->ovr = ovr;
  230.     }
  231.     void set_budget(int budget) {
  232.         this->budget = budget;
  233.     }
  234.     void set_name(string name) {
  235.         this->name = name;
  236.     }
  237.     void set_city(string city) {
  238.         this->city = city;
  239.     }
  240.     void set_stadium(string stadium) {
  241.         this->stadium = stadium;
  242.     }
  243.     void set_division(string division) {
  244.         this->division = division;
  245.     }
  246.  
  247. #pragma endregion
  248.  
  249. #pragma region Getter
  250.  
  251.     int get_ovr() {
  252.         return this->ovr;
  253.     }
  254.     int get_id() {
  255.         return this->id;
  256.     }
  257.     string get_name() {
  258.         return this->name;
  259.     }
  260.  
  261. #pragma endregion
  262.  
  263.     void show() {
  264.         string gap = "  ";
  265.         if (this->id > 9) gap = " ";
  266.         cout << "id:" << gap << this->id << ", name: " << this->name << ", city: " << this->city << ", stadium: " << this->stadium << ", div: " << this->division << endl;
  267.     }
  268.  
  269. };
  270.  
  271. #pragma region TEAMS
  272.  
  273. void update_teams(Team t[]) {
  274.  
  275.     num_teams = 0;
  276.     MYSQL* conn;
  277.     MYSQL_ROW row;
  278.     MYSQL_RES* res;
  279.     conn = mysql_init(0);
  280.  
  281.     mysql_real_connect(conn, "localhost", "admin", "admin", "game_db", 0, NULL, 0);
  282.     mysql_query(conn, "SELECT id, name, budget, stadium, city, division FROM teams");
  283.     res = mysql_store_result(conn);
  284.  
  285.     // get number of colums
  286.     int num_fields = mysql_num_fields(res);
  287.     int index = 1;
  288.  
  289.     // get all rows from the result
  290.     while ((row = mysql_fetch_row(res))) {
  291.         for (int i = 0; i < 1; i++) {
  292.             if (row[i] != NULL) {
  293.                 t[index].set_id(stoi(row[i]));
  294.                 t[index].set_name(row[i + 1]);
  295.                 t[index].set_budget(stoi(row[i + 2]));
  296.                 t[index].set_stadium(row[i + 3]);
  297.                 t[index].set_city(row[i + 4]);
  298.                 t[index].set_division(row[i + 5]);
  299.                 //t[index].show();
  300.                 num_teams++;
  301.  
  302.             }
  303.             else
  304.                 cout << "NULL" << endl;
  305.         }
  306.         index++;
  307.     }
  308.  
  309.     if (res != NULL)
  310.         mysql_free_result(res);
  311.     cout << endl;
  312. }
  313.  
  314. #pragma endregion
  315.  
  316. #pragma region PLAYERS
  317.  
  318. void get_players(Jucator x[], Team t[]) {
  319.     num_players = 0;
  320.     MYSQL* conn;
  321.     MYSQL_ROW row;
  322.     MYSQL_RES* res;
  323.     conn = mysql_init(0);
  324.  
  325.     mysql_real_connect(conn, "localhost", "admin", "admin", "game_db", 0, NULL, 0);
  326.     mysql_query(conn, "SELECT id, firstname, lastname, number, foot, teamid, age, height, value, position, pace, shooting, passing, dribbling, defending, physical FROM players");
  327.     res = mysql_store_result(conn);
  328.  
  329.     int index = 0;
  330.     int forwards_count = 0;
  331.     int midfielders_count = 0;
  332.     int defenders_count = 0;
  333.  
  334.     // get number of colums
  335.     int num_fields = mysql_num_fields(res);
  336.     // get all rows from the result
  337.     while ((row = mysql_fetch_row(res))) {
  338.         for (int i = 0; i < 1; i++) {
  339.             if (row[i] != NULL) {
  340.                 x[index].set_id(stoi(row[i]));
  341.                 x[index].set_name(row[i + 1], row[i + 2]);
  342.                 x[index].set_number(stoi(row[i + 3]));
  343.                 x[index].set_foot(stoi(row[i + 4]));
  344.                 x[index].set_teamid(stoi(row[i + 5]));
  345.                 x[index].set_age(stoi(row[i + 6]));
  346.                 x[index].set_height(stoi(row[i + 7]));
  347.                 x[index].set_value(stoi(row[i + 8]));
  348.                 x[index].set_position(row[i + 9]);
  349.                 x[index].set_pace(stoi(row[i + 10]));
  350.                 x[index].set_shooting(stoi(row[i + 11]));
  351.                 x[index].set_passing(stoi(row[i + 12]));
  352.                 x[index].set_dribbling(stoi(row[i + 13]));
  353.                 x[index].set_defending(stoi(row[i + 14]));
  354.                 x[index].set_physical(stoi(row[i + 15]));
  355.                 x[index].make_overall();
  356.                 //x[index].show();
  357.                 num_players++;
  358.  
  359.                 // check position and add players to teams
  360.            
  361.                 for (int l = 0; l < 5; l++){
  362.                     if (x[index].get_position() == positions[0][l]) {
  363.                         // Attacker
  364.                         x[index].role = 0;
  365.                         break;
  366.  
  367.                     } else if (x[index].get_position() == positions[1][l]) {
  368.                         // Midfielder
  369.                         x[index].role = 1;
  370.                         break;
  371.  
  372.                     } else if (x[index].get_position() == positions[2][l]) {
  373.                         // Defender
  374.                         x[index].role = 2;
  375.                         break;
  376.                     }
  377.                 }
  378.  
  379.  
  380.             }
  381.             else
  382.                 cout << "NULL" << endl;
  383.         }
  384.         index++;
  385.     }
  386.  
  387.    
  388.  
  389.  
  390.  
  391.     if (res != NULL)
  392.         mysql_free_result(res);
  393.  
  394.  
  395. }
  396.  
  397. void update_specific_player(int id, string choice, int value) {
  398.     MYSQL* conn;
  399.     MYSQL_ROW row;
  400.     MYSQL_RES* res;
  401.     conn = mysql_init(0);
  402.  
  403.     mysql_real_connect(conn, "localhost", "admin", "admin", "game_db", 0, NULL, 0);
  404.     mysql_query(conn, ("UPDATE players SET " + choice + " = " + to_string(value) + " WHERE players.id = " + to_string(id)).c_str());
  405.     res = mysql_store_result(conn);
  406.  
  407. }
  408.  
  409. void update_players(Jucator player[], Team team[]) {
  410.     int forwards_count = 0;
  411.     int midfielders_count = 0;
  412.     int defenders_count = 0;
  413.  
  414.     for (int i = 1; i <= num_teams; i++) {
  415.         for (int j = 0; j < num_players; j++) {
  416.             if (player[j].get_teamid() ==  i) {
  417.                 if (player[j].role == 0) {
  418.                     //team[player[j].get_teamid()].num_players++;
  419.                     team[player[j].get_teamid()].players.push_back(player[j].get_id());
  420.                     team[player[j].get_teamid()].att_ovr += player[j].get_overall();
  421.                     forwards_count++;
  422.                 }
  423.                 else if (player[j].role == 1) {
  424.                     //team[player[j].get_teamid()].num_players++;
  425.                     team[player[j].get_teamid()].mid_ovr += player[j].get_overall();
  426.                     team[player[j].get_teamid()].players.push_back(player[j].get_id());
  427.                     midfielders_count++;
  428.                 }
  429.                 else if (player[j].role == 2) {
  430.                     //team[player[j].get_teamid()].num_players++;
  431.                     team[player[j].get_teamid()].def_ovr += player[j].get_overall();
  432.                     team[player[j].get_teamid()].players.push_back(player[j].get_id());
  433.                     defenders_count++;
  434.                 }  
  435.             }
  436.  
  437.         }
  438.  
  439.         if (team[i].players.size()) {
  440.             if (forwards_count) {
  441.                 float sum = float(team[i].att_ovr) / forwards_count;
  442.                 team[i].att_ovr = round(sum);
  443.             }
  444.             if (midfielders_count) {
  445.                 float sum = float(team[i].mid_ovr) / midfielders_count;
  446.                 team[i].mid_ovr = round(sum);
  447.             }
  448.             if (defenders_count) {
  449.                 float sum = float(team[i].def_ovr) / defenders_count;
  450.                 team[i].def_ovr = round(sum);
  451.             }
  452.         }
  453.  
  454.     }
  455.  
  456.  
  457.  
  458. }
  459.  
  460. #pragma endregion
  461.  
  462. /*
  463. int shoot() {
  464.     // random from attackers
  465.     return true;
  466. }
  467.  
  468. void passing(Team team1, Team team2, int goals[2]) {
  469.     int pass;
  470.     if (cteam == 1) {
  471.         oteam = 0;
  472.         pass = team2.mid_ovr;
  473.     }
  474.     else {
  475.         oteam = 1;
  476.         pass = team1.mid_ovr;
  477.     }
  478.  
  479.     if (pos == 0) {
  480.         // pass to middle
  481.         if (rand() % 100 < pass - 15) {
  482.             // pass succesful - set pos to 1;
  483.             pos = 1;
  484.         }
  485.         else {
  486.             // pass failed - possesion to other team
  487.             pos = 2;
  488.             cteam = oteam;
  489.         }
  490.     }
  491.     else if (pos == 1) {
  492.         // try to pass to top
  493.         if (rand() % 100 < pass - 25) {
  494.             //cout << "pass succesful" << endl;
  495.             pos = 2;
  496.         }
  497.         else {
  498.             pos = 0;
  499.             cteam = oteam;
  500.         }
  501.     }
  502.     else if (pos == 2) {
  503.         // 50% chance to shoot - 50% chance to pass
  504.         if (rand() % 100 < 50) {
  505.             // pass
  506.             if (rand() % 100 < pass - 35) {
  507.                 if (shoot()) {
  508.                     goals[cteam]++;
  509.                     pos = 1;
  510.                 }
  511.                 else {
  512.                     //cout << "Chance failed\n";
  513.                 }
  514.             }
  515.             else {
  516.                 pos = 0;
  517.                 cteam = oteam;
  518.             }
  519.         }
  520.         else {
  521.             if (shoot()) {
  522.                 goals[cteam]++;
  523.                 pos = 1;
  524.             }
  525.             else {
  526.                 //cout << "Chance failed\n";
  527.             }
  528.         }
  529.     }
  530. }
  531.  
  532. void match(Team team1, Team team2) {
  533.    
  534.  
  535.     int goal[2] = { 0, 0 };
  536.     int ctime = 0;
  537.  
  538.     while (ctime < 90) {
  539.         passing(team1, team2, goal);
  540.  
  541.         ctime++;
  542.     }
  543.  
  544.     cout << team1.get_name() << " " << goal[0] << " - " << goal[1] << " " << team2.get_name() << endl;
  545.     pos = 1;
  546.     cteam = 0;
  547.     oteam = 1;
  548. }
  549.  
  550. #pragma endregion
  551. */
  552.  
  553. int get_position_score(int rows, int cols) {
  554.     for (int i = 0; i < 3; i++) {
  555.         if (rows == i) {
  556.             for (int j = 0; j < 3; j++) {
  557.                 if (cols == j) {
  558.                     return field_pos[i][j];
  559.                     break;
  560.                 }
  561.             }
  562.             break;
  563.         }
  564.     }
  565. }
  566.  
  567. void best_play(int rows, int cols, Jucator player) {
  568.     vector<float> av_pos;
  569.     struct xypos {
  570.         int y;
  571.         int x;
  572.     };
  573.     vector<xypos> position;
  574.     xypos pos;
  575. #pragma region gunoi
  576.  
  577.     if (rows <= 2 && rows >= 0 && cols <= 2 && cols >= 0) {
  578.         // check the availabe positions to pass
  579.         switch (rows) {
  580.         case 0:
  581.             if (cols == 0) {
  582.                 // rows
  583.                 av_pos.push_back(get_position_score(1, 0));
  584.                 pos.x = 1;
  585.                 pos.y = 0;
  586.                 position.push_back(pos);
  587.                 av_pos.push_back(get_position_score(2, 0));
  588.                 // colums
  589.                 av_pos.push_back(get_position_score(0, 1));
  590.                 av_pos.push_back(get_position_score(0, 2));
  591.             }
  592.             else if (cols == 1) {
  593.                 // rows
  594.                 av_pos.push_back(get_position_score(0, 0));
  595.                 av_pos.push_back(get_position_score(0, 2));
  596.                 // colums
  597.                 av_pos.push_back(get_position_score(1, 1));
  598.                 av_pos.push_back(get_position_score(2, 1));
  599.             }
  600.             else if (cols == 2) {
  601.                 // rows
  602.                 av_pos.push_back(get_position_score(0, 0));
  603.                 av_pos.push_back(get_position_score(0, 1));
  604.                 // colums
  605.                 av_pos.push_back(get_position_score(1, 2));
  606.                 av_pos.push_back(get_position_score(2, 2));
  607.             }
  608.             break;
  609.         case 1:
  610.             if (cols == 0) {
  611.                 // rows
  612.                 av_pos.push_back(get_position_score(0, 0));
  613.                 av_pos.push_back(get_position_score(2, 0));
  614.                 // colums
  615.                 av_pos.push_back(get_position_score(1, 1));
  616.                 av_pos.push_back(get_position_score(1, 2));
  617.             }
  618.             else if (cols == 1) {
  619.                 // rows
  620.                 av_pos.push_back(get_position_score(1, 2));
  621.                 av_pos.push_back(get_position_score(1, 0));
  622.                 // colums
  623.                 av_pos.push_back(get_position_score(0, 1));
  624.                 av_pos.push_back(get_position_score(2, 1));
  625.             }
  626.             else if (cols == 2) {
  627.                 // rows
  628.                 av_pos.push_back(get_position_score(1, 0));
  629.                 av_pos.push_back(get_position_score(1, 1));
  630.                 // colums
  631.                 av_pos.push_back(get_position_score(0, 2));
  632.                 av_pos.push_back(get_position_score(2, 2));
  633.             }
  634.             break;
  635.         case 2:
  636.             if (cols == 0) {
  637.                 // rows
  638.                 av_pos.push_back(get_position_score(0, 0));
  639.                 av_pos.push_back(get_position_score(1, 0));
  640.                 // colums
  641.                 av_pos.push_back(get_position_score(2, 1));
  642.                 av_pos.push_back(get_position_score(2, 2));
  643.             }
  644.             else if (cols == 1) {
  645.                 // rows
  646.                 av_pos.push_back(get_position_score(2, 0));
  647.                 av_pos.push_back(get_position_score(2, 0));
  648.                 // colums
  649.                 av_pos.push_back(get_position_score(0, 1));
  650.                 av_pos.push_back(get_position_score(1, 1));
  651.             }
  652.             else if (cols == 2) {
  653.                 // rows
  654.                 av_pos.push_back(get_position_score(2, 0));
  655.                 av_pos.push_back(get_position_score(2, 1));
  656.                 // colums
  657.                 av_pos.push_back(get_position_score(1, 2));
  658.                 av_pos.push_back(get_position_score(0, 2));
  659.             }
  660.             break;
  661.         }
  662.  
  663.  
  664.  
  665.        
  666.        
  667.     }
  668. #pragma endregion
  669.  
  670.     sort(av_pos.begin(), av_pos.end());
  671.     if (rand() % 100 < player.get_passing()) {
  672.        
  673.     }
  674. }
  675.  
  676. void match(Team team1, Team team2, Jucator player[]) {
  677.     vector<int> team1_attackers, team2_attackers;
  678.     vector<int> team1_midfielders, team2_midfielders;
  679.     vector<int> team1_defenders, team2_defenders;
  680.  
  681.     for (int i = 0; i < team1.players.size(); i++) {
  682.         if (player[team1.players[i]].role == 0) {
  683.             team1_attackers.push_back(team1.players[i]);
  684.         }
  685.         else if (player[team1.players[i]].role == 1) {
  686.             team1_midfielders.push_back(team1.players[i]);
  687.         }
  688.         else if (player[team1.players[i]].role == 2) {
  689.             team1_defenders.push_back(team1.players[i]);
  690.         }
  691.     }
  692.     for (int i = 0; i < team2.players.size(); i++) {
  693.         if (player[team2.players[i]].role == 0) {
  694.             team1_attackers.push_back(team2.players[i]);
  695.         }
  696.         else if (player[team2.players[i]].role == 1) {
  697.             team1_midfielders.push_back(team2.players[i]);
  698.         }
  699.         else if (player[team2.players[i]].role == 2) {
  700.             team1_defenders.push_back(team2.players[i]);
  701.         }
  702.     }
  703.  
  704. }
  705.  
  706. int main()
  707. {
  708.     srand(time(NULL));
  709.  
  710.     Jucator player[10];
  711.     Team team[50];
  712.  
  713.     update_teams(team);
  714.     get_players(player, team);
  715.     update_players(player, team);
  716.  
  717.  
  718.     system("pause");
  719.     return 0;
  720. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top