Форум программистов, компьютерный форум CyberForum.ru

Игра в НИМ (доработать код) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу для нахождения суммы http://www.cyberforum.ru/cpp-beginners/thread733846.html
Здравствуйте! Помогите написать парочку программ... 1. Составить блок-схему и программу нахождения суммы удвоенных чётных чисел в интервале от 15 до 90.
C++ Найти максимальный элемент в каждой строке матрицы Дана прямоугольная матрица. Найти максимальный элемент в каждой строке. Сформировать массив из найденных элементов. http://www.cyberforum.ru/cpp-beginners/thread733815.html
C++ Проблемы с компиляцией
Фрумчане помогите ! Программа работает, но выдает ошибки при компиляции. Не могу понять что не так... Вот код. #include <iostream> #include <cmath> #include <math.h> #include <stdlib.h> #include <time.h> #include <iomanip> using namespace std;
Найти точки перегиба на графике C++
Доброго времени суток! У меня есть программа, которая строит график по числам из массива.(пример графика ниже). Мне нужно находить на графиках точки перегибов. Как это можно делать не имею ни малейшего понятия. Надеюсь на вашу помощь. Заранее спасибо!
C++ Найти количество компонент графа http://www.cyberforum.ru/cpp-beginners/thread733803.html
доброго времени суток, мне нужна ваша помоч.. задано множество пар вершин, соответствующих ребрам простого графа. определить связный граф. если бессвязный, то найти количество его компонент. (с записью в файл) помогите пожалуйста
C++ Не могу запустить ассемблерную вставку на c++ Вставка находит скалярное произведение двух векторов, помогите запустить __asm { movaps xmm0, xmmword ptr // 0 | A.z | A.y | A.x movaps xmm1, xmmword ptr // 0 | B.z | B.y | B.x mulps xmm0, xmm1 // 0 | A.z*B.z | A.y*B.y | A.x*B.x movhlps xmm1, xmm0 // ? | ? | 0 | A.z*B.z unpcklps xmm0, xmm0 // A.y*B.y | A.y*B.y |... подробнее

Показать сообщение отдельно
lena13
2 / 2 / 0
Регистрация: 04.11.2012
Сообщений: 40

Игра в НИМ (доработать код) - C++

16.12.2012, 15:39. Просмотров 370. Ответов 0
Метки (Все метки)

Игра в НИМ. Правила игры:
1. В начале игры в каждой из n кучек находится отличное от 0 количество каких – то предметов (например, спички);
2. два игрока ходят по очереди. За один ход разрешается взять любое, отличное от 0 количество предметов из
любой кучки;
Выигрывает тот, кто заберет содержимое последней оставшейся кучки.
вот что у меня получилось,помогите сделать,что бы если в последней кучке осталось предметов 5 или меньше,на экран сразу выводился победитель

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
    int N,i,kmax,numplay,numk,kol,*A;
    bool flag1,flag2,flag;
    printf("\n\t\t Igra NIM \n\t\t numeracia kuchek nachinaetsa s 0 \n\t\t iz odnoy kucheki maksimal'no mogno vzyt' 5 predmetov ");
    printf("\nvvedi chislo kuchek - ");
    scanf("%d",&N);
    A=(int*)malloc(N*sizeof(int));
    for (i=0;i<N;i++)
    {
        A[i]=rand()%15;
        printf("%9d",A[i]);
    }
    kmax=5;
    numplay=1;
    flag = true;
    while (flag)
    {
        printf("\n\tigraet igrok %d",numplay);
        flag1=true;
        while (flag1)
        {
            printf("\nnomer kuchki-");
            scanf("%d",&numk);          
            if (numk>=0 && numk<=N-1)
            {
                if (A[numk]>0)
                {
                    flag2=true;
                    while (flag2)
                    {                           
                        if (kmax>=A[numk])
                        {
                            printf("\nvvedi skol'ko vzyt predmetov ot 1 do %d-",A[numk]);
                            scanf("%d",&kol);
                        }
                        else
                        {
                            printf("\nvvedi skol'ko vzyt' predmetov ot 1 do %d-",kmax);
                            scanf("%d",&kol);
                        }
                        if (kol>0 && kol<=kmax && kol<=A[numk])
                        {
                            A[numk]-=kol;
                            flag1=false;
                            flag2=false;
                        }
                        else
                            printf("\nneverno vvedeno chislo");
                     }
                }
                    else
                        printf("\nv dannoy kuchke net predmetov");
                }
            
        }
        flag=false;     
        for(i=0;i< N;i++)
        {
            if(A[i]>0)      
                flag=true;
        }
        if(flag)
        {   
            printf("\n");
            for(i=0;i< N;i++)
             printf("%9d",A[i]);
                    
            if(numplay==1)
                numplay=2;
            else
                numplay=1;
        }
    }
        printf("\nend");
        printf("\n\tpobedil igrok %d",numplay);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru