Chain Game in C++

Standard

Source Code in C++

1: #include <iostream>

 2: #include <cstdlib>
 3: 
 4: using namespace std;
 5: //------------------------------------------------------
 6: class Summetexon
 7: {
 8: private:
 9:     int itsid;
 10:     int itsthesi;
 11: public:
 12:     Summetexon(){;}
 13:     ~Summetexon(){;}
 14:     Summetexon *next;
 15:     void set_Summetexon(int id,int thesi);
 16:     void set_thesi(int thesi){itsthesi = thesi ;}
 17:     int get_thesi(){return itsthesi;}
 18:     int get_id(){return itsid;}
 19: };
 20: 
 21: class Alusida
 22: {
 23: private:
 24:     int itsmegethos;
 25:     int itsdiagrafon_node;
 26:     int itsdiagrafon_thesi;
 27:     int itsnode_arxis;
 28:     Summetexon *arxi;
 29: public:
 30:     Alusida(int megethos);
 31:     ~Alusida(){;}
 32:     Summetexon *nodes;
 33:     void hit();
 34:     void stop_tune();
 35:     void resume();
 36:     void print_chain();
 37:     int game_over();
 38:     void winner();
 39: 
 40: };
 41: 
 42: //----------------------------------------------------
 43: 
 44: void Summetexon::set_Summetexon(int id,int thesi)
 45: {
 46:     itsid=id;
 47:     itsthesi=thesi;
 48: }
 49: 
 50: //-----------------------------------------------------
 51: 
 52: Alusida::Alusida(int megethos)
 53: {
 54:     int i,id;
 55:     itsmegethos=megethos;
 56:     nodes = new Summetexon[megethos];
 57:     id=rand();
 58:     for(i=0;i<itsmegethos;i++)
 59:     {
 60:         if(i==itsmegethos -1)
 61:         {
 62:             nodes[i].set_Summetexon(id++,i+1);
 63:             break;
 64:         }
 65:         nodes[i].set_Summetexon(id++,i+1);
 66:     }
 67:     for(i=0;i<itsmegethos;i++)
 68:     {
 69:         if(i==itsmegethos -1)
 70:         {
 71:             nodes[i].next = &nodes[0];
 72:             break;
 73:         }
 74:         nodes[i].next = &nodes[i+1];
 75:     }
 76:     arxi = &nodes[0];
 77:     itsnode_arxis = 0;
 78: }
 79: 
 80: void Alusida::hit()
 81: {
 82:     int i,thesi;
 83:     for(i=0;i<itsmegethos;i++)
 84:     {
 85:         if(nodes[i].get_thesi() == 1)
 86:         {
 87:             nodes[i].set_thesi(itsmegethos);
 88:             i++;
 89:         }
 90:         thesi = nodes[i].get_thesi();
 91:         nodes[i].set_thesi(--thesi);
 92:     }
 93:     for(i=0;i<itsmegethos;i++)
 94:     {
 95:         if(nodes[i].get_thesi() == 1)
 96:         {
 97:             arxi=&nodes[i];
 98:             itsnode_arxis = i;
 99:         }
 100:     }
 101: }
 102: 
 103: void Alusida::stop_tune()
 104: {
 105:     itsdiagrafon_node = rand() % itsmegethos;
 106:     cout<<"Diagrafike o Summetexon me id:" << nodes[itsdiagrafon_node].get_id() << "\n\n";
 107:     itsdiagrafon_thesi = nodes[itsdiagrafon_node].get_thesi();
 108: 
 109:     itsmegethos--;
 110:     if(itsdiagrafon_thesi == 1)
 111:     {
 112:         arxi = &nodes[itsdiagrafon_node + 1];
 113:         itsnode_arxis=itsdiagrafon_node + 1;
 114:     }
 115: }
 116: 
 117: void Alusida::resume()
 118: {
 119: 
 120:     int i=0,j=0,thesi=1;
 121:     Summetexon *buf = new Summetexon[itsmegethos];
 122:     if(itsdiagrafon_thesi == 1)
 123:     {
 124: 
 125:         for(i=itsdiagrafon_node + 1;i<itsmegethos + 1;i++)
 126:         {
 127:             buf[j] = nodes[i];
 128:             buf[j].set_thesi(thesi++);
 129:             j++;
 130:         }
 131:         for(i=0;i<itsdiagrafon_node;i++)
 132:         {
 133:             buf[j] = nodes[i];
 134:             buf[j].set_thesi(thesi++);
 135:             j++;
 136:         }
 137:         for(i=0;i<itsmegethos;i++)
 138:         {
 139:             if(i == itsmegethos -1)
 140:             {
 141:                 buf[i].next = &buf[0];
 142:                 break;
 143:             }
 144:             buf[i].next = &buf[i+1];
 145:         }
 146:     }
 147:     if(itsdiagrafon_thesi == itsmegethos + 1)
 148:     {
 149:         for(i=itsdiagrafon_node + 1;i<itsmegethos+1;i++)
 150:         {
 151:             buf[j] = nodes[i];
 152:             j++;
 153:         }
 154:         for(i=0;i<itsdiagrafon_node;i++)
 155:         {
 156:             buf[j] = nodes[i];
 157:             j++;
 158:         }
 159:         for(i=0;i<itsmegethos;i++)
 160:         {
 161:             if(i == itsmegethos - 1)
 162:             {
 163:                 buf[i].next = &buf[0];
 164:                 break;
 165:             }
 166:             buf[i].next = &buf[i+1];
 167:         }
 168:     }
 169: 
 170:     if(itsdiagrafon_thesi != itsmegethos + 1 && itsdiagrafon_thesi != 1)
 171:     {
 172:         for(i=itsnode_arxis;i<itsmegethos + 1 && i<itsdiagrafon_node;i++)
 173:         {
 174:             buf[j] = nodes[i];
 175:             buf[j].set_thesi(thesi++);
 176:             j++;
 177:         }
 178:         if(i==itsnode_arxis)
 179:         {
 180:             for(i=i;i<itsmegethos + 1;i++)
 181:             {
 182:                 buf[j] = nodes[i];
 183:                 buf[j].set_thesi(thesi++);
 184:                 j++;
 185:             }
 186:             for(i=0;i<itsdiagrafon_node;i++)
 187:             {
 188:                 buf[j]=nodes[i];
 189:                 buf[j].set_thesi(thesi++);
 190:                 j++;
 191:             }
 192:             for(i=itsdiagrafon_node+1;i<itsnode_arxis;i++)
 193:             {
 194:                 buf[j]=nodes[i];
 195:                 buf[j].set_thesi(thesi++);
 196:                 j++;
 197:             }
 198: 
 199:         }
 200:         if(i==itsmegethos+1)
 201:         {
 202:             for(i=0;i<itsdiagrafon_node;i++)
 203:             {
 204:                 buf[j]=nodes[i];
 205:                 buf[j].set_thesi(thesi++);
 206:                 j++;
 207:             }
 208:             for(i=itsdiagrafon_node+1;i<itsnode_arxis;i++)
 209:             {
 210:                 buf[j]=nodes[i];
 211:                 buf[j].set_thesi(thesi++);
 212:                 j++;
 213:             }
 214:         }
 215:         else if(i==itsdiagrafon_node)
 216:         {
 217:             for(i=itsdiagrafon_node+1;i<itsmegethos +1;i++)
 218:             {
 219:                 buf[j]=nodes[i];
 220:                 buf[j].set_thesi(thesi++);
 221:                 j++;
 222:             }
 223:             for(i=0;i<itsnode_arxis;i++)
 224:             {
 225:                 buf[j]=nodes[i];
 226:                 buf[j].set_thesi(thesi++);
 227:                 j++;
 228:             }
 229: 
 230:         }
 231:         for(i=0;i<itsmegethos;i++)
 232:         {
 233:             if(i == itsmegethos -1)
 234:             {
 235:                 buf[i].next = &buf[0];
 236:                 break;
 237:             }
 238:             buf[i].next = &buf[i+1];
 239:         }
 240:     }
 241: 
 242:     for(i=0;i<itsmegethos;i++)
 243:     {
 244:         nodes[i] = buf[i];
 245:     }
 246: 
 247:     arxi = &nodes[0];
 248:     itsnode_arxis = 0;
 249: }
 250: 
 251: int Alusida::game_over()
 252: {
 253:     if(itsmegethos == 1)
 254:         return 1;
 255:     else
 256:         return 0;
 257: }
 258: 
 259: void Alusida::print_chain()
 260: {
 261:     int i;
 262:     for(i=0;i<itsmegethos;i++)
 263:     {
 264:         cout << "Summetexon stin thesi "<<nodes[i].get_thesi()<<" me id: "<<nodes[i].get_id()<<"\n";
 265:     }
 266: }
 267: 
 268: void Alusida::winner()
 269: {
 270:     if(game_over() == 1)
 271:         cout <<"To paixnidi teleiose!\n********************\nThe Winner is Summetexon with ID:"<<nodes[0].get_id()<<"\n********************\n\n";
 272:     else
 273:         cout<<"To paixnidi den teleiose akoma!\n\n";
 274: }
 275: 
 276: 
 277: 
 278: /********************************************************************/
 279: 
 280: void main(void)
 281: {
 282:     int i,k,plithos;
 283:     cout << "Doste to plithos ton summetexonton:\n";
 284:     cin >> plithos;
 285:     Alusida myAlusida(plithos);
 286:     cout << "ARXIKH ALYSIDA.\n";
 287:     myAlusida.print_chain();
 288:     cout << "***************\n\n";
 289:     for(i=0;i<plithos-1;i++)
 290:     {
 291:         for(k=0;k<rand() % 10;k++)
 292:         {
 293:             cout<<"->HIT\n";
 294:             myAlusida.hit();
 295:             myAlusida.print_chain();
 296:             cout << "\n";
 297:         }
 298:         cout << "->STOP TUNE\n";
 299:         myAlusida.stop_tune();
 300:         cout << "->RESUME\n";
 301:         myAlusida.resume();
 302:         myAlusida.print_chain();
 303:         cout << "\n";
 304:     }
 305:     myAlusida.winner();
 306: 
 307: }

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

yeezy boost 350 ua yeezytrainer yeezy boost 350 ua yeezytrainer yeezytrainer yeezy boost 350 ua yeezy boost 350 ua yeezy shoes yeezy shoes yeezy boost online

yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes