Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- // o - 79
- // x - 88
- int funkcijaokomito(char **mat,int mati,int matj,int pobjeda, char prvi, int n, char *pobjednik){
- int brojacX = 0, brojacO = 0;
- for (int i=0; i<matj; i++){
- for (int j=0; j<mati; j++){
- if (mat[j][i] == 'X'){
- brojacX++;
- if (brojacX == pobjeda){
- n = 1;
- break;
- }
- }
- if (mat[j][i] == 'O'){
- brojacO++;
- if (brojacO == pobjeda){
- n = 1;
- break;
- }
- }
- }
- if(brojacO == brojacX && brojacO == pobjeda){
- *pobjednik = prvi;
- break;
- }
- else if (brojacO == pobjeda){
- *pobjednik = 'O';
- break;
- }
- else if(brojacX == pobjeda){
- *pobjednik = 'X';
- break;
- } else{
- n = 5;
- }
- brojacO = 0;
- brojacX = 0;
- }
- return n;
- }
- int funkcijavodoravno(char **mat, int mati, int matj,int pobjeda, char prvi, int n, char *pobjednik){
- int brojacX = 0, brojacO = 0;
- for (int i=0; i<mati; i++){
- for (int j=0; j<matj; j++){
- if (mat[i][j] == 'X'){
- brojacX++;
- if (brojacX == pobjeda){
- n = 1;
- break;
- }
- }
- if (mat[i][j] == 'O'){
- brojacO++;
- if (brojacO == pobjeda){
- n = 1;
- break;
- }
- }
- }
- if(brojacO == brojacX && brojacO == pobjeda){
- *pobjednik = prvi;
- break;
- }
- else if (brojacO == pobjeda){
- *pobjednik = 'O';
- break;
- }
- else if(brojacX == pobjeda){
- *pobjednik = 'X';
- break;
- } else{
- n = 5;
- }
- brojacX = 0;
- brojacO = 0;
- }
- return n;
- }
- int main()
- {
- int n = 2;
- int mati, matj;
- do {
- scanf("%dx%d", &mati, &matj);
- if (mati<3 || matj<3 || mati>10 || matj>10){
- printf("Nedozvoljena dimenzija polja!\n");
- }
- }while (mati<3 || matj<3 || mati>10 || matj>10);
- char** mat;
- int pobjeda;
- scanf("%d", &pobjeda);
- char prvi;
- scanf(" %c", &prvi);
- char niz[2] = {'X', 'O'};
- if (prvi=='O'){
- niz[0] = 'O';
- niz [1] = 'X';
- }
- mat = (char**)calloc(mati,sizeof(char*));
- for (int i=0; i<mati; i++){
- mat[i] = (char*)calloc(matj,sizeof(char));
- for (int j=0; j<matj; j++){
- mat[i][j] = '-';
- printf("%2c", mat[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- char pobjednik = prvi;
- int korxp, koryp, korxd, koryd;
- do {
- scanf("%d %d", &korxp, &koryp);
- scanf("%d %d", &korxd, &koryd);
- mat[korxp-1][koryp-1] = niz[0];
- mat[korxd-1][koryd-1] = niz[1];
- for (int i=0; i<mati; i++){
- for (int j=0; j<matj; j++){
- printf("%2c", mat[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- n = funkcijaokomito( mat, mati, matj, pobjeda, prvi, n, &pobjednik);
- if (n == 5){
- n = funkcijavodoravno (mat, mati, matj, pobjeda, prvi, n, &pobjednik);
- }
- }while (n != 1);
- printf("Pobjednik je igrac %c!", pobjednik);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement