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
81
82
83
84
85
| #include <locale>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
setlocale(LC_ALL,"Russian");//виводимо на екран російську мову(символи)
int N,i,kmax,numplay,numk,kol,*A;//змінні,які програма буде використовувати
bool flag1,flag2,flag;//true/false
printf("\n\t\t Гра HIМ \n\t\t номерацiя кучек починається з 1\n\t\t з однiєї кучки можна забрати максимально 5 елементiв");//Виводимо на екран повідомлення
printf("\nВедiть кiлькicть кучек - ");//Виводимо на екран повідомлення
scanf("%d",&N);//записуємо в змінну N - кількість кучек
A=(int*)malloc(N*sizeof(int));//масив
for (i=0;i<N;i++)//запускаемо лічильник від 0 до N
{
A[i]=rand()%15;//заповнюємо масив випадковими числами
printf("%9d",A[i]);//виводимо наш масив на екран
}
kmax=5;//максимальна кількість елементів,яку гравець може взяти за один крок
numplay=1;//номер гравця
flag = true;//флажку присвоємо істину
while (flag)//запускаємо цикл,доки флажок = істині виконувати
{
printf("\n\tХiд гравця %d",numplay);//Виводимо на екран повідомлення
flag1=true;//флажку1 присвоємо істину
while (flag1)//запускаємо цикл,доки флажок1 = істині виконувати
{
printf("\nНомер кучки - ");//Виводимо на екран повідомлення
scanf("%d",&numk); //записуем номер кучки з якох ми будемо видалять елементи
numk--;//щоб номерація кучек була від 1
if (numk>=0 && numk<=N-1)//запускаємо лічильник
{
if (A[numk]>0)//якщо наша кучка не порожня
{
flag2=true;//флажку2 присвоємо істину
while (flag2)//запускаємо цикл,доки флажок2 = істині виконувати
{
if (kmax>=A[numk])//якщо в кучці (більше/дорівнює) 5
{
printf("\nНапишiть скiльки взяи елементiв вiд 1 до %d - ",A[numk]);//Виводимо на екран повідомлення
scanf("%d",&kol);//кількість елементів яку потрібно забрати з кучки
}
else//в іншому випадку
{
printf("\nНапишiть скiльки взяти елементiв вiд 1 до %d - ",kmax);//Виводимо на екран повідомлення
scanf("%d",&kol);//кількість елементів яку потрібно забрати з кучки
}
if (kol>0 && kol<=kmax && kol<=A[numk])//якщо користувач написав число,яке не перевишає кількість елементів в кучці
{
A[numk]-=kol;//віднімаємо нашу кількість від вказаної кучки
flag1=false;//флажку1 присвоємо хибу
flag2=false;//флажку2 присвоємо хибу
}
else//в ішному випадку
printf("\nНевiрно");//Виводимо на екран повідомлення
}
}
else//в іншому випадку
printf("\nкучка порожня");//Виводимо на екран повідомлення
}
}
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;//гравець 2
else//в іншому випадку
numplay=1;//гравець 1
}
}
printf("\nКiнець");//Виводимо на екран повідомлення
printf("\n\tпереміг %d",numplay);printf(" гравець!!!!");//Виводимо на екран повідомлення про виграш гравця
printf("\n");system("pause");//пауза + перенесення курсора на наступний рядок
} |