Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
13 / 13 / 0
Регистрация: 06.10.2010
Сообщений: 23
1

Шахматы

07.10.2010, 00:03. Просмотров 1411. Ответов 2
Метки нет (Все метки)


Ход шахматной фигуры задан в виде: XY-XY, где X - буква (A,B,C,D,E,F,G,H), а Y - цифра (1,2,3,4,5,6,7,8).
Также указывается тип фигуры: K - конь, С - ладья, Q - ферзь, O - офицер.
Определить: является ли указанный ход правильным для заданной фигуры.

Помогите, что здесь не так??? C пропускает ввод scanf("%c", &w); и scanf("%c", &z);


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int main(int argc, char *argv[])
{
    char f, z, w;
    int  flag, x1, x2, y1, y2;
        printf("Viberete figuru (K - kon; C - ladya; Q - fers; O - oficer):  ");
    scanf("%c", &f);    
    scanf("%c", &w);    
    switch(w) {
        case 'A': x1==1; break;
        case 'B': x1==2; break;
        case 'C': x1==3; break;
        case 'D': x1==4; break;
        case 'E': x1==5; break;
        case 'F': x1==6; break;
        case 'G': x1==7; break;
        case 'H': x1==8; break;
    }
        printf("Vvedite  (2 chisla ot 1 do 8):\n");
    scanf("%d", &y1);
           scanf("%c", &z); 
    switch(z) {
        case 'A': x2==1; break;
        case 'B': x2==2; break;
        case 'C': x2==3; break;
        case 'D': x2==4; break;
        case 'E': x2==5; break;
        case 'F': x2==6; break;
        case 'G': x2==7; break;
        case 'H': x2==8; break;
    }
    scanf("%d", &y2);
    switch(f) {
        case 'K':  flag = ((x1==x2-1 && y1==y2-2)||(x1==x2+1 && y1==y2-2)||(x1==x2-1 && y1==y2+2)||(x1==x2+1 && y1==y2+2)||(x1==x2-2 && y1==y2-1)||(x1==x2+2 && y1==y2-1)||(x1==x2-2 && y1==y2+1)||(x1==x2+2 && y1==y2+1));
            break;
        case 'C': flag = (x1==x2 || y1==y2);
            break;
        case 'Q': flag = ((x1==x2 || y1==y2) || (fabs(x1-x2)==fabs(y1-y2)));
            break;
        case 'O': flag = (fabs(x1-x2)==fabs(y1-y2));
            break;
        default: printf("Vi ne vibrali figuru!\n");
        }
    printf("%s\n", (flag)?"Pravilniy hod!":"Nepravilniy hod!!!");
 
    return 0;
}
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2010, 00:03
Ответы с готовыми решениями:

C++ и шахматы.
Дали такое задание по курсовой, не могу понять как написать программу. Помогите пожалуйста. Даны...

Трехцветные шахматы
Решил изобрести трехцветные шахматы - сложную и увлекательную модификацию классических шахмат....

Задача про шахматы на Си
Добрый день всем.по советам начала новую тему.у меня есть задача про шахматы.мне нужны советы от...

2 задачи про шахматы
Добрый день всем.по советам начала новую тему.у меня есть 2 задачи про шахматы.мне нужны советы от...

2
Эксперт С++
5042 / 3103 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
07.10.2010, 01:16 2
У меня ничего не пропускается, всё работает нормально...
0
45 / 45 / 9
Регистрация: 11.04.2010
Сообщений: 223
07.10.2010, 06:39 3
Daniel406, попробуйте
C
1
while(scanf("%c", &w)!=1);
для всех сканфов
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2010, 06:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Игра шахматы на си или с++
Всем большой привет! Мне нужно написать игру на си или си++ решатель шахматных задач, то есть...

Шахматы - определить, корректен ли ход коня
Задание 254. Помогите, пожалуйста, с кодом. Если не трудно, то еще объяснить действия для моего...

Шахматы: определить, бьют ли ладья и король друг друга
Заданы координаты короля и ладьи на шахматной доске. Определить бьют ли фигуры друг друга....

Нужен репититор-помошник для написания консольной игры шахматы на си
Нужно написать консольную игру шахматы, решение задач. Разбираться самому сложно и долго, времени...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.