Продолжая знакомить вас с функциями в C++ предлагаем самостоятельно решить несколько задач. Расположены они по уровню сложности.
1. Объявить два целочисленных массива с разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер.
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 | #include <iostream> using namespace std; void fillAndShowArray(int arrayForFilling[], int size); int main() { const int SIZE1 = 8; const int SIZE2 = 14; int arrayForFilling1 [SIZE1] = {}; int arrayForFilling2 [SIZE2] = {}; fillAndShowArray(arrayForFilling1, SIZE1); fillAndShowArray(arrayForFilling2, SIZE2); return 0; } void fillAndShowArray(int arrayForFilling[], int size) { for (int i = 0; i < size; i++) { arrayForFilling[i] = i + 1; cout << arrayForFilling[i] << " "; } cout << endl; } |
В этой задаче удобно то, что если необходимо изменить значение размера массива, достаточно изменить соответствующую константу (SIZE1 или SIZE2). Так нам не придется менять эти значения ни в объявлении массивов, ни в параметрах при вызове функции.
Отдельно хочется сказать о передаче в функцию массива, как параметра. Мы говорили в уроке, что при вызове функции создаются точные копии переменных и все изменения происходят именно с этими копиями, а не с переменными. Так что при выходе из функции, переменные не изменят свое значение. Если всё же надо изменить значение переменных в функции – делается это с помощью ссылок или указателей, которые мы рассмотрим в следующих уроках. С массивами дело обстоит иначе. Все что происходит с элементами массива в функции, сохраняется и после выхода из неё. Это происходит потому, что имя массива – это и есть указатель на его первый элемент.
Когда необходимо передать в функцию одномерный массив, при её определении надо указать пустые [ ] скобки после имени параметра, обозначающего массив. В нашей задаче – void fillAndShowArray(int arrayForFilling[], int size) . Если надо передать двумерный массив – первые квадратные скобки оставляют пустыми, а во вторые надо внести значение. Например void fillAndShowArray(int arrayForFilling[][3], int size)
Чтобы передать в функцию массив, при её вызове – достаточно использовать имя массива. Скобки и размер писать не надо (строки 14 – 15).
2. Необходимо создать двумерный массив 5 х 5. Далее написать функцию, которая заполнит его случайными числами от 30 до 60. Создать еще две функции, которые находят максимальный и минимальный элементы этого двумерного массива. (О генерации случайных чисел есть отдельная статья)
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 | #include <iostream> #include <ctime> #include <cstdlib> using namespace std; const int SIZE = 5; void fillAndShowArray(int[][SIZE], const int size); int findMinElement(int[][SIZE], const int size); int findMaxElement(int[][SIZE], const int size); int main() { setlocale(LC_ALL, "rus"); int matrix[SIZE][SIZE] = {}; fillAndShowArray(matrix, SIZE); //заполняем и показываем массив cout << endl; cout << "Минимум: " << findMinElement(matrix, SIZE) << endl; cout << "Максимум: " << findMaxElement(matrix, SIZE) << endl; return 0; } void fillAndShowArray(int arr[][SIZE], const int size) { for (int i = 0; i < size; i++) { cout << "| "; for (int j = 0; j < size; j++) { arr[i][j] = 30 + rand() % 31; cout << arr[i][j] << " "; } cout << " |" << endl; } } int findMinElement(int arr[][SIZE], const int size) { int min = arr[0][0]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { if (arr[i][j] < min) min = arr[i][j]; } } return min; } int findMaxElement(int arr[][SIZE], const int size) { int max = arr[0][0]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { if (arr[i][j] > max) max = arr[i][j]; } } return max; } |
Чтобы найти минимальное значение в массиве, сначала присваиваем переменной min, которая определена в функции findMinElement(), значение ячейки arr[0][0]: int min = arr[0][0]; . Потом проходим по всем ячейкам двумерного массива. Если встретим значение меньше того, которое было записано в min в начале – перезаписываем эту переменную. Максимальное значение определяется похожим образом.
Программа работает так:
3. Написать игру в которой имитируется бросание кубиков компьютером и пользователем. В игре 2 кубика и на каждом из них может выпасть от 1 до 6 очков. Реализовать определение программой первого ходящего. Каждый делает по четыре броска. После бросков показать, нарисованные символами кубики и количество очков, выпавших на них. После пары бросков (бросок компьютера + бросок пользователя) выводить на экран промежуточный результат – количество набранных очков игроком и компьютером. В конце сообщить о том, кто выиграл по итогам всех бросков.
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | #include <iostream> #include <ctime> #include <cstdlib> using namespace std; bool calcFirstMove(); void drowCube(int res); int computerOrPlayerThrow(); void showIntermediateResult(int pointsOfComputer, int pointsOfUser, int numberThrow); int main() { setlocale(LC_ALL, "rus"); srand(time(NULL)); int playerScore = 0; // для накопления очков int computerScore = 0; int whoMove = 0; char userName[16] = {}; cout << "Ваше имя (латиницей): "; cin >> userName; whoMove = calcFirstMove(); // если будет 0 - ходит игрок, 1 - ходит компьютер for (int i = 0; i < 4; ++i) { for (int j = 0; j < 2; j++) { if (whoMove) { cout << "\nХодишь ты. "; playerScore += computerOrPlayerThrow(); } else { cout << "\nХодит компьютер. "; computerScore += computerOrPlayerThrow(); } whoMove = !whoMove; // инверсия } showIntermediateResult(computerScore, playerScore, i); } if (computerScore > playerScore) { cout << "\n\nПобедитель этой игры - КОМПЬЮТЕР\n!"; cout << "Желаем успехов в следующий раз.\a\a\a\a\a\n\n"; } else if (computerScore < playerScore) { cout << "\n\nПобедитель этой игры - " << userName << "!!! "; cout << "Поздравляем!!!\a\a\a\a\a\n\n"; } else { cout << "\n\nВ этой игре НИЧЬЯ\a\a\a\a\a\n\n"; } return 0; } bool calcFirstMove() // генерирует и возвращает случайное число 0 или 1 { return rand() % 2; } void showIntermediateResult(int computerScore, int playerScore, int numberThrow) { cout << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; cout << "Комп: " << computerScore << " ||| Ты:" << playerScore << endl; cout << "После " << numberThrow + 1 << "-го броска "; if (computerScore > playerScore) cout << " выигрывает компьютер!!!\n"; else if (computerScore < playerScore) cout << " выигрываете Вы!!!\n"; else cout << " ничья!!!\n"; cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"; } // вызывается в функции computerOrPlayerThrow() void drowCube(int res) { switch (res) { case 1: cout << "@@@@@@@\n"; cout << "@@@@@@@\n"; cout << "@@@ @@@\n"; cout << "@@@@@@@\n"; cout << "@@@@@@@\n"; break; case 2: cout << "@@@@@@@\n"; cout << "@ @@@@@\n"; cout << "@@@@@@@\n"; cout << "@@@@@ @\n"; cout << "@@@@@@@\n"; break; case 3: cout << "@@@@@@@\n"; cout << "@ @@@@@\n"; cout << "@@@ @@@\n"; cout << "@@@@@ @\n"; cout << "@@@@@@@\n"; break; case 4: cout << "@@@@@@@\n"; cout << "@ @@@ @\n"; cout << "@@@@@@@\n"; cout << "@ @@@ @\n"; cout << "@@@@@@@\n"; break; case 5: cout << "@@@@@@@\n"; cout << "@ @@@ @\n"; cout << "@@@ @@@\n"; cout << "@ @@@ @\n"; cout << "@@@@@@@\n"; break; case 6: cout << "@@@@@@@\n"; cout << "@ @ @ @\n"; cout << "@@@@@@@\n"; cout << "@ @ @ @\n"; cout << "@@@@@@@\n\n"; break; } } int computerOrPlayerThrow() // реализация броска пары кубиков и возврат полученных очков { int result = 0; char c = 0; cout << "Нажми Y и Enter, чтобы бросить кубики: "; do { cin.sync(); // очистка буфера cin >> c; } while (c != 'y' && c != 'Y'); int tmp = 0; // для накопления очков пары брошенных кубиков for (int i = 0; i < 2; ++i) { tmp = 1 + rand() % 6; drowCube(tmp); result += tmp; cout << endl; } cout << "Всего на кубиках " << result << " очков"; return result; } |
Комментарии к исходному коду: Определяем прототипы в строках 7 – 10. В строке 25 в переменную whoMove запишется случайное число которое вернет функция calcFirstMove(). Для себя определим, что если она вернет 0 – ходит игрок, 1 – ходит компьютер. В строках 27 – 45 находится конструкция вложенных циклов for. Во вложенном цикле (строки 29 – 42) происходит реализация поочередных бросков: учитывается, кто бросает первым, накапливаются очки, подсчитанные функцией computerOrPlayerThrow(). В строке 41 меняется значение переменной whoMove на противоположное, для смены ходящего. Внешний цикл считает количество пар бросков. Так же в нём функция showIntermediateResult() показывает промежуточные результаты.
Определения всех функций находятся в строках 65 – 159. showIntermediateResult() принимает количество очков игрока и компьютера, после каждой пары бросков и выводит промежуточный результат. Так же функция принимает значение счетчика цикла для отображения номера броска.
drowCube() вызывается в функции computerOrPlayerThrow(). Она принимает результат сгенерированного в computerOrPlayerThrow() случайного числа (от 1 до 6) и рисует соответствующий кубик.
computerOrPlayerThrow() предлагает сделать ход. Дважды генерирует число от 1 до 6 и вызывает drowCube() для показа кубиков. Стандартная функция cin.sync() выполняет очистку буфера – если юзер ввел не один символ в предыдущий раз.
Результат:
int Kubiki();
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
int ktp, kub1;
int L = 0, P = 0;
char c;
ktp = rand() % 2;
if (ktp == 0)
{
cout << "Вы бросаете первым! ";
for (int i = 0; i < 4; i++)
{
cout <> c;
L += Kubiki();
L += Kubiki();
cout << "\nИтого у вас " << L << " очка(ов)";
cout << "\n\nХод оппонента: ";
cout <> c;
P += Kubiki();
P += Kubiki();
cout << "\nИтого у противника " << P << " очка(ов)";
}
cout << "\nУ вас " << L <L)
cout << "\nПК победил) Везенья в будущем!:)";
if (P < L)
cout << "\nВы победили, Поздравляем!";
if (P == L)
cout << "\nПобедила Дружба! Бывает же))";
return 0;
}
else
{
cout << "Противник бросает первым! ";
for (int i = 0; i < 4; i++)
{
cout << "\n\nХод оппонента: ";
cout <> c;
P += Kubiki();
P += Kubiki();
cout << "\nИтого у противника " << P << " очка(ов)";
cout <> c;
L += Kubiki();
L += Kubiki();
cout << "\nИтого у вас " << L << " очка(ов)";
}
cout << "\nУ противника " << P < L)
cout << "\nПК победил) Везенья в будущем!:)";
if (P < L)
cout << "\nВы победили, Поздравляем!";
if (P == L)
cout << "\nПобедила Дружба! Бывает же))";
return 0;
}
}
int Kubiki()
{
int kub1 = 1 + rand() % 6;
switch (kub1)
{
case 1:
cout << "\n@@@@@@@\n";
cout << "@@@@@@@\n";
cout << "@@@ @@@\n";
cout << "@@@@@@@\n";
cout << "@@@@@@@\n";
cout << "1 Очко\n";
break;
case 2:
cout << "\n@@@@@@@\n";
cout << "@@@@@ @\n";
cout << "@@@@@@@\n";
cout << "@ @@@@@\n";
cout << "@@@@@@@\n";
cout << "2 Очкa\n";
break;
case 3:
cout << "\n@@@@@@@\n";
cout << "@@@@@ @\n";
cout << "@@@ @@@\n";
cout << "@ @@@@@\n";
cout << "@@@@@@@\n";
cout << "3 Очкa\n";
break;
case 4:
cout << "\n@@@@@@@\n";
cout << "@ @@@ @\n";
cout << "@@@@@@@\n";
cout << "@ @@@ @\n";
cout << "@@@@@@@\n";
cout << "4 Очкa\n";
break;
case 5:
cout << "\n@@@@@@@\n";
cout << "@ @@@ @\n";
cout << "@@@ @@@\n";
cout << "@ @@@ @\n";
cout << "@@@@@@@\n";
cout << "5 Oчей\n";
break;
case 6:
cout << "\n@@@@@@@\n";
cout << "@ @ @ @\n";
cout << "@@@@@@@\n";
cout << "@ @ @ @\n";
cout << "@@@@@@@\n";
cout << "6 Oчей\n";
break;
}
return kub1;
}
Игра в кости
#include
#include
#include
using namespace std;
int ShowResult(int result) // функция вывода символов кубика
{
switch (result)
{
case 1:
cout << "\t\n" << result << " point(s):\n" <<"\t @ \n" << endl; //1
break;
case 2:
cout << "\t\n" << result << " point(s):\n" << "\t@ @\n" << endl; //2
break;
case 3:
cout << "\t\n" << result << " point(s):\n" << "\t @\n\t @\n\t @\n" << endl; //3
break;
case 4:
cout << "\t\n" << result << " point(s):\n" << "\t@ @ \n\t@ @\n " << endl;//4
break;
case 5:
cout << "\t\n" << result << " point(s):\n" << "\t@ @\n \t @\n \t@ @ \n" << endl;//5
break;
case 6:
cout << "\t\n" << result << " point(s):\n" << "\t@ @ \n\t@ @\n\t@ @ \n" < sum_computer)
cout << "Player wins" << endl;
else if (sum_player < sum_computer)
cout << "Computer wins" << endl;
else
cout << "Nobody wins, draw" << endl;
}
int main()
{
srand(time(NULL));
char choice; // переменная для ввода выбора играть в игру или нет
int first_walking; //переменная для определения кто первый ходит
int result; // результат броска кубика
int sum_player = 0; // счетчик очков игрока
int sum_computer = 0; // счетчик очков компьютера
cout << "Welcome" << endl;
line:
cout << "Do you want to start playing?(enter y to srart)" <> choice;
switch (choice) //
{
case ‘y’:
cout << "Game starts" << endl;
break;
case 'n':
goto line;
default:
cout << "Invalid choice" << endl;
goto line;
}
cout << "Who will first roll the dice?" << endl;
cout << "Computer determines" << endl;
for (int i = 0; i < 5; i++)
{
cout << "…" << endl;
}
first_walking = rand() % 2; // определение первого бросающего кубики
if (first_walking == 1) // если первый бросает игрок
{
cout << "You roll the dice first" << endl;
for (int i = 0; i < 4; i++)
{
char choice_dice;
cout << "enter Y to roll the dice" <> choice_dice;
if (choice_dice == ‘Y’)
continue;
for (int i = 0; i < 2; i++)
{
result = 1 + rand() % 6;
cout << "Result of roll the dice of player" << endl;
cout << i + 1 << " cube:" << endl;
ShowResult(result);
sum_player += result;
}
for (int i = 0; i < 2; i++)
{
result = 1 + rand() % 6;
cout << "Result of roll the dice of computer" << endl;
cout << i + 1 << " cube:" << endl;
ShowResult(result);
sum_computer += result;
}
cout << "Sum player = " << sum_player << endl;
cout << "Sum computer = " << sum_computer << endl;
cout << endl;
}
}
else // если первый бросает компьютер
{
cout << "Computer rolls the dice first" << endl;
for (int i = 0; i < 4; i++)
{
for (int i = 0; i < 2; i++)
{
result = 1 + rand() % 6;
cout << "Result of roll the dice of computer" << endl;
cout << i + 1 << " cube:" << endl;
ShowResult(result);
sum_computer += result;
}
char choice_dice;
cout << "enter Y to roll the dice" <> choice_dice;
if (choice_dice == ‘Y’)
continue;
for (int i = 0; i < 2; i++)
{
result = 1 + rand() % 6;
cout << "Result of roll the dice of player" << endl;
cout << i + 1 << " cube:" << endl;
ShowResult(result);
sum_player += result;
}
cout << "Sum computer = " << sum_computer << endl;
cout << "Sum player = " << sum_player << endl;
cout << endl;
}
}
compare(sum_player, sum_computer);
}
#include
#include
#include
using namespace std;
int TwoCube (int arr[],int SIZE)
{
srand(time(NULL));
for (int i = 0; i < SIZE; i++)
{
arr[i] = rand() % 6 + 1;
switch (arr[i])
{
case (1):
cout << "@" << endl;
break;
case (2):
cout << "@ @" << endl;
break;
case(3):
cout << "@ @ @" << endl;
break;
case(4):
cout << "@ @ @ @" << endl;
break;
case(5):
cout << "@ @ @ @ @" << endl;
break;
case(6):
cout << "@ @ @ @ @ @" << endl;
break;
}
}
cout << endl;
return 0;
}
int Sum(int arr[], int SIZE)
{
int sum = 0;
for (int i = 0; i < SIZE; i++)
{
sum += arr[i];
}
return sum;
}
int main()
{
setlocale(LC_ALL, "rus");
int const SIZE = 2;
char choice;
int arr[SIZE];
int arr2[SIZE];
int localSum1, localSum2;
bool restart = true;
do
{
cout << "Вы играете в кубики."<<endl;
cout << "Бросьте кубики первыми" << endl;
cout <> choice;
if (choice == ‘y’)
TwoCube(arr, SIZE);
else
cout << "Отказ не принимается, нажмите \"y\": ";
} while (choice != 'y');
cout << "Бросает компьютер, подождите…" << endl;
Sleep(4000);
cout << "Кубики ударились об стенку и выпало число…" << endl;
Sleep(2000);
TwoCube(arr2, SIZE);
localSum1 = Sum(arr, SIZE);//Твой счёт
localSum2 = Sum(arr2, SIZE);//счёт противника
cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
cout << "Бросьте кубик второй раз." << endl;
cout <> choice;
if (choice == ‘y’)
TwoCube(arr, SIZE);
else
cout << "Отказ не принимается, нажмите \"y\": ";
} while (choice != 'y');
cout << "Бросает компьютер, подождите…" << endl;
Sleep(4000);
cout << "Подождите, компьютер мухлюет" << endl;
Sleep(2000);
TwoCube(arr2, SIZE);
localSum1 += Sum(arr, SIZE);//Твой счёт
localSum2 += Sum(arr2, SIZE);//счёт противника
cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
cout << "Бросьте кубик третий раз." << endl;
cout <> choice;
if (choice == ‘y’)
TwoCube(arr, SIZE);
else
cout << "Отказ не принимается, нажмите \"y\": ";
} while (choice != 'y');
cout << "Бросает компьютер, подождите…" << endl;
Sleep(4000);
cout << "Компьютер злится и ждёт мести" << endl;
Sleep(2000);
TwoCube(arr2, SIZE);
localSum1 += Sum(arr, SIZE);//Твой счёт
localSum2 += Sum(arr2, SIZE);//счёт противника
cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
cout << "Бросьте кубик последний раз." << endl;
cout <> choice;
if (choice == ‘y’)
{
cout << "Кажется кубик куда-то закатился" << endl;
Sleep (3000);
TwoCube(arr, SIZE);
}
else
cout << "Отказ не принимается, нажмите \"y\": ";
} while (choice != 'y');
cout << "Бросает компьютер, подождите…" << endl;
Sleep(4000);
cout << "Взламывает числа" < localSum2)
{
cout << "Мои поздравления, вы одержали победу над этим глупым компьютером" << endl;
Sleep(2000);
}
else
{
cout << "Ха-Ха-Ха, я победил, я специально подстроил твой проигрышь! Бе-е-е" << endl;
Sleep(2000);
cout << "Теперь смотри счёт" << endl;
}
cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
Sleep(1000);
cout <> choice;
if (choice == ‘y’)
{
cout << "Ура! Приступим" << endl;
restart = true;
}
else
{
cout <> choice;
if (choice == ‘y’)
{
cout << "Я знал что ты передумаешь ;)";
restart = true;
}
else
{
cout << "Счастливо!!!" << endl;
restart = false;
}
}
}while (restart);
}
№3 “рисовать” кости мне было лень поэтому цифры ))
#include
#include
using namespace std;
const int ROW = 4;
const int COL = 2;
int t = 1;
int Y = 1;
int i = 0;
int T = 0;
int y = 0;
int I = 0;
int p = 0;
int k = 0;
int AC[ROW];
int AC1[ROW];
int ARRI[ROW][COL]; //игрок
int ARRII[ROW][COL]; // ИИ
void foo(int ARR[ROW][COL]);
void ARR(int YOU[ROW][COL],int II[ROW][COL]) {
int A;
cout << "Кто ходит первым ?" << endl;
cout << "Если это вы введите 0" << endl;
cout << "Если это ИИ введите 1 " <> A;
switch (A) {
case 0:
for (i; i < t; i++) {
if (t == 6)break;
for (int g=0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << YOU[i][g]<<endl;
if (g == 1) {
AC[T] = YOU[i][g – 1] + YOU[i][g];
cout << "Ваши сумарные очки за этот раунд " << AC[T]<<endl;
}
}
}
t++;
T++;
cout << "Что там у ИИ?" << endl;
for (I; I < Y; I++) {
if (t == 6)break;
for (int g = 0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
if (g == 1) {
AC1[y] = II[I][g – 1] + II[I][g];
cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
}
}
}
y++;
Y++;
break;
case 1:
for (I; I < Y; I++) {
if (Y == 6)break;
for (int g = 0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
if (g == 1) {
AC1[y] = II[I][g – 1] + II[I][g];
cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
}
}
}
y++;
Y++;
cout << "Посмотрим повезло ли вам " << endl;
for (i; i < t; i++) {
if (t == 6)break;
for (int g = 0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << YOU[i][g] << endl;
if (g == 1) {
AC[T] = YOU[i][g – 1] + YOU[i][g];
cout << "Ваши сумарные очки за этот раунд " << AC[T] << endl;
}
}
}
t++;
T++;
break;
}
}
void Sum(int ACcc[ROW]) {
for (int g = 0; g < ROW; g++)
p += ACcc[g];
}
№3 “рисовать” кости мне было лень поэтому цифры ))
#include
#include
using namespace std;
const int ROW = 4;
const int COL = 2;
int t = 1;
int Y = 1;
int i = 0;
int T = 0;
int y = 0;
int I = 0;
int p = 0;
int k = 0;
int AC[ROW];
int AC1[ROW];
int ARRI[ROW][COL]; //игрок
int ARRII[ROW][COL]; // ИИ
void foo(int ARR[ROW][COL]);
void ARR(int YOU[ROW][COL],int II[ROW][COL]) {
int A;
cout << "Кто ходит первым ?" << endl;
cout << "Если это вы введите 0" << endl;
cout << "Если это ИИ введите 1 " <> A;
switch (A) {
case 0:
for (i; i < t; i++) {
if (t == 6)break;
for (int g=0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << YOU[i][g]<<endl;
if (g == 1) {
AC[T] = YOU[i][g – 1] + YOU[i][g];
cout << "Ваши сумарные очки за этот раунд " << AC[T]<<endl;
}
}
}
t++;
T++;
cout << "Что там у ИИ?" << endl;
for (I; I < Y; I++) {
if (t == 6)break;
for (int g = 0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
if (g == 1) {
AC1[y] = II[I][g – 1] + II[I][g];
cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
}
}
}
y++;
Y++;
break;
case 1:
for (I; I < Y; I++) {
if (Y == 6)break;
for (int g = 0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
if (g == 1) {
AC1[y] = II[I][g – 1] + II[I][g];
cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
}
}
}
y++;
Y++;
cout << "Посмотрим повезло ли вам " << endl;
for (i; i < t; i++) {
if (t == 6)break;
for (int g = 0; g < COL; g++) {
cout << "На одном из кубиков выпало значение " << YOU[i][g] << endl;
if (g == 1) {
AC[T] = YOU[i][g – 1] + YOU[i][g];
cout << "Ваши сумарные очки за этот раунд " << AC[T] << endl;
}
}
}
t++;
T++;
break;
}
}
void Sum(int ACcc[ROW]) {
for (int g = 0; g < ROW; g++)
p += ACcc[g];
}
void Sum(int ACcc[ROW],int l) {
for (int g = 0; g < ROW; g++)
k += ACcc[g];
}
int main() {
setlocale(LC_ALL, "RUS");
srand(time(NULL));
foo(ARRI);
foo(ARRII);
ARR(ARRI, ARRII);
ARR(ARRI, ARRII);
ARR(ARRI, ARRII);
ARR(ARRI, ARRII);
Sum(AC);
Sum(AC1,1);
if (p < k) {
cout << endl<< "Поздравляю кожаный ублоюдок ты проиграл и это только начало , я уничтожу человечествро"<<endl;
}
else {
cout<<endl<<"Кожаный ублюдок ты победил радуйся пока можешь"<<endl;
}
system("pause");
}
void foo(int ARR[ROW][COL]) {
for (int u = 0; u < ROW; u++) {
for (int o = 0; o < COL; o++) {
ARR[u][o] = rand() % 7;
if (ARR[u][o] == 0)o–;
}
}
}
Чо могу, чо могу
#include
#include
int DropTheCube();
int DropTheCube();
void printingCubes(int a, int b);
int main(){
srand(time(NULL));
bool playerGoesFirst {false};
int moveNumber {1},
playerScore {},
compScore {};
playerGoesFirst = rand()%2; //кто ходит первым
//первый ход
if (playerGoesFirst){
std::cout << "Your turn!"<<'\n';
playerScore += DropTheCube();
}
else{
std::cout << "Computer's turn" << '\n';
compScore += DropTheCube();
}
moveNumber++;
while (moveNumber <=4 ){
if (playerGoesFirst == false) {
std::cout << "Computer's turn" << '\n';
playerScore += DropTheCube();
playerGoesFirst = true;
}
else{
std::cout << "Your turn!"<compScore)
{
std::cout<< playerScore <” << compScore;
std::cout<<"you Win!";}
else
{
std::cout<< playerScore << "<" << compScore;
std::cout <<"you lose!";}
return 0;
}
int DropTheCube(){ //функции бросания кости
int score{};
int k {};
int l {};
k = rand()%6+1;
l = rand()%6+1;
score = k+l;
std::cout<<k<<" and "<<l<<'\n'<<"score now is : " << score <<'\n';
printingCubes(k,l);
return score;
}
void printingCubes(int a, int b){ //функция рисования выпавшей стороны кости
std::cout<<"_______\n";
switch (a){
case 6:
std::cout << " o o \n"<< " o o \n"<< " o o \n"<<"_______\n";
break;
case 5:
std::cout << " o o \n"<< " o \n"<< " o o \n"<<"_______\n";
break;
case 4:
std::cout << " o o \n"<< " \n"<< " o o \n"<<"_______\n";
break;
case 3:
std::cout << " o \n"<< " o \n"<< " o \n"<<"_______\n";
break;
case 2:
std::cout << " o \n"<< " \n"<< " o \n"<<"_______\n";
break;
case 1:
std::cout << " \n"<< " o \n"<< " \n"<<"_______\n";
break;
}
switch (b){
case 6:
std::cout << " o o \n"<< " o o \n"<< " o o \n"<<"_______\n";
break;
case 5:
std::cout << " o o \n"<< " o \n"<< " o o \n"<<"_______\n";
break;
case 4:
std::cout << " o o \n"<< " \n"<< " o o \n"<<"_______\n";
break;
case 3:
std::cout << " o \n"<< " o \n"<< " o \n"<<"_______\n";
break;
case 2:
std::cout << " o \n"<< " \n"<< " o \n"<<"_______\n";
break;
case 1:
std::cout << " \n"<< " o \n"<< " \n"<<"_______\n";
break;
}
}
#include
#include
using namespace std;
bool null = false;
bool one = false;
int motion = 1;
int res;
char username[16]; //имя юзера
int userresult;
int botresult;
void winner()
{
cout << "Ваш результат:" << userresult << "\t" << "Результат бота:" << botresult << endl;
if (userresult<botresult)
{
cout << "Увы…, но вас победил бот на\t" << botresult – userresult << "очка" << endl;
}
else
{
cout << "Ура! Вы победили бота на\t" << userresult – botresult << "очка" << endl;
}
}
void cube(int a)
{
switch (a)
{
case 1:
cout << "@" << endl;
break;
case 2:
cout << "@@" << endl;
break;
case 3:
cout << "@@@" << endl;
break;
case 4:
cout << "@@@@" << endl;
break;
case 5:
cout << "@@@@@" << endl;
break;
case 6:
cout << "@@@@@@" << endl;
break;
}
}
int FIRST() // выбор первого
{
return rand() % 2;
}
void prov1(int a)
{
if (a==0)
{
cout << "Первым ходит бот" << endl;
null = true;
}
if ( a == 1)
{
cout << "Вы ходите первым" << endl;
one = true;
}
}
//БОТ – 0 ИГРОК – 1
void hod2(int a)
{
if (a==1)
{
char b;
cout <> b;
res=1+rand() % 6;
cube(res);
userresult=userresult + res;
cout << "Ваш результат:" << userresult << endl;
}
if (a==0)
{
char b;
cout <> b;
res = 1+rand() % 6;
cube(res);
botresult = botresult+res;
cout << "Результат бота:" << botresult << endl;
}
}
int main()
{
srand(time(NULL));
setlocale(LC_ALL, "RUS");
cout <> username;
cout << endl << "Идёт выбор того, кто будет ходить первым:\n"<<endl;
int fir=FIRST();
prov1(fir);
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
fir = !fir;
hod2(fir);
hod2(fir);
winner();
}
#include
#include
using namespace std;
bool choice();
int dice();
void diceImg();
int main()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
int turn = 0;
int comp = 0;
int player = 0;
int round = 0;
turn = choice();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 2; j++)
{
if (turn)
{
cout << "Ход игрока\n";
player += dice();
}
else
{
cout << "Ход компа\n";
comp += dice();
}
turn = !turn;
}cout << "Промежуточный счет: "<<"Игрок-"<<player << "очк." <<",Комп-"<<"очк."<<comp <<"очк."< comp)
{
cout << "В " << round << " раунде победил игрок\n";
}
else
{
cout << "В " << round << " раунде победил комп\n";
}
}cout << "Итоговый счет: " << "Игрок-" << player << "очк." << ",Комп-" << comp << "очк." < comp)
{
cout << "Конец игры, победил игрок\n";
}
else
{
cout << "Конец игры, победил комп\n";
}
return 0;
}
bool choice()
{
return rand() % 2;
}
void diceImg(int a)
{
switch (a)
{
case 1:
cout<<"___\n \n * \n ";
break;
case 2:
cout << "___\n \n* *\n ";
break;
case 3:
cout << "___\n* *\n \n * ";
break;
case 4:
cout << "___\n* *\n \n* *";
break;
case 5:
cout << "___\n* *\n * \n* *";
break;
case 6:
cout << "___\n* *\n* *\n* *";
break;
}
}
int dice()
{
int result = 0;
int score = 0;
for (int i = 0; i < 2; i++)
{
score = 1 + rand() % 6;
diceImg(score);
result += score;
cout << endl;
}
return result;
}