Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int ruchy = 0, pionki_1 = 12, pionki_2 = 12;
- void drukowanie_planszy(char tablica[8][8]);
- int main()
- {
- char nick1[11], nick2[11], array[8][8];
- int check_nicks = 0, i, j, k, a;
- while(1){
- printf("Podaj nick pierwszego gracza:");
- scanf("%10s", nick1);
- while((a = getchar()) != '\n' && a != EOF){}
- printf("Podaj nick drugiego gracza:");
- scanf("%10s", nick2);
- check_nicks = strcmp(nick1, nick2);
- if(check_nicks != 0){
- break;
- }
- else {
- printf("Bledne dane\n");
- }
- }
- for(i = 0; i < 8; i++){
- if(i == 0 || i == 2){
- for(k = 0; k < 8; k+=2){
- array[i][k+1] = 'o';
- array[i][k] = ' ';
- }
- }
- if(i == 1){
- for(k = 0; k < 8; k+=2){
- array[i][k] = 'o';
- array[i][k+1] = ' ';
- }
- }
- if(i == 5 || i == 7){
- for(k = 0; k < 8; k+=2){
- array[i][k] = 'x';
- array[i][k+1] = ' ';
- }
- }
- if(i == 6){
- for(k = 0; k < 8; k+=2){
- array[i][k+1] = 'x';
- array[i][k] = ' ';
- }
- }
- if(i == 3 || i == 4){
- for(k = 0; k < 8; k++){
- array[i][k] = ' ';
- }
- }
- }
- drukowanie_planszy(array);
- char kolumna1, kolumna2;
- char columns[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
- int wiersz1, wiersz2, blad1 = 0, blad2 = 0;
- while(1){
- if(ruchy == 0){
- printf("Teraz ruch bialych czyli %-10s\n", nick1);
- }
- if(ruchy == 1){
- printf("Teraz ruch czarnych czyli %-10s\n", nick2);
- }
- printf("Podaj na jakie pole chcesz sie ruszyc (lewy dolny rog to a1):");
- int check_field = scanf(" %c%d %c%d", &kolumna1, &wiersz1, &kolumna2, &wiersz2);
- while((a = getchar()) != '\n' && a != EOF){}
- for(i = 0; i < 8; i++){
- if(kolumna1 == columns[i]){
- break;
- }
- if(i == 7){
- blad1++;
- }
- }
- for(i = 0; i < 8; i++){
- if(kolumna2 == columns[i]){
- break;
- }
- if(i == 7){
- blad2++;
- }
- }
- if(wiersz1 > 8 || wiersz1 < 1 || wiersz2 > 8 || wiersz2 < 1 || blad1 == 1 || blad2 == 1 || check_field != 4){
- printf("Podaj prawidlowe dane\n");
- continue;
- }
- kolumna1 -= 'a';
- kolumna2 -= 'a';
- wiersz1 = 8 - wiersz1;
- wiersz2 = 8 - wiersz2;
- if(ruchy == 0){
- if(array[wiersz1][kolumna1] == 'o'){
- if(array[wiersz2][kolumna2] == ' '){
- if(wiersz2 - wiersz1 == 1 && abs(kolumna1 - kolumna2) == 1){
- array[wiersz1][kolumna1] = ' ';
- array[wiersz2][kolumna2] = 'o';
- ruchy = !ruchy;
- if(wiersz2 == 7){
- array[wiersz2][kolumna2] = 'O';
- }
- }
- if(abs(wiersz1 - wiersz2) == 2 && abs(kolumna1 - kolumna2) == 2){
- if(array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'x' || array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'X'){
- array[wiersz1][kolumna1] = ' ';
- array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] = ' ';
- array[wiersz2][kolumna2] = 'o';
- ruchy = !ruchy;
- pionki_2--;
- if(wiersz2 == 7){
- array[wiersz2][kolumna2] = 'O';
- }
- }
- }
- }
- }
- if(array[wiersz1][kolumna1] == 'O'){
- if(array[wiersz2][kolumna2] == ' '){
- if(abs(wiersz2 - wiersz1) == 1 && abs(kolumna1 - kolumna2) == 1){
- array[wiersz1][kolumna1] = ' ';
- array[wiersz2][kolumna2] = 'O';
- ruchy = !ruchy;
- }
- if(abs(wiersz1 - wiersz2) == 2 && abs(kolumna1 - kolumna2) == 2){
- if(array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'x' || array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'X'){
- array[wiersz1][kolumna1] = ' ';
- array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] = ' ';
- array[wiersz2][kolumna2] = 'O';
- ruchy = !ruchy;
- pionki_2--;
- }
- }
- if(abs(wiersz1 - wiersz2) > 2 && abs(kolumna1 - kolumna2) > 2 && abs(kolumna1 - kolumna2) == abs(wiersz1 - wiersz2)){
- int licznik_petli, licznik_pionkow = 0, kolumna_zbitego = 0, wiersz_zbitego = 0;
- if(wiersz1 - wiersz2 > 0 && kolumna1 - kolumna2 > 0){
- for(licznik_petli = 1; licznik_petli < wiersz1 - wiersz2; licznik_petli++){
- if(array[wiersz1-licznik_petli][kolumna1-licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1-licznik_petli][kolumna1-licznik_petli] == 'x' || array[wiersz1-licznik_petli][kolumna1-licznik_petli] == 'X'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1-licznik_petli;
- wiersz_zbitego = wiersz1-licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(wiersz1 - wiersz2 > 0 && kolumna1 - kolumna2 < 0){
- for(licznik_petli = 1; licznik_petli < wiersz1 - wiersz2; licznik_petli++){
- if(array[wiersz1-licznik_petli][kolumna1+licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1-licznik_petli][kolumna1+licznik_petli] == 'x' || array[wiersz1-licznik_petli][kolumna1+licznik_petli] == 'X'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1+licznik_petli;
- wiersz_zbitego = wiersz1-licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(wiersz1 - wiersz2 < 0 && kolumna1 - kolumna2 > 0){
- for(licznik_petli = 1; licznik_petli < kolumna1 - kolumna2; licznik_petli++){
- if(array[wiersz1+licznik_petli][kolumna1-licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1+licznik_petli][kolumna1-licznik_petli] == 'x' || array[wiersz1+licznik_petli][kolumna1-licznik_petli] == 'X'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1-licznik_petli;
- wiersz_zbitego = wiersz1+licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(wiersz1 - wiersz2 < 0 && kolumna1 - kolumna2 < 0){
- for(licznik_petli = 1; licznik_petli < -1*(wiersz1 - wiersz2); licznik_petli++){
- if(array[wiersz1+licznik_petli][kolumna1+licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1+licznik_petli][kolumna1+licznik_petli] == 'x' || array[wiersz1+licznik_petli][kolumna1+licznik_petli] == 'X'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1+licznik_petli;
- wiersz_zbitego = wiersz1+licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(licznik_pionkow == 0){
- array[wiersz2][kolumna2] = 'O';
- array[wiersz1][kolumna1] = ' ';
- ruchy = !ruchy;
- }
- if(licznik_pionkow == 1){
- array[wiersz2][kolumna2] = 'O';
- array[wiersz_zbitego][kolumna_zbitego] = ' ';
- pionki_2--;
- array[wiersz1][kolumna1] = ' ';
- ruchy = !ruchy;
- }
- }
- }
- }
- }
- if(ruchy == 1){
- if(array[wiersz1][kolumna1] == 'x'){
- if(array[wiersz2][kolumna2] == ' '){
- if(wiersz1 - wiersz2 == 1 && abs(kolumna1 - kolumna2) == 1){
- array[wiersz1][kolumna1] = ' ';
- array[wiersz2][kolumna2] = 'x';
- ruchy = !ruchy;
- if(wiersz2 == 0){
- array[wiersz2][kolumna2] = 'X';
- }
- }
- if(abs(wiersz1 - wiersz2) == 2 && abs(kolumna1 - kolumna2) == 2){
- if(array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'o' || array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'O'){
- array[wiersz1][kolumna1] = ' ';
- array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] = ' ';
- array[wiersz2][kolumna2] = 'x';
- ruchy = !ruchy;
- pionki_1--;
- if(wiersz2 == 0){
- array[wiersz2][kolumna2] = 'X';
- }
- }
- }
- }
- }
- if(array[wiersz1][kolumna1] == 'X'){
- if(array[wiersz2][kolumna2] == ' '){
- if(abs(wiersz1 - wiersz2) == 1 && abs(kolumna1 - kolumna2) == 1){
- array[wiersz1][kolumna1] = ' ';
- array[wiersz2][kolumna2] = 'X';
- ruchy = !ruchy;
- }
- if(abs(wiersz1 - wiersz2) == 2 && abs(kolumna1 - kolumna2) == 2){
- if(array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'o' || array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] == 'O'){
- array[wiersz1][kolumna1] = ' ';
- array[(wiersz2+wiersz1)/2][(kolumna1+kolumna2)/2] = ' ';
- array[wiersz2][kolumna2] = 'X';
- ruchy = !ruchy;
- pionki_1--;
- }
- else{
- array[wiersz2][kolumna2] = 'X';
- ruchy = !ruchy;
- }
- }
- if(abs(wiersz1 - wiersz2) > 2 && abs(kolumna1 - kolumna2) > 2 && abs(kolumna1 - kolumna2) == abs(wiersz1 - wiersz2)){
- int licznik_petli, licznik_pionkow = 0, kolumna_zbitego = 0, wiersz_zbitego = 0;
- if(wiersz1 - wiersz2 > 0 && kolumna1 - kolumna2 > 0){
- for(licznik_petli = 1; licznik_petli < wiersz1 - wiersz2; licznik_petli++){
- if(array[wiersz1-licznik_petli][kolumna1-licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1-licznik_petli][kolumna1-licznik_petli] == 'o' || array[wiersz1-licznik_petli][kolumna1-licznik_petli] == 'O'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1-licznik_petli;
- wiersz_zbitego = wiersz1-licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(wiersz1 - wiersz2 > 0 && kolumna1 - kolumna2 < 0){
- for(licznik_petli = 1; licznik_petli < wiersz1 - wiersz2; licznik_petli++){
- if(array[wiersz1-licznik_petli][kolumna1+licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1-licznik_petli][kolumna1+licznik_petli] == 'o' || array[wiersz1-licznik_petli][kolumna1+licznik_petli] == 'O'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1+licznik_petli;
- wiersz_zbitego = wiersz1-licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(wiersz1 - wiersz2 < 0 && kolumna1 - kolumna2 > 0){
- for(licznik_petli = 1; licznik_petli < kolumna1 - kolumna2; licznik_petli++){
- if(array[wiersz1+licznik_petli][kolumna1-licznik_petli] == ' '){
- continue;
- }
- else if(array[wiersz1+licznik_petli][kolumna1-licznik_petli] == 'o' || array[wiersz1+licznik_petli][kolumna1-licznik_petli] == 'O'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1-licznik_petli;
- wiersz_zbitego = wiersz1+licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(wiersz1 - wiersz2 < 0 && kolumna1 - kolumna2 < 0){
- for(licznik_petli = 1; licznik_petli < -1*(wiersz1 - wiersz2); licznik_petli++){
- if(array[wiersz1+licznik_petli][kolumna1+licznik_petli] == ' '){
- continue;
- }
- if(array[wiersz1+licznik_petli][kolumna1+licznik_petli] == 'o' || array[wiersz1+licznik_petli][kolumna1+licznik_petli] == 'O'){
- licznik_pionkow++;
- kolumna_zbitego = kolumna1+licznik_petli;
- wiersz_zbitego = wiersz1+licznik_petli;
- }
- else{
- licznik_pionkow=2;
- }
- }
- }
- if(licznik_pionkow == 0){
- array[wiersz2][kolumna2] = 'X';
- array[wiersz1][kolumna1] = ' ';
- ruchy = !ruchy;
- }
- if(licznik_pionkow == 1){
- array[wiersz2][kolumna2] = 'X';
- array[wiersz_zbitego][kolumna_zbitego] = ' ';
- pionki_1--;
- array[wiersz1][kolumna1] = ' ';
- ruchy = !ruchy;
- }
- }
- }
- }
- }
- else{
- printf("Nieprawidlowy ruch!\n");
- continue;
- }
- if(pionki_1 == 0){
- printf("%-10s jest zwyciezca tej gry!\nKoniec gry!", nick2);
- break;
- }
- if(pionki_2 == 0){
- printf("%-10s jest zwyciezca tej gry!\nKoniec gry!", nick1);
- break;
- }
- drukowanie_planszy(array);
- }
- return 0;
- }
- void drukowanie_planszy(char tablica[8][8]){
- int i, j, k;
- for(i = 0; i < 8; i++){
- for(j = 0; j <= 7; j++){
- printf("| %c ", tablica[i][j]);
- }
- printf("|\n");
- for(k = 0; k <=32; k++){
- printf("-");
- }
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement