Завдання 1: Ви любите гру Не чули про неї? Гаразд, пояснимо правила для тих хто не з нашої планети. Є два або більше гравці. Кожен обирає для себе одну з речей (камінь, ножиці або папір. Речі можуть повторюватися) і одночасно демонструють їх. Камінь перемагає ножиці але програє паперу, ножиці перемагають папір але програють каменю, папір перемагає камінь але програє ножицям. Якщо ж речі є однаковими, то Ваше завдання: гравець має обрати одну з речей, а обирає свою річ. І нехай переможе той, у кого краща удача! Також, реалізуйте можливість повторної гри без перезапуску програми.
Приклад роботи програми:
Ввід:
1. Stone
2. Scissors
3. Paper
Input 1, 2 or 3
1
Вивід:
Stone < and > Scissors You win!
Repeat the game? y- yes; e – exit
e
Приклад програми:
#include <iostream>
#include <ctime>
int main()
{
srand(time(0));
std::string user, pc;
int userI, pcI;
char ex = 'y';
while(ex != 'e')
{
std::cout << "1. Stone\n 2. Scissors\n 3. Paper\n Input 1, 2 or 3\n";
std::cin >> userI;
//замість «if» в даній ситуації було б зручно використати «switch»
if(userI == 1) {user = "Stone";}
else if(userI == 2) {user = "Scissors";}
else if(userI == 3) {user = "Paper";}
pcI = rand() % 3 + 1;
if(pcI == 1) {pc = "Stone";}
else if(pcI == 2) {pc = "Scissors";}
else if(pcI == 3) {pc = "Paper";}
//в якості перевірок нам не обов’язково використовувати
//змінні «user» та «pc». Ми могли б зробити аналогічно
//зі змінними «userI» та «pcI»
if(user == pc)
std::cout << user << " < and > " << pc << " \nDraw!" << std::endl;
else if((user == "Stone" && pc == "Scissors") || (user == "Scissors" && pc == "Paper") || (user == "Paper" && pc == "Stone"))
std::cout << user << " < and > " << pc << " \nYou win!" << std::endl;
else if((user == "Stone" && pc == "Paper") || (user == "Scissors" && pc == "Stone") || (user == "Paper" && pc == "Scissors"))
std::cout << user << " < and > " << pc << " \nYou lost!" << std::endl;
std::cout << "Repeat the game? y- yes; e - exit\n";
std::cin >> ex;
//для очищення консолі
//system("cls");
}
return 0;
}
Завдання 2: Хочете перевірити свою інтуїцію? Тоді, відгадайте загадане число. Комп’ютер загадує число включно. Ви маєте його відгадати. Якщо загадане число є більшим або меншим за вказане вами, то повідомляє про це. Так повторюється поки ви не вгадаєте загадане число. В кінці програма виводить скільки спроб вам знадобилося щоб відгадати. Зробіть гру ще цікавішою та складнішою. Якщо ви вказали число в межах десяти цифр від загаданого, то програма повідомляє, що ви близько але не каже чи більшим чи меншим є загадане число.
Для прикладу. Якщо, загадане число є а гравець вказує то програма повідомляє, що ми близько.
Коли ви виграєте, то програма запитає чи хочете ви повторити гру.
Приклад роботи програми:
input number:
70
Unknown number less
40
Unknown number less
25
Very hot
17
Very hot
23
number: 23
attempt: 5
Repeat the game? y- yes; e – exit
e
Завдання 3: Ви ж знаєте який малий шанс виграти у Ні? Тоді, спробуйте самостійно це дізнатися. У грального автомату є поля які вибивають рандомні числа У гравця є І він може кинути в автомат можливу суму (тобто, числа, нуль та більші за наявну кількість грошей не можна робити. Ставка це ціле число).
Якщо всі три поля вийшли однаковими, то сума яку поставив гравець збільшується в «3» рази. А, якщо, числа будуть йти в порядку зростання або спадання (наприклад, то сума збільшиться в разів.
Ускладнення (рекомендовано виконувати використовуючи функції але можна зробити і без них): Гра припиняється, якщо у гравця не залишається коштів або він вирішив її завершити самостійно.
Приклад роботи програми:
make a bet: 40
you lost
40
slot machine:
2 3 3
money: 60
continue playing? (e = exit)
n
make a bet: 20
you lost
20
slot machine:
1 4 2
money: 40
continue playing? (e = exit)
n
make a bet: 40
you lost
40
slot machine:
4 1 3
money: 0
Приклад програми:
Без використання функцій.
//програма "гральний автомат"
//програма без використання функцій
#include <iostream>
#include <ctime>
int main()
{
srand(time(0));
int money = 100; //гроші гравця
char ex = 'y';
//числа які випадають в гральному автоматі можна
//зберігати у масивах, але, щоб не змішувати багато тем
//будемо використовувати окремі змінні
int num1, num2, num3;
//для того щоб гра виконалася хоча б один раз
//ми використовуємо цикл "do while"
do {
//відразу робимо ставку не правильною
int bet = -1;
//для того щоб програма просила її ввести
while (bet <= 0 || bet > money)
{
std::cout << "make a bet: ";
std::cin >> bet;
}
//оскільки ми поставили якусь суму, то ця сума
//списується з рахунку гравця
money -= bet;
//отримуємо числа грального автомату
num1 = rand() % 4 + 1;
num2 = rand() % 4 + 1;
num3 = rand() % 4 + 1;
//умова де всі числа однакові
if (num1 == num2 && num1 == num3)
{
bet *= 3;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
//умова де числа йдуть в порядку зростання/спадання
else if((num1 == num2 -1 && num1 == num3 -2)|| (num1 == num2 + 1 && num1 == num3 + 2))
{
bet *= 5;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
else
std::cout << "you lost\n" << bet << std::endl;
std::cout << "slot machine:\n" << num1 << " " << num2 << " " << num3 << std::endl;
std::cout << "money: " << money << std::endl;
//якщо у гравця не залишилося коштів, то гра завершується
if (money == 0)
ex = 'e';
else
{
//якщо гравець хоче завершити гру самостійно, то
//йому необхідно ввести "e" (англійською)
std::cout << "continue playing? (e = exit)\n";
std::cin >> ex;
}
//для очищення консолі
//system("cls");
} while (ex != 'e');
return 0;
}
З використанням функцій.
//програма "гральний автомат"
//програма з використанням функцій
#include <iostream>
#include <ctime>
int random(int min, int max)
{
return rand() % max + min;
}
int bets(int money)
{
//відразу робимо ставку не правильною
int bet = -1;
//для того щоб програма просила її ввести
while (bet <= 0 || bet > money)
{
std::cout << "make a bet: ";
std::cin >> bet;
}
return bet;
}
int win_or_lose(int money)
{
int num1 = random(1, 4);
int num2 = random(1, 4);
int num3 = random(1, 4);
int bet = bets(money);
money -= bet;
//умова де всі числа однакові
if (num1 == num2 && num1 == num3)
{
bet *= 3;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
//умова де числа йдуть в порядку зростання/спадання
else if((num1 == num2 -1 && num1 == num3 -2)|| (num1 == num2 + 1 && num1 == num3 + 2))
{
bet *= 5;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
else
std::cout << "you lost\n" << bet << std::endl;
std::cout << "slot machine:\n" << num1 << " " << num2 << " " << num3 << std::endl;
std::cout << "money: " << money << std::endl;
return money;
}
char the_end(int money)
{
char ex = 'y';
//якщо у гравця не залишилося коштів, то гра завершується
if (money == 0)
ex = 'e';
else
{
//якщо гравець хоче завершити гру самостійно, то
//йому необхідно ввести "e" (англійською)
std::cout << "continue playing? (e = exit)\n";
std::cin >> ex;
}
return ex;
}
int main()
{
srand(time(0));
int money = 100; //гроші гравця
do {
money = win_or_lose(money);
} while (the_end(money) != 'e');
return 0;
}
Завдання 4: Азартні ігри це звісно ж погано, але ми спробуємо отримати від них користь. Створимо гру Правила гри будуть такими:
Гравець може поставити на число а також може зробити ставку на або число. У гравця з початку є монет. Він може зробити можливу ставку (тобто, числа, нуль та більші за наявну кількість грошей не можна робити. Ставка це ціле число).
Якщо гравець зробив ставку на і переміг, то його сума подвоюється. Якщо поставив на число то збільшується в рази. А, якщо, поставив на і переміг, то в разів.
Ускладнення (рекомендовано виконувати використовуючи функції але можна зробити і без них): Гра закінчується, якщо гравець програє всі гроші або вирішив сам піти.
Приклад роботи програми:
What do you bet on?
0 X10
1-10 X4
11 Even number X2
12 An odd number X2
2
make a bet: 50
you lost
50
Roulette:
10
money: 50
continue playing? (e = exit)
n
What do you bet on?
0 X10
1-10 X4
11 Even number X2
12 An odd number X2
11
make a bet: 40
you have won and earned:
80
Roulette:
0
money: 90
continue playing? (e = exit)
n
What do you bet on?
0 X10
1-10 X4
11 Even number X2
12 An odd number X2
0
make a bet: 90
you lost
90
Roulette:
5
money: 0
Приклад програми:
#include <iostream>
#include <ctime>
int main()
{
srand(time(0));
int money = 100; //гроші гравця
char ex = 'y';
int num, num_player;
//для того щоб гра виконалася хоча б один раз
//ми використовуємо цикл "do while"
do {
//відразу робимо ставку не правильною
int bet = -1; //кількість монет, що ставимо
int parlay = -1; //ставка на рулетці
while (parlay < 0 || parlay > 12)
{
std::cout << "What do you bet on?\n"
<< "0 X10\n"
<< "1-10 X4\n"
<< "11 Even number X2\n"
<< "12 An odd number X2\n";
std::cin >> parlay;
}
while (bet <= 0 || bet > money)
{
std::cout << "make a bet: ";
std::cin >> bet;
}
//оскільки ми поставили якусь суму, то ця сума
//списується з рахунку гравця
money -= bet;
//отримуємо числа грального автомату
num = rand() % 11;
//умова де всі числа однакові
if (num == 0 && parlay == 0)
{
bet *= 10;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
//умова де числа йдуть в порядку зростання/спадання
else if(num == parlay)
{
bet *= 4;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
else if (parlay == 11 && num % 2 == 0)
{
bet *= 2;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
else if (parlay == 12 && num % 2 != 0)
{
bet *= 2;
money += bet;
std::cout << "you have won and earned:\n" << bet << std::endl;
}
else
std::cout << "you lost\n" << bet << std::endl;
std::cout << "Roulette:\n" << num << std::endl;
std::cout << "money: " << money << std::endl;
//якщо у гравця не залишилося коштів, то гра завершується
if (money == 0)
ex = 'e';
else
{
//якщо гравець хоче завершити гру самостійно, то
//йому необхідно ввести "e" (англійською)
std::cout << "continue playing? (e = exit)\n";
std::cin >> ex;
}
//для очищення консолі
//system("cls");
} while (ex != 'e');
return 0;
}