Игра на python с компьютером анализ вариантов

22 августа 2019 - Администратор

Игра камень ножницы бумага на Python с компьютером, компьютер анализирует варианты игрока

В статье Игра камень ножницы бумага на Python мы создали игру с компьютером, при этом ходы компьютера всё время выбирались произвольным способ при помощи команды выбора случайного числа в Python random. В этой статье мы напишем программу на языке программирования Python, в которой компьютер анализирует ходы игрока и если человек часто выбирает один и тот же вариант, например камень, то компьютер выберет побеждающий вариант - в данном примере это бумага. Таким образом мы создадим нашу первую экспертную систему на Python.

Чтобы анализировать ответы игрока, нужно создать массив ответов, в который будут записываться варианты ответов человека. Подробно о работе с массивами в python
a = [0]*4 
import random
for i in range (4):
    ver = 0
    while (ver==0):
        player = int(input("1 - камень, 2 - ножницы, 3 - бумага. "))
        if (player == 1 or player == 2 or player == 3):
            ver = 1
    a[i] = player
    
С помощью цикла for в python проведем 4 раунда игры «Камень – ножницы – бумага». В этих раундах компьютер играет произвольным образом.   
comp = random.randint(1,3)
После 4 раундов проанализируем массив ответов человека. Для каждого варианта ответа мы вводим переменную, в которую будем записывать количество ответов данного варианта.Переменная k будет отвечать за количество выбранных вариантов ответа «Камень», n – за вариант ответа «Ножницы», перменная b – за бумагу. Если любой из вариантов ответа был выбран 2 раза и более, то компьютер выберет выигрышный вариант ответа. Например, если часто выбирается камень, то компьютер выберет бумагу.
ver = 0
comp = 1
if k>2:
    comp=3
if n>2:
    comp = 1
if b>2:
    comp = 2

Полная версия программа «Камень – ножницы – бумага» на Python с анализом вариантов

a = [0]*4 
import random
for i in range (4):
    ver = 0
    while (ver==0):
        player = int(input("1 - камень, 2 - ножницы, 3 - бумага. "))
        if (player == 1 or player == 2 or player == 3):
            ver = 1
    a[i] = player     
    if player == 1:
        print("Вы выбрали камень.")
    if player == 2:
        print("Вы выбрали ножницы.")
    if player == 3:
        print("Вы выбрали бумагу.")
    comp = random.randint(1,3)
    if comp == 1:
        print("Компьютер выбрал камень.")
    if comp == 2:
        print("Компьютер выбрал ножницы.")
    if comp == 3:
        print("Компьютер выбрал бумагу.")
    # определяем победителя
    if player == comp:
        win = 0
    if player == 1 and comp == 2:
        win = 1 
    if player == 1 and comp == 3:
        win = 2
    if player == 2 and comp == 1:
        win = 2
    if player == 2 and comp == 3:
        win = 1
    if player == 3 and comp == 1:
        win = 1
    if player == 3 and comp == 2:
        win = 2
    if win == 0:
        print("Ничья!")
    if win == 1:
        print("Победил игрок!")
    if win == 2:
        print("Победил компьютер!")
print (a)
k = 0
n = 0
b = 0
for i in range (4):
    if a[i] == 1:
        k = k+1
    if a[i] == 2:
        n = n+1
    if a[i] == 3:
        b = b+1
ver = 0
comp = 1
if k>2:
    comp=3
if n>2:
    comp = 1
if b>2:
    comp = 2
    
while (ver==0):
    player = int(input("1 - камень, 2 - ножницы, 3 - бумага. "))
    if (player == 1 or player == 2 or player == 3):
        ver = 1
if player == 1:
        print("Вы выбрали камень.")
if player == 2:
        print("Вы выбрали ножницы.")
if player == 3:
        print("Вы выбрали бумагу.")
if comp == 1:
        print("Компьютер выбрал камень.")
if comp == 2:
        print("Компьютер выбрал ножницы.")
if comp == 3:
        print("Компьютер выбрал бумагу.")
    # определяем победителя
if player == comp:
        win = 0
if player == 1 and comp == 2:
        win = 1 
if player == 1 and comp == 3:
        win = 2
if player == 2 and comp == 1:
        win = 2
if player == 2 and comp == 3:
        win = 1
if player == 3 and comp == 1:
        win = 1
if player == 3 and comp == 2:
        win = 2
if win == 0:
        print("Ничья!")
if win == 1:
        print("Победил игрок!")
if win == 2:
        print("Победил компьютер!")

Перейти к содержанию курса python

Полезно почитать по теме условия и в python

Пример анкета, опрос на python
Решение линейного уравнения в python

Поделиться:

 
Комментарии (0)

Нет комментариев. Ваш будет первым!