//
//                          GYOURETSU - MONOGOKORO
//

// INSTRUCTIONS
// ------------
// Your Mission:  Destory all 64 cells of the matrix using as little
//                manipulation as you can. To destroy cells, you must
//                line up THREE OR MORE of the same value in a row,
//                either horizontally or vertically. This can be done
//                by "manipulation" of the rows and columns.

// Manipulation:  First, select a row or column. You can add or
//                subtract as much or as little as you want from
//                the row/column. Just remember when you do this to
//                a row or column, ALL of the numbers change by
//                the value you input.

// Stat/Absolute: Stats are recorded by how much you manipulate the
//                rows and columns.

//  >> Net Stat:  The sum of your changes made- for example if you
//                change two rows by +2 and -2, respectively, this
//                statistic feature will display zero at that point.

//  >> Absolute   The sum of the VALUES of your changes made. Using
//         Stat:  the same example as above, this statistic feature
//                would display a four. This stat NEVER decreases.

// Remain:        Total value of all remaining cells.

// Victory and    Victory is yours if Remain reaches zero and there
//      Defeat:   are no cells left. If you cannot make any more sets
//                of three and there are still cells remaining, you lose.

// note to anyone trying to mess with this: good luck! ha.

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
void main ()
{
// Cell declarations
int a1, a2, a3, a4, a5, a6, a7, a8;
int b1, b2, b3, b4, b5, b6, b7, b8;
int c1, c2, c3, c4, c5, c6, c7, c8;
int d1, d2, d3, d4, d5, d6, d7, d8;
int e1, e2, e3, e4, e5, e6, e7, e8;
int f1, f2, f3, f4, f5, f6, f7, f8;
int g1, g2, g3, g4, g5, g6, g7, g8;
int h1, h2, h3, h4, h5, h6, h7, h8;

int xa1, xa2, xa3, xa4, xa5, xa6, xa7, xa8;
int xb1, xb2, xb3, xb4, xb5, xb6, xb7, xb8;
int xc1, xc2, xc3, xc4, xc5, xc6, xc7, xc8;
int xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8;
int xe1, xe2, xe3, xe4, xe5, xe6, xe7, xe8;
int xf1, xf2, xf3, xf4, xf5, xf6, xf7, xf8;
int xg1, xg2, xg3, xg4, xg5, xg6, xg7, xg8;
int xh1, xh2, xh3, xh4, xh5, xh6, xh7, xh8;

int stat, absolutestat;
stat=0;
absolutestat=0;

long int earn;
long int score;
int earnx;
int penalty;
score=0;
earnx=0;
earn=0;
penalty=0;

int xchangeIN;
xchangeIN=0;

int intx;
intx=0;

int ultima;
ultima=1;

char choiceIN;
int changeIN;
choiceIN=' ';
changeIN=0;

// Cell assignments
randomize();
a1=rand()%9+1;
a2=rand()%9+1;
a3=rand()%9+1;
a4=rand()%9+1;
a5=rand()%9+1;
a6=rand()%9+1;
a7=rand()%9+1;
a8=rand()%9+1;
b1=rand()%9+1;
b2=rand()%9+1;
b3=rand()%9+1;
b4=rand()%9+1;
b5=rand()%9+1;
b6=rand()%9+1;
b7=rand()%9+1;
b8=rand()%9+1;
c1=rand()%9+1;
c2=rand()%9+1;
c3=rand()%9+1;
c4=rand()%9+1;
c5=rand()%9+1;
c6=rand()%9+1;
c7=rand()%9+1;
c8=rand()%9+1;
d1=rand()%9+1;
d2=rand()%9+1;
d3=rand()%9+1;
d4=rand()%9+1;
d5=rand()%9+1;
d6=rand()%9+1;
d7=rand()%9+1;
d8=rand()%9+1;
e1=rand()%9+1;
e2=rand()%9+1;
e3=rand()%9+1;
e4=rand()%9+1;
e5=rand()%9+1;
e6=rand()%9+1;
e7=rand()%9+1;
e8=rand()%9+1;
f1=rand()%9+1;
f2=rand()%9+1;
f3=rand()%9+1;
f4=rand()%9+1;
f5=rand()%9+1;
f6=rand()%9+1;
f7=rand()%9+1;
f8=rand()%9+1;
g1=rand()%9+1;
g2=rand()%9+1;
g3=rand()%9+1;
g4=rand()%9+1;
g5=rand()%9+1;
g6=rand()%9+1;
g7=rand()%9+1;
g8=rand()%9+1;
h1=rand()%9+1;
h2=rand()%9+1;
h3=rand()%9+1;
h4=rand()%9+1;
h5=rand()%9+1;
h6=rand()%9+1;
h7=rand()%9+1;
h8=rand()%9+1;

while (choiceIN!='X' && ultima>0 && (score)>(-100000))
{
// Dummy assignments
xa1=1;
xa2=1;
xa3=1;
xa4=1;
xa5=1;
xa6=1;
xa7=1;
xa8=1;
xb1=1;
xb2=1;
xb3=1;
xb4=1;
xb5=1;
xb6=1;
xb7=1;
xb8=1;
xc1=1;
xc2=1;
xc3=1;
xc4=1;
xc5=1;
xc6=1;
xc7=1;
xc8=1;
xd1=1;
xd2=1;
xd3=1;
xd4=1;
xd5=1;
xd6=1;
xd7=1;
xd8=1;
xe1=1;
xe2=1;
xe3=1;
xe4=1;
xe5=1;
xe6=1;
xe7=1;
xe8=1;
xf1=1;
xf2=1;
xf3=1;
xf4=1;
xf5=1;
xf6=1;
xf7=1;
xf8=1;
xg1=1;
xg2=1;
xg3=1;
xg4=1;
xg5=1;
xg6=1;
xg7=1;
xg8=1;
xh1=1;
xh2=1;
xh3=1;
xh4=1;
xh5=1;
xh6=1;
xh7=1;
xh8=1;

ultima=a1+a2+a3+a4+a5+a6+a7+a8;
ultima+=b1+b2+b3+b4+b5+b6+b7+b8;
ultima+=c1+c2+c3+c4+c5+c6+c7+c8;
ultima+=d1+d2+d3+d4+d5+d6+d7+d8;
ultima+=e1+e2+e3+e4+e5+e6+e7+e8;
ultima+=f1+f2+f3+f4+f5+f6+f7+f8;
ultima+=g1+g2+g3+g4+g5+g6+g7+g8;
ultima+=h1+h2+h3+h4+h5+h6+h7+h8;

clrscr();

// Cell Displaying
cout<<"         a  ";
if (a1==0)
cout<<char(32)<<" ";
else
cout<<a1<<" ";
if (a2==0)
cout<<char(32)<<" ";
else
cout<<a2<<" ";
if (a3==0)
cout<<char(32)<<" ";
else
cout<<a3<<" ";
if (a4==0)
cout<<char(32)<<" ";
else
cout<<a4<<" ";
if (a5==0)
cout<<char(32)<<" ";
else
cout<<a5<<" ";
if (a6==0)
cout<<char(32)<<" ";
else
cout<<a6<<" ";
if (a7==0)
cout<<char(32)<<" ";
else
cout<<a7<<" ";
if (a8==0)
cout<<char(32)<<" ";
else
cout<<a8<<" ";
cout<<"                   Remain: "<<ultima;
cout<<endl;
cout<<"         b  ";
if (b1==0)
cout<<char(32)<<" ";
else
cout<<b1<<" ";
if (b2==0)
cout<<char(32)<<" ";
else
cout<<b2<<" ";
if (b3==0)
cout<<char(32)<<" ";
else
cout<<b3<<" ";
if (b4==0)
cout<<char(32)<<" ";
else
cout<<b4<<" ";
if (b5==0)
cout<<char(32)<<" ";
else
cout<<b5<<" ";
if (b6==0)
cout<<char(32)<<" ";
else
cout<<b6<<" ";
if (b7==0)
cout<<char(32)<<" ";
else
cout<<b7<<" ";
if (b8==0)
cout<<char(32)<<" ";
else
cout<<b8<<" ";
cout<<endl;
cout<<"         c  ";
if (c1==0)
cout<<char(32)<<" ";
else
cout<<c1<<" ";
if (c2==0)
cout<<char(32)<<" ";
else
cout<<c2<<" ";
if (c3==0)
cout<<char(32)<<" ";
else
cout<<c3<<" ";
if (c4==0)
cout<<char(32)<<" ";
else
cout<<c4<<" ";
if (c5==0)
cout<<char(32)<<" ";
else
cout<<c5<<" ";
if (c6==0)
cout<<char(32)<<" ";
else
cout<<c6<<" ";
if (c7==0)
cout<<char(32)<<" ";
else
cout<<c7<<" ";
if (c8==0)
cout<<char(32)<<" ";
else
cout<<c8<<" ";
cout<<"                Net Manip: ";
if (stat>0)
cout<<"+"<<stat;
if (stat==0)
cout<<" "<<stat;
if (stat<0)
cout<<"-"<<(0-stat);
cout<<endl;
cout<<"         d  ";
if (d1==0)
cout<<char(32)<<" ";
else
cout<<d1<<" ";
if (d2==0)
cout<<char(32)<<" ";
else
cout<<d2<<" ";
if (d3==0)
cout<<char(32)<<" ";
else
cout<<d3<<" ";
if (d4==0)
cout<<char(32)<<" ";
else
cout<<d4<<" ";
if (d5==0)
cout<<char(32)<<" ";
else
cout<<d5<<" ";
if (d6==0)
cout<<char(32)<<" ";
else
cout<<d6<<" ";
if (d7==0)
cout<<char(32)<<" ";
else
cout<<d7<<" ";
if (d8==0)
cout<<char(32)<<" ";
else
cout<<d8<<" ";
cout<<"                Tot Manip: "<<absolutestat;
cout<<endl;
cout<<"         e  ";
if (e1==0)
cout<<char(32)<<" ";
else
cout<<e1<<" ";
if (e2==0)
cout<<char(32)<<" ";
else
cout<<e2<<" ";
if (e3==0)
cout<<char(32)<<" ";
else
cout<<e3<<" ";
if (e4==0)
cout<<char(32)<<" ";
else
cout<<e4<<" ";
if (e5==0)
cout<<char(32)<<" ";
else
cout<<e5<<" ";
if (e6==0)
cout<<char(32)<<" ";
else
cout<<e6<<" ";
if (e7==0)
cout<<char(32)<<" ";
else
cout<<e7<<" ";
if (e8==0)
cout<<char(32)<<" ";
else
cout<<e8<<" ";
cout<<endl;
cout<<"         f  ";
if (f1==0)
cout<<char(32)<<" ";
else
cout<<f1<<" ";
if (f2==0)
cout<<char(32)<<" ";
else
cout<<f2<<" ";
if (f3==0)
cout<<char(32)<<" ";
else
cout<<f3<<" ";
if (f4==0)
cout<<char(32)<<" ";
else
cout<<f4<<" ";
if (f5==0)
cout<<char(32)<<" ";
else
cout<<f5<<" ";
if (f6==0)
cout<<char(32)<<" ";
else
cout<<f6<<" ";
if (f7==0)
cout<<char(32)<<" ";
else
cout<<f7<<" ";
if (f8==0)
cout<<char(32)<<" ";
else
cout<<f8<<" ";
cout<<endl;
cout<<"         g  ";
if (g1==0)
cout<<char(32)<<" ";
else
cout<<g1<<" ";
if (g2==0)
cout<<char(32)<<" ";
else
cout<<g2<<" ";
if (g3==0)
cout<<char(32)<<" ";
else
cout<<g3<<" ";
if (g4==0)
cout<<char(32)<<" ";
else
cout<<g4<<" ";
if (g5==0)
cout<<char(32)<<" ";
else
cout<<g5<<" ";
if (g6==0)
cout<<char(32)<<" ";
else
cout<<g6<<" ";
if (g7==0)
cout<<char(32)<<" ";
else
cout<<g7<<" ";
if (g8==0)
cout<<char(32)<<" ";
else
cout<<g8<<" ";
if (penalty!=0)
cout<<"                            "<<(earn-penalty);
if (penalty==0)
cout<<"                                ";
cout<<endl;
cout<<"         h  ";
if (h1==0)
cout<<char(32)<<" ";
else
cout<<h1<<" ";
if (h2==0)
cout<<char(32)<<" ";
else
cout<<h2<<" ";
if (h3==0)
cout<<char(32)<<" ";
else
cout<<h3<<" ";
if (h4==0)
cout<<char(32)<<" ";
else
cout<<h4<<" ";
if (h5==0)
cout<<char(32)<<" ";
else
cout<<h5<<" ";
if (h6==0)
cout<<char(32)<<" ";
else
cout<<h6<<" ";
if (h7==0)
cout<<char(32)<<" ";
else
cout<<h7<<" ";
if (h8==0)
cout<<char(32)<<" ";
else
cout<<h8<<" ";
score+=(earn-penalty);
cout<<"                    Score: "<<score;
earnx=score;
earn=0;
penalty=0;
cout<<endl<<endl;
cout<<"            i j k l m n o p"<<endl<<endl;

// Battle Input

cout<<"Type X to surrender"<<endl;
cout<<"Input row/column to change:  ";
cin>>choiceIN;
if (choiceIN!='X' && ultima!=0 && score>(-100000))
{
cout<<endl<<"        Manipulate:    +/-   ";
cin>>changeIN;
}
if (changeIN<0)
penalty=pow((changeIN*changeIN), 1+(intx/10));
if (changeIN>0)
penalty=pow((changeIN*changeIN), 1+(intx/10));
intx++;
// Stat Manipulation
stat+=changeIN;
if (changeIN<0)
xchangeIN=(0-changeIN);
if (changeIN==0)
{
penalty=9999;
xchangeIN=0;
}
if (changeIN>0)
xchangeIN=changeIN;

absolutestat+=xchangeIN;

// Cell Adjustments
if (choiceIN=='a')
{
if (a1>0)
{
if ((a1+changeIN)<=0)
a1+=changeIN+9;
else
a1+=changeIN;
}
if (a2>0)
{
if ((a2+changeIN)<=0)
a2+=changeIN+9;
else
a2+=changeIN;
}
if (a3>0)
{
if ((a3+changeIN)<=0)
a3+=changeIN+9;
else
a3+=changeIN;
}
if (a4>0)
{
if ((a4+changeIN)<=0)
a4+=changeIN+9;
else
a4+=changeIN;
}
if (a5>0)
{
if ((a5+changeIN)<=0)
a5+=changeIN+9;
else
a5+=changeIN;
}
if (a6>0)
{
if ((a6+changeIN)<=0)
a6+=changeIN+9;
else
a6+=changeIN;
}
if (a7>0)
{
if ((a7+changeIN)<=0)
a7+=changeIN+9;
else
a7+=changeIN;
}
if (a8>0)
{
if ((a8+changeIN)<=0)
a8+=changeIN+9;
else
a8+=changeIN;
}
}

if (choiceIN=='b')
{
if (b1>0)
{
if ((b1+changeIN)<=0)
b1+=changeIN+9;
else
b1+=changeIN;
}
if (b2>0)
{
if ((b2+changeIN)<=0)
b2+=changeIN+9;
else
b2+=changeIN;
}
if (b3>0)
{
if ((b3+changeIN)<=0)
b3+=changeIN+9;
else
b3+=changeIN;
}
if (b4>0)
{
if ((b4+changeIN)<=0)
b4+=changeIN+9;
else
b4+=changeIN;
}
if (b5>0)
{
if ((b5+changeIN)<=0)
b5+=changeIN+9;
else
b5+=changeIN;
}
if (b6>0)
{
if ((b6+changeIN)<=0)
b6+=changeIN+9;
else
b6+=changeIN;
}
if (b7>0)
{
if ((b7+changeIN)<=0)
b7+=changeIN+9;
else
b7+=changeIN;
}
if (b8>0)
{
if ((b8+changeIN)<=0)
b8+=changeIN+9;
else
b8+=changeIN;
}
}

if (choiceIN=='c')
{
if (c1>0)
{
if ((c1+changeIN)<=0)
c1+=changeIN+9;
else
c1+=changeIN;
}
if (c2>0)
{
if ((c2+changeIN)<=0)
c2+=changeIN+9;
else
c2+=changeIN;
}
if (c3>0)
{
if ((c3+changeIN)<=0)
c3+=changeIN+9;
else
c3+=changeIN;
}
if (c4>0)
{
if ((c4+changeIN)<=0)
c4+=changeIN+9;
else
c4+=changeIN;
}
if (c5>0)
{
if ((c5+changeIN)<=0)
c5+=changeIN+9;
else
c5+=changeIN;
}
if (c6>0)
{
if ((c6+changeIN)<=0)
c6+=changeIN+9;
else
c6+=changeIN;
}
if (c7>0)
{
if ((c7+changeIN)<=0)
c7+=changeIN+9;
else
c7+=changeIN;
}
if (c8>0)
{
if ((c8+changeIN)<=0)
c8+=changeIN+9;
else
c8+=changeIN;
}
}

if (choiceIN=='d')
{
if (d1>0)
{
if ((d1+changeIN)<=0)
d1+=changeIN+9;
else
d1+=changeIN;
}
if (d2>0)
{
if ((d2+changeIN)<=0)
d2+=changeIN+9;
else
d2+=changeIN;
}
if (d3>0)
{
if ((d3+changeIN)<=0)
d3+=changeIN+9;
else
d3+=changeIN;
}
if (d4>0)
{
if ((d4+changeIN)<=0)
d4+=changeIN+9;
else
d4+=changeIN;
}
if (d5>0)
{
if ((d5+changeIN)<=0)
d5+=changeIN+9;
else
d5+=changeIN;
}
if (d6>0)
{
if ((d6+changeIN)<=0)
d6+=changeIN+9;
else
d6+=changeIN;
}
if (d7>0)
{
if ((d7+changeIN)<=0)
d7+=changeIN+9;
else
d7+=changeIN;
}
if (d8>0)
{
if ((d8+changeIN)<=0)
d8+=changeIN+9;
else
d8+=changeIN;
}
}

if (choiceIN=='e')
{
if (e1>0)
{
if ((e1+changeIN)<=0)
e1+=changeIN+9;
else
e1+=changeIN;
}
if (e2>0)
{
if ((e2+changeIN)<=0)
e2+=changeIN+9;
else
e2+=changeIN;
}
if (e3>0)
{
if ((e3+changeIN)<=0)
e3+=changeIN+9;
else
e3+=changeIN;
}
if (e4>0)
{
if ((e4+changeIN)<=0)
e4+=changeIN+9;
else
e4+=changeIN;
}
if (e5>0)
{
if ((e5+changeIN)<=0)
e5+=changeIN+9;
else
e5+=changeIN;
}
if (e6>0)
{
if ((e6+changeIN)<=0)
e6+=changeIN+9;
else
e6+=changeIN;
}
if (e7>0)
{
if ((e7+changeIN)<=0)
e7+=changeIN+9;
else
e7+=changeIN;
}
if (e8>0)
{
if ((e8+changeIN)<=0)
e8+=changeIN+9;
else
e8+=changeIN;
}

}

if (choiceIN=='f')
{
if (f1>0)
{
if ((f1+changeIN)<=0)
f1+=changeIN+9;
else
f1+=changeIN;
}
if (f2>0)
{
if ((f2+changeIN)<=0)
f2+=changeIN+9;
else
f2+=changeIN;
}
if (f3>0)
{
if ((f3+changeIN)<=0)
f3+=changeIN+9;
else
f3+=changeIN;
}
if (f4>0)
{
if ((f4+changeIN)<=0)
f4+=changeIN+9;
else
f4+=changeIN;
}
if (f5>0)
{
if ((f5+changeIN)<=0)
f5+=changeIN+9;
else
f5+=changeIN;
}
if (f6>0)
{
if ((f6+changeIN)<=0)
f6+=changeIN+9;
else
f6+=changeIN;
}
if (f7>0)
{
if ((f7+changeIN)<=0)
f7+=changeIN+9;
else
f7+=changeIN;
}
if (f8>0)
{
if ((f8+changeIN)<=0)
f8+=changeIN+9;
else
f8+=changeIN;
}
}

if (choiceIN=='g')
{
if (g1>0)
{
if ((g1+changeIN)<=0)
g1+=changeIN+9;
else
g1+=changeIN;
}
if (g2>0)
{
if ((g2+changeIN)<=0)
g2+=changeIN+9;
else
g2+=changeIN;
}
if (g3>0)
{
if ((g3+changeIN)<=0)
g3+=changeIN+9;
else
g3+=changeIN;
}
if (g4>0)
{
if ((g4+changeIN)<=0)
g4+=changeIN+9;
else
g4+=changeIN;
}
if (g5>0)
{
if ((g5+changeIN)<=0)
g5+=changeIN+9;
else
g5+=changeIN;
}
if (g6>0)
{
if ((g6+changeIN)<=0)
g6+=changeIN+9;
else
g6+=changeIN;
}
if (g7>0)
{
if ((g7+changeIN)<=0)
g7+=changeIN+9;
else
g7+=changeIN;
}
if (g8>0)
{
if ((g8+changeIN)<=0)
g8+=changeIN+9;
else
g8+=changeIN;
}
}

if (choiceIN=='h')
{
if (h1>0)
{
if ((h1+changeIN)<=0)
h1+=changeIN+9;
else
h1+=changeIN;
}
if (h2>0)
{
if ((h2+changeIN)<=0)
h2+=changeIN+9;
else
h2+=changeIN;
}
if (h3>0)
{
if ((h3+changeIN)<=0)
h3+=changeIN+9;
else
h3+=changeIN;
}
if (h4>0)
{
if ((h4+changeIN)<=0)
h4+=changeIN+9;
else
h4+=changeIN;
}
if (h5>0)
{
if ((h5+changeIN)<=0)
h5+=changeIN+9;
else
h5+=changeIN;
}
if (h6>0)
{
if ((h6+changeIN)<=0)
h6+=changeIN+9;
else
h6+=changeIN;
}
if (h7>0)
{
if ((h7+changeIN)<=0)
h7+=changeIN+9;
else
h7+=changeIN;
}
if (h8>0)
{
if ((h8+changeIN)<=0)
h8+=changeIN+9;
else
h8+=changeIN;
}

}

if (choiceIN=='i')
{
if (a1>0)
{
if ((a1+changeIN)<=0)
a1+=changeIN+9;
else
a1+=changeIN;
}
if (b1>0)
{
if ((b1+changeIN)<=0)
b1+=changeIN+9;
else
b1+=changeIN;
}
if (c1>0)
{
if ((c1+changeIN)<=0)
c1+=changeIN+9;
else
c1+=changeIN;
}
if (d1>0)
{
if ((d1+changeIN)<=0)
d1+=changeIN+9;
else
d1+=changeIN;
}
if (e1>0)
{
if ((e1+changeIN)<=0)
e1+=changeIN+9;
else
e1+=changeIN;
}
if (f1>0)
{
if ((f1+changeIN)<=0)
f1+=changeIN+9;
else
f1+=changeIN;
}
if (g1>0)
{
if ((g1+changeIN)<=0)
g1+=changeIN+9;
else
g1+=changeIN;
}
if (h1>0)
{
if ((h1+changeIN)<=0)
h1+=changeIN+9;
else
h1+=changeIN;
}

}

if (choiceIN=='j')
{
if (a2>0)
{
if ((a2+changeIN)<=0)
a2+=changeIN+9;
else
a2+=changeIN;
}
if (b2>0)
{
if ((b2+changeIN)<=0)
b2+=changeIN+9;
else
b2+=changeIN;
}
if (c2>0)
{
if ((c2+changeIN)<=0)
c2+=changeIN+9;
else
c2+=changeIN;
}
if (d2>0)
{
if ((d2+changeIN)<=0)
d2+=changeIN+9;
else
d2+=changeIN;
}
if (e2>0)
{
if ((e2+changeIN)<=0)
e2+=changeIN+9;
else
e2+=changeIN;
}
if (f2>0)
{
if ((f2+changeIN)<=0)
f2+=changeIN+9;
else
f2+=changeIN;
}
if (g2>0)
{
if ((g2+changeIN)<=0)
g2+=changeIN+9;
else
g2+=changeIN;
}
if (h2>0)
{
if ((h2+changeIN)<=0)
h2+=changeIN+9;
else
h2+=changeIN;
}

}

if (choiceIN=='k')
{
if (a3>0)
{
if ((a3+changeIN)<=0)
a3+=changeIN+9;
else
a3+=changeIN;
}
if (b3>0)
{
if ((b3+changeIN)<=0)
b3+=changeIN+9;
else
b3+=changeIN;
}
if (c3>0)
{
if ((c3+changeIN)<=0)
c3+=changeIN+9;
else
c3+=changeIN;
}
if (d3>0)
{
if ((d3+changeIN)<=0)
d3+=changeIN+9;
else
d3+=changeIN;
}
if (e3>0)
{
if ((e3+changeIN)<=0)
e3+=changeIN+9;
else
e3+=changeIN;
}
if (f3>0)
{
if ((f3+changeIN)<=0)
f3+=changeIN+9;
else
f3+=changeIN;
}
if (g3>0)
{
if ((g3+changeIN)<=0)
g3+=changeIN+9;
else
g3+=changeIN;
}
if (h3>0)
{
if ((h3+changeIN)<=0)
h3+=changeIN+9;
else
h3+=changeIN;
}

}

if (choiceIN=='l')
{
if (a4>0)
{
if ((a4+changeIN)<=0)
a4+=changeIN+9;
else
a4+=changeIN;
}
if (b4>0)
{
if ((b4+changeIN)<=0)
b4+=changeIN+9;
else
b4+=changeIN;
}
if (c4>0)
{
if ((c4+changeIN)<=0)
c4+=changeIN+9;
else
c4+=changeIN;
}
if (d4>0)
{
if ((d4+changeIN)<=0)
d4+=changeIN+9;
else
d4+=changeIN;
}
if (e4>0)
{
if ((e4+changeIN)<=0)
e4+=changeIN+9;
else
e4+=changeIN;
}
if (h4>0)
{
if ((h4+changeIN)<=0)
h4+=changeIN+9;
else
h4+=changeIN;
}
if (f4>0)
{
if ((f4+changeIN)<=0)
f4+=changeIN+9;
else
f4+=changeIN;
}
if (g4>0)
{
if ((g4+changeIN)<=0)
g4+=changeIN+9;
else
g4+=changeIN;
}

}

if (choiceIN=='m')
{
if (a5>0)
{
if ((a5+changeIN)<=0)
a5+=changeIN+9;
else
a5+=changeIN;
}
if (b5>0)
{
if ((b5+changeIN)<=0)
b5+=changeIN+9;
else
b5+=changeIN;
}
if (c5>0)
{
if ((c5+changeIN)<=0)
c5+=changeIN+9;
else
c5+=changeIN;
}
if (d5>0)
{
if ((d5+changeIN)<=0)
d5+=changeIN+9;
else
d5+=changeIN;
}
if (e5>0)
{
if ((e5+changeIN)<=0)
e5+=changeIN+9;
else
e5+=changeIN;
}
if (f5>0)
{
if ((f5+changeIN)<=0)
f5+=changeIN+9;
else
f5+=changeIN;
}
if (g5>0)
{
if ((g5+changeIN)<=0)
g5+=changeIN+9;
else
g5+=changeIN;
}
if (h5>0)
{
if ((h5+changeIN)<=0)
h5+=changeIN+9;
else
h5+=changeIN;
}

}

if (choiceIN=='n')
{
if (a6>0)
{
if ((a6+changeIN)<=0)
a6+=changeIN+9;
else
a6+=changeIN;
}
if (b6>0)
{
if ((b6+changeIN)<=0)
b6+=changeIN+9;
else
b6+=changeIN;
}
if (c6>0)
{
if ((c6+changeIN)<=0)
c6+=changeIN+9;
else
c6+=changeIN;
}
if (d6>0)
{
if ((d6+changeIN)<=0)
d6+=changeIN+9;
else
d6+=changeIN;
}
if (e6>0)
{
if ((e6+changeIN)<=0)
e6+=changeIN+9;
else
e6+=changeIN;
}
if (f6>0)
{
if ((f6+changeIN)<=0)
f6+=changeIN+9;
else
f6+=changeIN;
}
if (g6>0)
{
if ((g6+changeIN)<=0)
g6+=changeIN+9;
else
g6+=changeIN;
}
if (h6>0)
{
if ((h6+changeIN)<=0)
h6+=changeIN+9;
else
h6+=changeIN;
}

}

if (choiceIN=='o')
{
if (a7>0)
{
if ((a7+changeIN)<=0)
a7+=changeIN+9;
else
a7+=changeIN;
}
if (b7>0)
{
if ((b7+changeIN)<=0)
b7+=changeIN+9;
else
b7+=changeIN;
}
if (c7>0)
{
if ((c7+changeIN)<=0)
c7+=changeIN+9;
else
c7+=changeIN;
}
if (d7>0)
{
if ((d7+changeIN)<=0)
d7+=changeIN+9;
else
d7+=changeIN;
}
if (e7>0)
{
if ((e7+changeIN)<=0)
e7+=changeIN+9;
else
e7+=changeIN;
}
if (f7>0)
{
if ((f7+changeIN)<=0)
f7+=changeIN+9;
else
f7+=changeIN;
}
if (g7>0)
{
if ((g7+changeIN)<=0)
g7+=changeIN+9;
else
g7+=changeIN;
}
if (h7>0)
{
if ((h7+changeIN)<=0)
h7+=changeIN+9;
else
h7+=changeIN;
}

}

if (choiceIN=='p')
{
if (a8>0)
{
if ((a8+changeIN)<=0)
a8+=changeIN+9;
else
a8+=changeIN;
}
if (b8>0)
{
if ((b8+changeIN)<=0)
b8+=changeIN+9;
else
b8+=changeIN;
}
if (c8>0)
{
if ((c8+changeIN)<=0)
c8+=changeIN+9;
else
c8+=changeIN;
}
if (d8>0)
{
if ((d8+changeIN)<=0)
d8+=changeIN+9;
else
d8+=changeIN;
}
if (e8>0)
{
if ((e8+changeIN)<=0)
e8+=changeIN+9;
else
e8+=changeIN;
}
if (f8>0)
{
if ((f8+changeIN)<=0)
f8+=changeIN+9;
else
f8+=changeIN;
}
if (g8>0)
{
if ((g8+changeIN)<=0)
g8+=changeIN+9;
else
g8+=changeIN;
}
if (h8>0)
{
if ((h8+changeIN)<=0)
h8+=changeIN+9;
else
h8+=changeIN;
}

}

// Search for 3-sets

if (a1==a2 && a2==a3)
{
xa1=0;
xa2=0;
xa3=0;
earn+=pow(a3,3);
}

if (a4==a2 && a2==a3)
{
xa4=0;
xa2=0;
xa3=0;
earn+=pow(a3,3);
}

if (a4==a5 && a5==a3)
{
xa4=0;
xa5=0;
xa3=0;
earn+=pow(a3,3);
}

if (a4==a5 && a5==a6)
{
xa4=0;
xa5=0;
xa6=0;
earn+=pow(a6,3);
}
if (a7==a5 && a5==a6)
{
xa7=0;
xa5=0;
xa6=0;
earn+=pow(a6,3);
}

if (a7==a8 && a8==a6)
{
xa7=0;
xa8=0;
xa6=0;
earn+=pow(a6,3);
}

if (b1==b2 && b2==b3)
{
xb1=0;
xb2=0;
xb3=0;
earn+=pow(b3,3);
}

if (b4==b2 && b2==b3)
{
xb4=0;
xb2=0;
xb3=0;
earn+=pow(b3,3);
}

if (b4==b5 && b5==b3)
{
xb4=0;
xb5=0;
xb3=0;
earn+=pow(b3,3);
}

if (b4==b5 && b5==b6)
{
xb4=0;
xb5=0;
xb6=0;
earn+=pow(b6,3);
}

if (b7==b5 && b5==b6)
{
xb7=0;
xb5=0;
xb6=0;
earn+=pow(b6,3);
}

if (b7==b8 && b8==b6)
{
xb7=0;
xb8=0;
xb6=0;
earn+=pow(b6,3);
}

if (c1==c2 && c2==c3)
{
xc1=0;
xc2=0;
xc3=0;
earn+=pow(c3,3);
}

if (c4==c2 && c2==c3)
{
xc4=0;
xc2=0;
xc3=0;
earn+=pow(c3,3);
}

if (c4==c5 && c5==c3)
{
xc4=0;
xc5=0;
xc3=0;
earn+=pow(c3,3);
}

if (c4==c5 && c5==c6)
{
xc4=0;
xc5=0;
xc6=0;
earn+=pow(c6,3);
}

if (c7==c5 && c5==c6)
{
xc7=0;
xc5=0;
xc6=0;
earn+=pow(c6,3);
}

if (c7==c8 && c8==c6)
{
xc7=0;
xc8=0;
xc6=0;
earn+=pow(c6,3);
}

if (d1==d2 && d2==d3)
{
xd1=0;
xd2=0;
xd3=0;
earn+=pow(d3,3);
}

if (d4==d2 && d2==d3)
{
xd4=0;
xd2=0;
xd3=0;
earn+=pow(d3,3);
}

if (d4==d5 && d5==d3)
{
xd4=0;
xd5=0;
xd3=0;
earn+=pow(d3,3);
}

if (d4==d5 && d5==d6)
{
xd4=0;
xd5=0;
xd6=0;
earn+=pow(d6,3);
}

if (d7==d5 && d5==d6)
{
xd7=0;
xd5=0;
xd6=0;
earn+=pow(d6,3);
}

if (d7==d8 && d8==d6)
{
xd7=0;
xd8=0;
xd6=0;
earn+=pow(d6,3);
}

if (e1==e2 && e2==e3)
{
xe1=0;
xe2=0;
xe3=0;
earn+=pow(e3,3);
}

if (e4==e2 && e2==e3)
{
xe4=0;
xe2=0;
xe3=0;
earn+=pow(a3,3);
}

if (e4==e5 && e5==e3)
{
xe4=0;
xe5=0;
xe3=0;
earn+=pow(e3,3);
}

if (e4==e5 && e5==e6)
{
xe4=0;
xe5=0;
xe6=0;
earn+=pow(e6,3);
}

if (e7==e5 && e5==e6)
{
xe7=0;
xe5=0;
xe6=0;
earn+=pow(e6,3);
}

if (e7==e8 && e8==e6)
{
xe7=0;
xe8=0;
xe6=0;
earn+=pow(e6,3);
}

if (f1==f2 && f2==f3)
{
xf1=0;
xf2=0;
xf3=0;
earn+=pow(f3,3);
}

if (f4==f2 && f2==f3)
{
xf4=0;
xf2=0;
xf3=0;
earn+=pow(f3,3);
}

if (f4==f5 && f5==f3)
{
xf4=0;
xf5=0;
xf3=0;
earn+=pow(f3,3);
}

if (f4==f5 && f5==f6)
{
xf4=0;
xf5=0;
xf6=0;
earn+=pow(f6,3);
}

if (f7==f5 && f5==f6)
{
xf7=0;
xf5=0;
xf6=0;
earn+=pow(f6,3);
}

if (f7==f8 && f8==f6)
{
xf7=0;
xf8=0;
xf6=0;
earn+=pow(f6,3);
}

if (g1==g2 && g2==g3)
{
xg1=0;
xg2=0;
xg3=0;
earn+=pow(g3,3);
}

if (g4==g2 && g2==g3)
{
xg4=0;
xg2=0;
xg3=0;
earn+=pow(g3,3);
}

if (g4==g5 && g5==g3)
{
xg4=0;
xg5=0;
xg3=0;
earn+=pow(g3,3);
}

if (g4==g5 && g5==g6)
{
xg4=0;
xg5=0;
xg6=0;
earn+=pow(g6,3);
}

if (g7==g5 && g5==g6)
{
xg7=0;
xg5=0;
xg6=0;
earn+=pow(g6,3);
}

if (g7==g8 && g8==g6)
{
xg7=0;
xg8=0;
xg6=0;
earn+=pow(g6,3);
}

if (h1==h2 && h2==h3)
{
xh1=0;
xh2=0;
xh3=0;
earn+=pow(h3,3);
}

if (h4==h2 && h2==h3)
{
xh4=0;
xh2=0;
xh3=0;
earn+=pow(h3,3);
}

if (h4==h5 && h5==h3)
{
xh4=0;
xh5=0;
xh3=0;
earn+=pow(h3,3);
}

if (h4==h5 && h5==h6)
{
xh4=0;
xh5=0;
xh6=0;
earn+=pow(h6,3);
}

if (h7==h5 && h5==h6)
{
xh7=0;
xh5=0;
xh6=0;
earn+=pow(h6,3);
}

if (h7==h8 && h8==h6)
{
xh7=0;
xh8=0;
xh6=0;
earn+=pow(h6,3);
}

if (a1==b1 && b1==c1)
{
xa1=0;
xb1=0;
xc1=0;
earn+=pow(a3,3);
}

if (d1==b1 && b1==c1)
{
xd1=0;
xb1=0;
xc1=0;
earn+=pow(d1,3);
}

if (d1==e1 && e1==c1)
{
xd1=0;
xe1=0;
xc1=0;
earn+=pow(c1,3);
}

if (d1==e1 && e1==f1)
{
xd1=0;
xe1=0;
xf1=0;
earn+=pow(f1,3);
}

if (g1==e1 && e1==f1)
{
xg1=0;
xe1=0;
xf1=0;
earn+=pow(f1,3);
}

if (g1==h1 && h1==f1)
{
xg1=0;
xh1=0;
xf1=0;
earn+=pow(f1,3);
}

if (a2==b2 && b2==c2)
{
xa2=0;
xb2=0;
xc2=0;
earn+=pow(b2,3);
}

if (d2==b2 && b2==c2)
{
xd2=0;
xb2=0;
xc2=0;
earn+=pow(b2,3);
}

if (d2==e2 && e2==c2)
{
xd2=0;
xe2=0;
xc2=0;
earn+=pow(e2,3);
}

if (d2==e2 && e2==f2)
{
xd2=0;
xe2=0;
xf2=0;
earn+=pow(e2,3);
}

if (g2==e2 && e2==f2)
{
xg2=0;
xe2=0;
xf2=0;
earn+=pow(f2,3);
}

if (g2==h2 && h2==f2)
{
xg2=0;
xh2=0;
xf2=0;
earn+=pow(f2,3);
}

if (a3==b3 && b3==c3)
{
xa3=0;
xb3=0;
xc3=0;
earn+=pow(a3,3);
}

if (d3==b3 && b3==c3)
{
xd3=0;
xb3=0;
xc3=0;
earn+=pow(b3,3);
}

if (d3==e3 && e3==c3)
{
xd3=0;
xe3=0;
xc3=0;
earn+=pow(c3,3);
}

if (d3==e3 && e3==f3)
{
xd3=0;
xe3=0;
xf3=0;
earn+=pow(d3,3);
}

if (g3==e3 && e3==f3)
{
xg3=0;
xe3=0;
xf3=0;
earn+=pow(e3,3);
}

if (g3==h3 && h3==f3)
{
xg3=0;
xh3=0;
xf3=0;
earn+=pow(f3,3);
}

if (a4==b4 && b4==c4)
{
xa4=0;
xb4=0;
xc4=0;
earn+=pow(a4,3);
}

if (d4==b4 && b4==c4)
{
xd4=0;
xb4=0;
xc4=0;
earn+=pow(b4,3);
}

if (d4==e4 && e4==c4)
{
xd4=0;
xe4=0;
xc4=0;
earn+=pow(e4,3);
}

if (d4==e4 && e4==f4)
{
xd4=0;
xe4=0;
xf4=0;
earn+=pow(d4,3);
}

if (g4==e4 && e4==f4)
{
xg4=0;
xe4=0;
xf4=0;
earn+=pow(g4,3);
}

if (g4==h4 && h4==f4)
{
xg4=0;
xh4=0;
xf4=0;
earn+=pow(h4,3);
}

if (a5==b5 && b5==c5)
{
xa5=0;
xb5=0;
xc5=0;
earn+=pow(a5,3);
}

if (d5==b5 && b5==c5)
{
xd5=0;
xb5=0;
xc5=0;
earn+=pow(d5,3);
}

if (d5==e5 && e5==c5)
{
xd5=0;
xe5=0;
xc5=0;
earn+=pow(e5,3);
}

if (d5==e5 && e5==f5)
{
xd5=0;
xe5=0;
xf5=0;
earn+=pow(f5,3);
}

if (g5==e5 && e5==f5)
{
xg5=0;
xe5=0;
xf5=0;
earn+=pow(g5,3);
}

if (g5==h5 && h5==f5)
{
xg5=0;
xh5=0;
xf5=0;
earn+=pow(g5,3);
}

if (a6==b6 && b6==c6)
{
xa6=0;
xb6=0;
xc6=0;
earn+=pow(a6,3);
}

if (d6==b6 && b6==c6)
{
xd6=0;
xb6=0;
xc6=0;
earn+=pow(d6,3);
}

if (d6==e6 && e6==c6)
{
xd6=0;
xe6=0;
xc6=0;
earn+=pow(c6,3);
}

if (d6==e6 && e6==f6)
{
xd6=0;
xe6=0;
xf6=0;
earn+=pow(f6,3);
}

if (g6==e6 && e6==f6)
{
xg6=0;
xe6=0;
xf6=0;
earn+=pow(g6,3);
}

if (g6==h6 && h6==f6)
{
xg6=0;
xh6=0;
xf6=0;
earn+=pow(h6,3);
}

if (a7==b7 && b7==c7)
{
xa7=0;
xb7=0;
xc7=0;
earn+=pow(a7,3);
}

if (d7==b7 && b7==c7)
{
xd7=0;
xb7=0;
xc7=0;
earn+=pow(d7,3);
}

if (d7==e7 && e7==c7)
{
xd7=0;
xe7=0;
xc7=0;
earn+=pow(e7,3);
}

if (d7==e7 && e7==f7)
{
xd7=0;
xe7=0;
xf7=0;
earn+=pow(f7,3);
}

if (g7==e7 && e7==f7)
{
xg7=0;
xe7=0;
xf7=0;
earn+=pow(f7,3);
}

if (g7==h7 && h7==f7)
{
xg7=0;
xh7=0;
xf7=0;
earn+=pow(f7,3);
}

if (a8==b8 && b8==c8)
{
xa8=0;
xb8=0;
xc8=0;
earn+=pow(a8,3);
}

if (d8==b8 && b8==c8)
{
xd8=0;
xb8=0;
xc8=0;
earn+=pow(b8,3);
}

if (d8==e8 && e8==c8)
{
xd8=0;
xe8=0;
xc8=0;
earn+=pow(e8,3);
}

if (d8==e8 && e8==f8)
{
xd8=0;
xe8=0;
xf8=0;
earn+=pow(d8,3);
}

if (g8==e8 && e8==f8)
{
xg8=0;
xe8=0;
xf8=0;
earn+=pow(g8,3);
}

if (g8==h8 && h8==f8)
{
xg8=0;
xh8=0;
xf8=0;
earn+=pow(f8,3);
}

// Check for high numbers
if (a1>9)
a1-=9;
if (a2>9)
a2-=9;
if (a3>9)
a3-=9;
if (a4>9)
a4-=9;
if (a5>9)
a5-=9;
if (a6>9)
a6-=9;
if (a7>9)
a7-=9;
if (a8>9)
a8-=9;
if (b1>9)
b1-=9;
if (b2>9)
b2-=9;
if (b3>9)
b3-=9;
if (b4>9)
b4-=9;
if (b5>9)
b5-=9;
if (b6>9)
b6-=9;
if (b7>9)
b7-=9;
if (b8>9)
b8-=9;
if (d1>9)
d1-=9;
if (d2>9)
d2-=9;
if (d3>9)
d3-=9;
if (d4>9)
d4-=9;
if (d5>9)
d5-=9;
if (d6>9)
d6-=9;
if (d7>9)
d7-=9;
if (d8>9)
d8-=9;
if (c1>9)
c1-=9;
if (c2>9)
c2-=9;
if (c3>9)
c3-=9;
if (c4>9)
c4-=9;
if (c5>9)
c5-=9;
if (c6>9)
c6-=9;
if (c7>9)
c7-=9;
if (c8>9)
c8-=9;
if (e1>9)
e1-=9;
if (e2>9)
e2-=9;
if (e3>9)
e3-=9;
if (e4>9)
e4-=9;
if (e5>9)
e5-=9;
if (e6>9)
e6-=9;
if (e7>9)
e7-=9;
if (e8>9)
e8-=9;
if (f1>9)
f1-=9;
if (f2>9)
f2-=9;
if (f3>9)
f3-=9;
if (f4>9)
f4-=9;
if (f5>9)
f5-=9;
if (f6>9)
f6-=9;
if (f7>9)
f7-=9;
if (f8>9)
f8-=9;
if (g1>9)
g1-=9;
if (g2>9)
g2-=9;
if (g3>9)
g3-=9;
if (g4>9)
g4-=9;
if (g5>9)
g5-=9;
if (g6>9)
g6-=9;
if (g7>9)
g7-=9;
if (g8>9)
g8-=9;
if (h1>9)
h1-=9;
if (h2>9)
h2-=9;
if (h3>9)
h3-=9;
if (h4>9)
h4-=9;
if (h5>9)
h5-=9;
if (h6>9)
h6-=9;
if (h7>9)
h7-=9;
if (h8>9)
h8-=9;

// Reset :: Zero
if (xa1==0)
a1=0;
if (xa2==0)
a2=0;
if (xa3==0)
a3=0;
if (xa4==0)
a4=0;
if (xa5==0)
a5=0;
if (xa6==0)
a6=0;
if (xa7==0)
a7=0;
if (xa8==0)
a8=0;
if (xb1==0)
b1=0;
if (xb2==0)
b2=0;
if (xb3==0)
b3=0;
if (xb4==0)
b4=0;
if (xb5==0)
b5=0;
if (xb6==0)
b6=0;
if (xb7==0)
b7=0;
if (xb8==0)
b8=0;
if (xc1==0)
c1=0;
if (xc2==0)
c2=0;
if (xc3==0)
c3=0;
if (xc4==0)
c4=0;
if (xc5==0)
c5=0;
if (xc6==0)
c6=0;
if (xc7==0)
c7=0;
if (xc8==0)
c8=0;
if (xd1==0)
d1=0;
if (xd2==0)
d2=0;
if (xd3==0)
d3=0;
if (xd4==0)
d4=0;
if (xd5==0)
d5=0;
if (xd6==0)
d6=0;
if (xd7==0)
d7=0;
if (xd8==0)
d8=0;
if (xe1==0)
e1=0;
if (xe2==0)
e2=0;
if (xe3==0)
e3=0;
if (xe4==0)
e4=0;
if (xe5==0)
e5=0;
if (xe6==0)
e6=0;
if (xe7==0)
e7=0;
if (xe8==0)
e8=0;
if (xf1==0)
f1=0;
if (xf2==0)
f2=0;
if (xf3==0)
f3=0;
if (xf4==0)
f4=0;
if (xf5==0)
f5=0;
if (xf6==0)
f6=0;
if (xf7==0)
f7=0;
if (xf8==0)
f8=0;
if (xg1==0)
g1=0;
if (xg2==0)
g2=0;
if (xg3==0)
g3=0;
if (xg4==0)
g4=0;
if (xg5==0)
g5=0;
if (xg6==0)
g6=0;
if (xg7==0)
g7=0;
if (xg8==0)
g8=0;
if (xh1==0)
h1=0;
if (xh2==0)
h2=0;
if (xh3==0)
h3=0;
if (xh4==0)
h4=0;
if (xh5==0)
h5=0;
if (xh6==0)
h6=0;
if (xh7==0)
h7=0;
if (xh8==0)
h8=0;

if (changeIN==0)
penalty=9999;

}

// Game Over?

if (ultima==0)
{
cout<<endl<<endl<<"Congratulations!";
cout<<endl<<"You have defeated the Matrix."<<endl<<endl;
cout<<"Total manipulation this round:"<<endl;
cout<<" NET  ABSOLUTE"<<endl;
if (stat>0)
cout<<"+";
if (stat==0)
cout<<" ";
if (stat<0)
cout<<"-";
cout<<stat;
cout<<absolutestat;
getch();
}

// Surrender!

if (choiceIN=='X')
{
cout<<endl<<endl<<endl<<endl<<"You have been conquered"<<endl;
cout<<"by the Matrix. Try again."<<endl<<endl;
getch();
}
}