Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int a[12];
- int n, sum1 = 0, sum2 = 0;
- bool n1 = true, n2 = false,kt;
- bool king1 = true, king2 = true;
- void clearScreen() {
- system("cls");
- }
- int sum_r()
- {
- int sum = 0;
- while ( (n<11 && a[n] == 0 && a[n+1] != 0) || ( n == 11 && a[1] != 0))
- {
- if ( n == 5) king2 = false;
- if ( n< 11)
- {
- sum += a[n+1];
- a[n+1] = 0;
- }
- if ( n < 10) n += 2;
- else if ( n == 10 ) n = 0;
- else
- { king1 = false;
- sum += a[0];
- a[0] = 0;
- n = 1;
- }
- }
- return sum;
- }
- int sum_l()
- {
- int sum = 0;
- while ( (n>0 && a[n] == 0 && a[n-1] != 0)|| ( n == 0 && a[11] != 0))
- {
- if ( n == 7) king2 = false;
- if ( n> 1)
- {
- sum += a[n-1];
- a[n-1] = 0;
- n -= 2;
- }
- else if ( n == 1 )
- {
- king1 = false;
- sum += a[0];
- a[0] = 0;
- n = 11;
- }
- else {
- sum += a[11];
- a[11] = 0;
- n = 10;
- }
- }
- return sum;
- }
- void update()
- {
- kt = false;
- if ( n1 )
- {
- for ( int i =1; i< 6; i++)
- if ( a[i]> 0)
- {
- kt = true;
- break;
- }
- if ( !kt )
- {
- for ( int i =1; i< 6; i++)
- a[i] ++;
- sum1 -= 5;
- }
- }
- if ( n2 )
- {
- for ( int i =7; i< 12; i++)
- if ( a[i]> 0)
- {
- kt = true;
- break;
- }
- if ( !kt )
- {
- for ( int i =7; i< 12; i++)
- a[i] ++;
- sum2 -= 5;
- }
- }
- }
- bool check ()
- {
- if (a[n] >0 && n != 0 && n!=6 ) return true;
- if ( (n == 0) && (king1 == false) && a[n] > 0 ) return true;
- if ( n == 0 && king1 == true && a[n]> 10) return true;
- if ( n == 6 && king2 == true && a[n]> 10) return true;
- if ( (n == 6) && (king2 == false) && a[n] > 0) return true;
- return false;
- }
- void di_p()
- {
- int s;
- if ( n == 6 || n == 0) s = 1;
- else
- s = a[n];
- int x = s / 12;
- if ( x> 0)
- {
- for ( int i = 0; i< 12; i++)
- if ( i != n ) a[i] += x;
- s -= 12*x;
- }
- if ( s + n < 12)
- {
- for ( int i = n+1; i<= n+ s; i++)
- a[i] ++;
- if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
- else a[n] = x;
- n = n + s + 1;
- if ( n == 12 ) n = 0;
- }
- else
- {
- for ( int i = n+1; i<12; i++)
- a[i]++;
- s -= (11 - n);
- for ( int i = 0; i< s; i++)
- a[i]++;
- if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
- else a[n] = x;
- n = s;
- if ( n == 12) n =0;
- }
- }
- void di_t()
- {
- int s;
- if ( n == 6 || n == 0) s = 1;
- else s = a[n];
- int x = s / 12;
- if ( x> 0)
- {
- for ( int i = 0; i< 12; i++)
- if ( i != n ) a[i] += x;
- s -= 12*x;
- }
- if ( n - s >= 0)
- {
- for ( int i = n-1; i>= n- s; i--)
- a[i] ++;
- if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
- else a[n] = x;
- n = n - s - 1;
- if ( n == -1 ) n = 11;
- }
- else
- {
- for ( int i = n-1; i>= 0; i--)
- a[i]++;
- s -= n;
- for ( int i = 11; i> 11 - s; i--)
- a[i]++;
- if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
- else a[n] = x;
- n = 11- s;
- }
- }
- void xuat()
- {
- for ( int i =0; i< 6; i++)
- cout<< a[i]<< '\t';
- cout<< endl<< '\t';
- for ( int i =11; i>5 ; i--)
- cout<< a[i]<<'\t';
- cout<< endl;
- }
- int main()
- {
- cout<< "Position:"<< endl;
- for ( int i =0; i< 6; i++)
- cout<< i << '\t';
- cout<< endl<< '\t';
- for ( int i =11; i>5 ; i--)
- cout<< i <<'\t';
- cout<< endl<< endl<< endl;
- for ( int i =0; i< 12; i++)
- a[i] =5;
- a[0] = 10, a[6] = 10;
- xuat();
- while ( a[0] > 0 || a[6] > 0)
- {
- if ( n1 ) cout<< "Player 1 chooses the number: ";
- else cout<< "Player 2 chooses the number: ";
- cin>> n;
- char huong;
- cout<< endl<< "left = l & right = r: ";
- cin>> huong;
- clearScreen();
- while ( check())
- {
- if ( n1 )
- {
- if ( huong == 'l' ) di_t ();
- else di_p();
- xuat();
- }
- else
- {
- if ( huong == 'l' ) di_p();
- else di_t();
- xuat();
- }
- }
- if ( a[n] == 0) {
- if ( n1)
- {
- if ( huong == 'l' )
- {
- sum1 += sum_l();
- }
- else
- {
- sum1 += sum_r();
- }
- }
- else{
- if ( huong == 'r')
- {
- sum2 += sum_l();
- }
- else
- {
- sum2 += sum_r();
- }
- }
- }
- if ( n1)
- {
- n1 = false;
- n2 = true;
- }
- else {
- n2 = false;
- n1 = true;
- }
- update();
- cout<< "Score of player 1: "<< sum1<< '\t'<< "Score of player 2: "<< sum2<< endl;
- cout<< endl;
- xuat();
- }
- if ( sum1 > sum2 ) cout<< "Player 1 wins !!!";
- else if ( sum1 < sum2) cout<< "Player 2 wins!!!";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement