KARYCY798
03.04.2021 13:59

Python python python python python python python

напишіть програму, яка реалізує популярну гру – black jack.

згідно з правилами, колода перемішується випадковим

чином, після чого кожному гравцю видається 2 карти. кожна

карта має свою «цінність», а саме: з другої до десятої цінність

карти збігається з її номіналом; валет, й король дорівнюють 10 очкам, а туз – 11.

користувач бачить тільки свої карти, відповідно, може

порахувати, скільки очок вже набрано. також є можливість

добрати з колоди необхідну кількість карт. умови виграшу

наступні: виграє той, хто набере більше очок, але не більш

ніж 21.

згідно з цими правилами, внесіть такі зміни в поданий

нижче код:

1. додайте код, який реалізує роздачу карт двом гравцям,

один із яких – бот. ясна річ, гравець не повинен знати,

які карти має бот до кінця гри.

2. додайте умову виграшу (кількість очок у гравця має бути

більше, ніж у бота).

3. додайте умову, яка не дозволить користувачеві вводити

некоректні значення.

додаткове завдання

можете приступити до цього етапу, якщо вам вдалося

виконати всі попередні пункти.

1. зробіть код більш читабельним.

у списку card_deck = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10,

10, 10, 11] замініть змінні 10, 10, 10, 11 на карти відповідного

рангу j, q, k, a. додайте умову, яка перевірятиме отриману

карту. приклад того, як це повинно бути реалізовано:

if card == "q":

number = 10

2. додайте цикл, який дозволить користувачеві повторити

або завершити гру. виведіть повідомлення типу tryagain?

і варіанти відповіді: yes ([y]) и no (

3. після закінчення гри виведіть загальний рахунок і кількість перемог (player vs computer).

пояснення: поданий нижче код частково реалізує алгоритм гри. ви можете взяти цю програму за основу і поліпшити

її, згідно із завданням.

у коді card_deck = [2, 3, 4, 5, 6, 7, 8, 9, 10,

10, 10, 10, 11] ] є списком, в якому зберігається імпровізована колода карт і всі можливі варіанти значень. як відомо,

колода містить по 4 карти кожної масті, тобто card_deck =

[2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11] * 4.

додаткове завдання

можете приступити до цього етапу, якщо вам вдалося

виконати всі попередні пункти.

1. зробіть код більш читабельним.

у списку card_deck = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10,

10, 10, 11] замініть змінні 10, 10, 10, 11 на карти відповідного

рангу j, q, k, a. додайте умову, яка перевірятиме отриману

карту. приклад того, як це повинно бути реалізовано:

if card == "q":

number = 10

2. додайте цикл, який дозволить користувачеві повторити

або завершити гру. виведіть повідомлення типу tryagain?

і варіанти відповіді: yes ([y]) и no (

3. після закінчення гри виведіть загальний рахунок і кількість перемог (player vs computer).

пояснення: поданий нижче код частково реалізує алгоритм гри. ви можете взяти цю програму за основу і поліпшити

її, згідно із завданням.

у коді card_deck = [2, 3, 4, 5, 6, 7, 8, 9, 10,

10, 10, 10, 11] ] є списком, в якому зберігається імпровізована колода карт і всі можливі варіанти значень. як відомо,

колода містить по 4 карти кожної масті, тобто card_deck =

[2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11] * 4.

код до завдання:

import random

card_deck = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10,

10, 11] * 4

random.shuffle(card_deck)

print("")

print("black jack")

print("")

print("would you like to take a card? \n\t[y] -

yes\n\t[n] - no\n")

count = 0

while true:

select = input("\nyour select: ")

if select == "y":

current_card = card_deck.pop()

print(f"your card is: {current_card}")

count += current_card

if count > 21:

print(" you lose!

(you scored over 21)")

print(f"total score: {count}")

break

elif count == 21:

print("congratulations! you win!

(you scored 21)")

print(f"total score: {count}")

break

else:

print(f"total score: {count}")
elif select == "n":
print(f"stop. total score: {count}")
break
print("\ngame over")

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
irinkaokhotina
23.02.2020 22:23

Функция должна возвращать значение. Пусть катеты a и b, тогда она должна вернуть a * b / 2. Проверки входных параметров я не провожу, считая, что они корректны:

Код (Pascal):

function area(a, b: real): real;

begin

 area := a * b / 2;

end;

begin

 write(area(2, 2)) { должно вывести 2 }

end.

Процедура не возвращает значение. Чтобы она смогла-таки как-то сообщить основной программе результат, используем аргумент, перед которым указываем var.

Код (Pascal):

procedure area(a, b: real; var c: real);

begin

 c := a * b / 2;

end;

var S: real;

begin

 area(2, 2, S);

 write(S) { должно вывести 2 }

end.

0,0(0 оценок)
Ответ:
Rondov
21.06.2022 19:25

var

 a: array [1..5,1..6] of integer;

 i,j,sum,ip,jp:integer;

 flag:boolean;

begin

 flag:=false;

 sum:=0;

 for i:=1 to 5 do

   begin

     for j:= 1 to 6 do

       begin

         a[i,j]:=random(31)-10;

         write(a[i,j]:4);

         if a[i,j] mod 2 = 0 then

           sum:=sum+a[i,j];

         if not flag then

           if abs(a[i,j] mod 2) = 1 then

             begin

               flag:=true;

               ip:=i;

               jp:=j;

             end;

       end;

     writeln;

   end;

 a[ip,jp]:=sum;

 writeln;

 for i:=1 to 5 do

   begin

     for j:=1 to 6 do

       write(a[i,j]:4);

     writeln;

   end;

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота