Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Dev-C++ 5.4.2, Marcin Komor AiR 149067,
- #include <iostream>
- #include <cstdlib>
- #include <iomanip>
- #include <time.h>
- #include <vector>
- using namespace std;
- const int n=6;
- const int m=6;
- void wyczysc (char plansza[n][m])
- {
- int i,j;
- for (i=0; i<n; i++){
- for (j=0; j<m; j++){
- plansza[i][j]=0;
- }
- }
- }
- void wypisz (char plansza[n][m])
- {
- for(int i=0; i<n; i++){
- for(int j=0; j<m; j++){
- cout<<setw(6)<<"+-----";
- plansza[i][j];
- }
- static int y=y++;// wtf?
- // dodalem
- cout<<"+"<< i <<endl;
- // wypisywanie kolejnych komorek w poziomie
- for(int x=0; x<2; x++){
- for(int k=0; k<m; k++){
- if (plansza[i][k])
- {
- cout<<"| ### ";
- }
- else
- {
- cout<<"| ";
- }
- }
- cout<<"|" <<endl;
- }
- } cout<<"+-----+-----+-----+-----+-----+-----+"<<endl;
- for(int z=0; z<m; z++){
- cout<<" "<< z << setw(5);
- }
- cout<<endl<<endl;
- }
- void ruch_komputera (char plansza[n][m]){
- int i,j;
- while(1){
- i=rand()%n;
- j=rand()%m;
- if (plansza[i][j]== 0)
- {
- plansza[i][j]= 1;
- return;
- }
- }//komputer ma wstawiac kamienie w losowe miejsca
- }
- // deklaracja
- int sprawdzenie (char plansza[n][m], char g);
- void ruch_gracza (char gracz, char plansza[n][m]) {
- int wiersz;
- int kolumna;
- int wynik = 0;
- int wynik_komputera = 0;
- // nie wiem czy ta funkcja ma wczytywac w petli ? czy jak
- while(1)
- {
- cout << "Wynik: " << wynik << " Wynik komputera: " << wynik_komputera << "\n";
- cout << "GraczA podaj wiersz i kolumne:\n";
- cin >> wiersz >> kolumna;
- // dodac sprawdzanie czy >0
- if (wiersz>=n || kolumna >=m)
- {
- cout << "NIe ma takiego pola\n";
- // nalezy podjac jakies dzialania w tym przypadku ?
- continue;
- }
- if (plansza[wiersz][kolumna])
- {
- cout << "Podane pole jest juz zajete\n";
- // nalezy podjac jakies dzialania w tym przypadku ?
- continue;
- }
- // w przypadku prawidlowych pozycji
- plansza[wiersz][kolumna]=1;
- wynik =+ sprawdzenie(plansza, 0);
- ruch_komputera(plansza);
- wynik_komputera =+ sprawdzenie(plansza, 0);
- // wypisywanie planszy od nowa
- system("cls");
- wypisz(plansza);
- }
- }
- int sprawdzenie (char plansza[n][m], char g)
- {
- int idukladu= 0;
- static vector<int> ruchy_wykonane;
- // Sprawdzamy 3 w rzedzie
- for(int i=0; i<n; i++) {
- for(int j=0; j<m; j++){
- // korzystanie z leniwej ewaluacji w celu unikniecia wyjscia poza indeks tablicy
- if ((i>=0 && (i+2)<n && j>=0 && j<m && (plansza[i][j] != 0) && (plansza[i+1][j] != 0) && (plansza[i+2][j] != 0)) ||
- (i>=0 && i<n && j>=0 && (j+2)<m && (plansza[i][j] != 0) && (plansza[i][j+1] != 0) && (plansza[i][j+2] != 0)) ||
- (i>=0 && (i+1)<n && j>=0 && (j+1)<m && (plansza[i][j] != 0) && (plansza[i+1][j+1] != 0) && (plansza[i+2][j+2] != 0)) ||
- (i>1 && i<n && j>0 && (j+2)<m && (plansza[i][j] != 0) && (plansza[i-1][j+1] != 0) && (plansza[i-2][j+2] != 0)))
- {
- // dla szostek 0 zastapic 1
- int id_ruchu = 1 + j + i *256 + 0*256*256;
- bool ruch_juz_byl = false;
- for(int n=0; n<ruchy_wykonane.size(); n++)
- {
- if (ruchy_wykonane[n] == id_ruchu)
- {
- ruch_juz_byl = true;
- break;
- }
- }
- if (ruch_juz_byl)
- continue;
- ruchy_wykonane.push_back(id_ruchu);
- return 1;
- }
- }
- }
- return 0;
- // zrobic analogicznie do trojek
- // Sprawdzamy 6 w rzedzie
- for(int i=1; i<n; i++) {
- for(int j=1; j<m; j++){
- if (((plansza[i][j] != 0) && (plansza[i+1][j] != 0) && (plansza[i+2][j] != 0) && (plansza[i+3][j] != 0) && (plansza[i+4][j] != 0) && (plansza[i+5][j] != 0)) ||
- ((plansza[i][j] != 0) && (plansza[i][j+1] != 0) && (plansza[i][j+2] != 0) && (plansza[i][j+3] != 0) && (plansza[i][j+4] != 0) && (plansza[i][j+5] != 0)) ||
- ((plansza[i][j] != 0) && (plansza[i+1][j+1] != 0) && (plansza[i+2][j+2] != 0) && (plansza[i+3][j+3] != 0) && (plansza[i+4][j+4] != 0) && (plansza[i+5][j+5] != 0)) ||
- ((plansza[i][j] != 0) && (plansza[i-1][j+1] != 0) && (plansza[i-2][j+2] != 0) && (plansza[i-3][j+3] != 0) && (plansza[i-4][j+4] != 0) && (plansza[i-5][j+5] != 0))
- )
- {
- // bla bla do doribenia
- return 10;
- }
- //wynik2= wynik2+2;
- //return wynik2;
- }
- }
- return 0;
- }
- int main() {
- char plansza[n][m];
- char g;
- srand(time(NULL));
- cout<<"Gra w Kamienie ;)"<<endl;
- cout<<"=================="<<endl<<endl;
- wyczysc(plansza);
- wypisz(plansza);
- ruch_gracza(0, plansza);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement