All pastes #44596 Raw Edit

Marius

public cpp v1 · immutable
#44596 ·published 2006-03-05 21:59 UTC
rendered paste body
#include <iostream>#include <conio.h>//#include <stdio.h>#include <stdlib.h>using namespace std;#define BALTA 2;#define JUODA 1;class lenta{	int **sp;	int spalva;	int kirtimai;	int tikrinam(int, int);	int kertam(int, int);	int einam(int, int);public:	lenta();	~lenta();	void rodom();	int ejimas();	void keist_spalva() {if(spalva == 2) spalva = 1; else spalva = 2;}};lenta::lenta() {	sp = new int* [8];	spalva = 1;	kirtimai = 0;	for(int i = 0; i < 8; i++)		sp[i] = new int [8];	for(int i = 0; i < 8; i += 2){		sp[0][i] = 0;		sp[0][i+1] = 1;		sp[1][i] = 1;		sp[1][i+1] = 0;		sp[2][i] = 0;		sp[2][i+1] = 1;		sp[3][i] = 0;		sp[3][i+1] = 0;		sp[4][i] = 0;		sp[4][i+1] = 0;		sp[5][i] = 2;		sp[5][i+1] = 0;		sp[6][i] = 0;		sp[6][i+1] = 2;		sp[7][i] = 2;		sp[7][i+1] = 0; 	}}void lenta::rodom() {	cout << "   ";	for(char i = 'A'; i <= 'H'; i++)		cout << i << ' ';	cout << endl;	cout << ' ' << char(201);	for(int i = 0; i < 17; i++)		cout << char(205);	cout << char(187) << endl;	for(int i = 0; i < 8; i++){		cout << i+1 << char(186) << ' ';		for(int j = 0; j < 8; j++) {			switch(sp[i][j]) {				case 1 : 					cout << char(1);					break;				case 2 :					cout << char(2);					break;				default :					cout << char(177);			}			if(j < 7) 				cout << char(177);			else				cout << ' ';		}		cout << char(186);		cout << endl;	}	cout << ' ' << char(200);	for(int i = 0; i < 17; i++)		cout << char(205);	cout << char(188) << endl;}int lenta::ejimas() {	for(int i = 0; i < 8; i++)		for(int j = 0; j < 8; j++)			if(sp[i][j] == spalva)				if(tikrinam(i, j))					return 1;	for(int i = 0; i < 8; i++)		for(int j = 0; j < 8; j++)			if(sp[i][j] == spalva)				if(einam(i, j))					return 1;	return 0;}int lenta::tikrinam(int i, int j) {	if(spalva == 1) {		if((i < 6) && (j < 6))			if((sp[i+1][j+1] == 2) && (sp[i+2][j+2] == 0)) {			/*	kirtimai++;				if(tikrinam(i+2, j+2))					kirtimai++;*/				sp[i][j] = 0;				sp[i+1][j+1] = 0;				sp[i+2][j+2] = spalva;				tikrinam(i+2, j+2);				return 1;			}		if((i < 6) && (j > 1))			if((sp[i+1][j-1] == 2) && (sp[i+2][j-2] == 0)) {				sp[i][j] = 0;				sp[i+1][j-1] = 0;				sp[i+2][j-2] = spalva;				tikrinam(1+2, j-2);				return 1;			}	}	if(spalva == 2) {		if((i > 1) && (j > 1))			if((sp[i-1][j-1] == 1) && (sp[i-2][j-2] == 0)) {				sp[i][j] = 0;				sp[i-1][j-1] = 0;				sp[i-2][j-2] = spalva;				tikrinam(i-2, j-2);				return 1;			}		if((i > 1) && (j < 6))			if((sp[i-1][j+1] == 1) && (sp[i-2][j+2] == 0)) {				sp[i][j] = 0;				sp[i-1][j+1] = 0;				sp[i-2][j+2] = spalva;				tikrinam(i-2, j+2);				return 1;			}	}	return 0;}int lenta::einam(int i, int j) {	if(spalva == 1) {		if((i < 7) && (j < 7))			if(sp[i+1][j+1] == 0) {				sp[i][j] = 0;				sp[i+1][j+1] = spalva;				return 1;			}		if((i < 7) && (j > 0))			if(sp[i+1][j-1] == 0) {				sp[i][j] = 0;				sp[i+1][j-1] = spalva;				return 1;			}	}	if(spalva == 2) {		if((i > 0) && (j > 0))			if(sp[i-1][j-1] == 0) {				sp[i][j] = 0;				sp[i-1][j-1] = spalva;				return 1;			}		if((i > 0) && (j < 7))			if(sp[i-1][j+1] == 0) {				sp[i][j] = 0;				sp[i-1][j+1] = spalva;				return 1;			}	}	return 0;}lenta::~lenta() {	for(int i = 0; i < 8; i++)		delete [] sp[i];	delete [] sp;}int main(){	int a, spalva;	lenta s1;	s1.rodom();	while((a = _getch()) != 27)		if(a == 13) {			if(s1.ejimas()) {				s1.keist_spalva();				system("CLS");				s1.rodom();			}		}}