Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <stdio.h>
- #include <locale.h>
- #include <conio.h>
- #include <time.h>
- #include <string.h>
- int main()
- { system("color 97");
- setlocale(LC_ALL, "rus");
- printf("\t\tПриветвую вас в моих недошашках\n\n");
- printf("Чтобы вернутся к выбору шашки введите(777), без скобок\n");
- int tmp, tmp1, i, j, ww = 0, bb = 0, t1, t2, m1, m2, f = 1, mm1, mm2, wf=0, bf=0, z=0;
- char a[9][9];
- int back;
- for (i = 0; i < 9; i++)
- {
- for (j = 0; j < 9; j++)
- {
- a[i][j] = 0;
- }
- }
- for (i = 1; i < 9; i++)
- {
- if (i % 2 == 0)
- a[1][i] = 1;
- }
- for (i = 1; i < 9; i++)
- {
- if (i % 2 != 0)
- a[2][i] = 1;
- }
- for (i = 1; i < 9; i++)
- {
- if (i % 2 == 0)
- a[3][i] = 1;
- }
- for (i = 1; i < 9; i++)
- {
- if (i % 2 != 0)
- a[8][i] = 3;
- }
- for (i = 1; i < 9; i++)
- {
- if (i % 2 == 0)
- a[7][i] = 3;
- }
- for (i = 1; i < 9; i++)
- {
- if (i % 2 != 0)
- a[6][i] = 3;
- }
- for (i = 0; i < 9; i++)
- a[0][i] = i;
- for (i = 0; i < 9; i++)
- a[i][0] = i;
- for (i = 0; i < 9; i++)
- {
- printf("\n\t\t");
- for (j = 0; j < 9; j++)
- {
- printf("%3d", a[i][j]);
- }
- printf("\n");
- }
- do
- {
- ww = 0;
- bb = 0;
- vibor:
- {
- printf("\nВыберите шашку (введите число в в формате (x y), без скобок\n");
- scanf_s("%d", &t1);
- scanf_s("%d", &t2);
- if ((a[t2][t1] == 0 || ((t1 == 0 || t2 == 0) && (t1 + t2) <= 8)) || (t1>9 || t2>9))
- {
- printf("Тут нет шашки");
- goto vibor;
- }
- }
- if((a[t2][t1]==3 || a[t2][t1]==4) && ((bf>wf) || (bf==0 && wf==0)))
- {
- wf++;
- goto hod;
- }
- if((a[t2][t1]==3 || a[t2][t1]==4) && (bf<wf))
- {
- printf("Сейчас ход белых(1 и 2)");
- goto vibor;
- }
- if((a[t2][t1]==1 || a[t2][t1]==2) && (bf<wf))
- {
- bf++;
- goto hod;
- }
- if((a[t2][t1]==1 || a[t2][t1]==2) && (bf>wf))
- {
- printf("Сейчас ход черных(3 и 4)");
- goto vibor;
- }
- hod:
- {
- printf("Выберите позицию (введите число в в формате (x y), без скобок\n");
- scanf_s("%d", &m1);
- scanf_s("%d", &m2);
- if (m1 == 777)
- goto vibor;
- if (((m1 == 0 || m2 == 0) && (m1 + m2) <= 8) || (m1 > 9 || m2 > 9) || (m1 == t1 && m2 == t2) || a[m2][m1]!=0)
- {
- printf("Неверная позиция\n");
- goto hod;
- }
- }
- mm1 = m1;
- mm2 = m2;
- tmp = a[m2][m1];
- if(m1-t1==0|| t1-m1==0 || m2-t2==0 || t2-m2==0)
- {
- printf("Неверная позиция\n");
- goto hod;
- }
- else
- {
- if (m1 - t1 == 1 || t1 - m1 == 1 || a[t2][t1] == 2 || a[t2][t1] == 4)
- {
- if (a[t2][t1] == 2 || a[t2][t1] == 4)
- {
- a[m2][m1] = a[t2][t1];
- a[t2][t1] = 0;
- }
- if ((m2 == 1 || m2 == 8) && (a[m2][m1] == 1 || a[m2][m1] == 3))
- {
- tmp = a[m2][m1];
- tmp1 = (tmp = tmp + 1);
- a[m2][m1] = tmp1;
- }
- a[m2][m1] = a[t2][t1];
- a[t2][t1] = 0;
- }
- else
- {
- if ((abs(m2 - t2)) >= 2 || (abs(m1 - t1)) >= 2)
- {
- tmp = a[t2][t1];
- a[t2][t1] = 0;
- if ((m1 > t1) && (m2 < t2))
- a[m2 + 1][m1 - 1] = 0;
- if ((m1 < t1) && (m2 < t2))
- a[m2 + 1][m1 + 1] = 0;
- if ((m1 > t1) && (m2 < t2))
- a[m2 + 1][m1 - 1] = 0;
- if ((m1 < t1) && (m2 > t2))
- a[m2 - 1][m1 + 1] = 0;
- a[m2][m1] = tmp;
- }
- }
- }
- konec:
- {
- for (i = 0; i < 9; i++)
- {
- printf("\n\t\t");
- for (j = 0; j < 9; j++)
- {
- printf("%2d ", a[i][j]);
- if (a[i][j] == 1 || a[i][j] == 2)
- ww++;
- if (a[i][j] == 3 || a[i][j] == 4)
- bb++;
- }
- printf("\n");
- }
- if (ww == 2)
- {
- printf("!!!Победа черных!!!\n\n\t ___\n\t|^ ^|\n\t| ~ |\n\t ---\n");
- break;
- }
- if (bb == 2)
- {
- printf("!!!Победа белых!!!\n\n\t ___\n\t|^ ^|\n\t| ~ |\n\t ---\n");
- break;
- }
- }
- } while (f == 1);
- system("pause>void");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment