Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
1

Ход компьютера

06.09.2022, 21:07. Показов 803. Ответов 19

Author24 — интернет-сервис помощи студентам
В игре игрок нажимает на кнопки (Одна из них правильная )
На каждой кнопке по мимо действий по нажатию(On click) "висит" скрипт, аудио сортс, евент тригер и др.

Как имитировать нажатие кнопки компьютером, по очереди с игроком ?
Направьте пожалуйста в нужную сторону !
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2022, 21:07
Ответы с готовыми решениями:

Крестики-нолики. Ход компьютера
Необходимо, чтобы компьютер не просто ходил рандомными числами, но мешал выиграть игроку и пытался...

Крестики-Нолики. Ход компьютера
Если у кого-то вдруг осталась реализация ходов компьютера для игры крестики-нолики, буду ПРЕМНОГО...

Морской бой - запрограммировать ход компьютера
Такая проблема, я не знаю как правильно реализовать ход компьютера. Рандомом бъёт по случайной...

Ответный ход компьютера в игре со спичками
игра. не соображу ответный ход - ход компьютера. суть игры (игра баше): дано 15 спичек, два...

19
12 / 9 / 3
Регистрация: 05.12.2019
Сообщений: 99
06.09.2022, 21:26 2
Если есть нажатие на кнопку значит должна быть переменная была нажата ли кнопка.
И если игрок нажал на кнопку тогда переменная у кнопки true и на глобальном скрипте также что игрок походил true, далее проверка если игрок походит тогда бот, выбирает кнопку, которая не была нажата и нажимает т.е ставит что кнопка нажата true и что игрок походил false. И так пока кто-то не нажмет правильную.
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
06.09.2022, 21:30 3
Цитата Сообщение от dimonvyt Посмотреть сообщение
Если есть нажатие на кнопку значит должна быть переменная была нажата ли кнопка.
Необязательно. Можно по нажатию на кнопку сразу делать ход за компьютер. Тоесть свои ход и за компьютер в однои функцие
0
Сын моей мамы
206 / 140 / 66
Регистрация: 09.05.2020
Сообщений: 733
06.09.2022, 21:48 4
zx-spectr, а вариант просто добавить ход компьютера в метод, который указывается в onCLick не подойдет?
0
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
06.09.2022, 21:49  [ТС] 5
кнопок много около 20 . Комп. должен случайно выбрать одну. Есть ли какой то метод
в скрипте "нажимающий" button ? и всё что находится там срабатывает ?
0
Сын моей мамы
206 / 140 / 66
Регистрация: 09.05.2020
Сообщений: 733
06.09.2022, 21:55 6
zx-spectr, ты как определяешь нажата верная кнопка или нет?
и чем правильная отличается от неправильных?Методы в onClick разные?
0
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
06.09.2022, 21:58  [ТС] 7
я понимаюкак выбрать случайную кнопку из массива кнопок. Вопрос есть ли быстрый способ "сработать" всё что на ней на вешано
0
12 / 9 / 3
Регистрация: 05.12.2019
Сообщений: 99
06.09.2022, 22:00 8
Я сразу подумал что на всех кнопках скрипт хранит данные(нажата, правильная или нет) и менеджер у которого есть список кнопок и так взаимодействие происходит.
0
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
06.09.2022, 22:00  [ТС] 9
Сначала случайно задаётся Правельная кнопка. когда игрок на неё нажимает Играет музыка , пока
0
12 / 9 / 3
Регистрация: 05.12.2019
Сообщений: 99
06.09.2022, 22:07 10
Какой-то менеджер который со списка кнопок выбирает 1 правильную. После можно как я уже писал выше
Цитата Сообщение от dimonvyt Посмотреть сообщение
если игрок нажал на кнопку тогда переменная у кнопки true и на глобальном скрипте также что игрок походил true, далее проверка если игрок походит тогда бот, выбирает кнопку, которая не была нажата и нажимает т.е ставит что кнопка нажата true и что игрок походил false. И так пока кто-то не нажмет правильную.
И в скрипте кнопки потом все воспроизводить что нужно.

P.S Может не самый правильный способ, но может подойти.
1
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
06.09.2022, 22:17  [ТС] 11
Согласен нужны бул переменные кто ходит !
Но при нажатии на кнопку много чего происходит !
на пример кнопка из спрайтов кодга на неё нажали она поменяла спрайт и стала не активна, как это будет в коде ?

И ещё раз спрошу есть ли функция имитирующая нажатие кнопки ?
0
Сын моей мамы
206 / 140 / 66
Регистрация: 09.05.2020
Сообщений: 733
06.09.2022, 22:23 12
код ты не скинул, из-за этого так
C#
1
2
3
4
5
6
7
8
//метод вызываемый в OnClick
public void Action()
{
if(эта кнопка==правильная кнопка)
{
//всё что тебе надо делаешь
}
}
Если это тебе не подходит, скинь код, я даже толком не понял , что тебе надо
Да и если у тебя кроме как за проверку правильности скрипты на кнопках не за что больше не отвечают и есть гейм менеджер, то можно использовать метод OnPointerClick и сделать всё в скрипте гейм менеджера
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
06.09.2022, 22:34 13
Лучший ответ Сообщение было отмечено zx-spectr как решение

Решение

Цитата Сообщение от zx-spectr Посмотреть сообщение
я понимаюкак выбрать случайную кнопку из массива кнопок. Вопрос есть ли быстрый способ "сработать" всё что на ней на вешано
выбираешь случаиное число и в свиче вызываешь функцию по нему

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void MoveComputer(){
int randnumber = Random.Range(0, buttoncount -1);
switch(randnumber){
case 0:
OneButtonFunction();//то что 1 на кнопке навешано
break;
case 1:
TwoButtonFunction();
break;
case 2:
ThirdButtonFunction();
break;
........
}
}
функцию вызываешь в функцие на любои кнопке компьютер будет ходить сразу после тебя. Правда ты постоянно выигрывать будешь, он будет ходить наугад
Цитата Сообщение от zx-spectr Посмотреть сообщение
И ещё раз спрошу есть ли функция имитирующая нажатие кнопки ?
Такого нет
0
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
06.09.2022, 22:47  [ТС] 14
Тут вопрос больше не в скрипте а как сработать всё то что висит на кнопке ?

C#
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class mysc : MonoBehaviour // ВИСИТ НА КОНВАСЕ
{ 
    public static int ArayCount = 0;
    public string randomName;
    public GameObject exampleOne;
    public GameObject exampleTwo;
    public GameObject exampleThree;
    public GameObject exampleFor;
    public GameObject examplefive;
 
    public List<string> names = new List <string>();
 
        
    void Start ()
    {
        names.Add (exampleOne.name = "Ben1");
        names.Add (exampleTwo.name = "Ben2");
        names.Add (exampleThree.name = "Ben3");
        names.Add (exampleFor.name = "Ben4");
        names.Add (examplefive.name = "Ben5");
 
        randomName = names [Random.Range (0, names.Count)];
        print ("Good morning randomName:   " + randomName);
    }
    void Update()
    {
        for (int i = 0; i < names.Count; i++)
        {
            if (ArayCount == i)
                    {
                names.Remove("Ben"+ i);
                        ary ();
            
                    }
 
    public void ary()
    {
        ArayCount = 0;
}
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class prov : MonoBehaviour // ВИСИТ НА КАЖДОЙ КНОПКЕ
{
    public mysc pt;
 
    public void RAZOK()
   {
        string nameObject = gameObject.name;
        string ptx = pt.randomName;
 
        if (ptx == nameObject) {
            Debug.Log ("!!!  У ГА Д А Л!!!!!  " + transform.position);
        
        }
            if (nameObject ==   "Ben1")   mysc.ArayCount = 1;
            if (nameObject ==   "Ben2")   mysc.ArayCount = 2;
            if (nameObject ==   "Ben3")  mysc.ArayCount = 3;
        if (nameObject ==   "Ben4")  mysc.ArayCount = 4;
        if (nameObject ==   "Ben5")  mysc.ArayCount = 5;
   }
}
Добавлено через 11 минут
кнопка из спрайтов когда на неё нажали она поменяла спрайт и стала не активна, как это будет в коде ?
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
06.09.2022, 23:15 15
Цитата Сообщение от zx-spectr Посмотреть сообщение
когда на неё нажали она поменяла спрайт и стала не активна
там в списке методов для кнопок есть все что ты перечислил.
вот отключить
Ход компьютера

вот спраит поменять
Ход компьютера

А код и не компилируется похоже.С ошибками. Может ктонибудь отремонтирует, но не я у меня юнька вырубается
1
891 / 161 / 84
Регистрация: 30.07.2022
Сообщений: 1,386
Записей в блоге: 4
07.09.2022, 01:34 16
zx-spectr, Доброго времени!
Добавляете все кнопки в List<> и по нажатии на кнопку она становится неактивной и удаляется её из листа List.Remove();
Далее передаёте ход компьютеру который в цикле перебирает оставшиеся кнопки и выбирает одну.
После нажатия на которую она становится неактивной и удаляется её из листа List.Remove();
И так далее пока не выявится победитель.
0
Uzist
07.09.2022, 09:57
  #17

Не по теме:

nick]zx-spectr[/nick], почитайте рекомендации по написанию кода, просто я чуть не умер от названий mysc, prov, ptx, RAZOK, ary, pt

0
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
07.09.2022, 21:22  [ТС] 18
В моём случае надо не рекомендации читать ( кста читал ) а надо английский лучше учить
0
Сын моей мамы
206 / 140 / 66
Регистрация: 09.05.2020
Сообщений: 733
07.09.2022, 21:26 19
zx-spectr, переводчик в помощь
1
1 / 1 / 0
Регистрация: 24.03.2020
Сообщений: 45
07.09.2022, 21:28  [ТС] 20
Всем спасибо !
Вывод: Раз компьютер сам не нажимает кнопки , прийдётся всё делать самому , ручками !

Использовать я так понял нало это https://docs.unity3d.com/2019.... table.html
0
07.09.2022, 21:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2022, 21:28
Помогаю со студенческими работами здесь

Крестики-нолики рандомный ход компьютера
Помогите разобраться с функций хода компьютера К(). использую рандом, но при выполнении программы...

Реализовать ход компьютера в игре крестики-нолики
Хочу реализовать крестики нолики с компютером. Но не знаю как это норм реализовать. Часть кода с...

народ не могу настроить ход компьютера постоянно вылезает ошибка
Exception in Tkinter callback Traceback (most recent call last): File &quot;c:\program...

Необходимо вывести одно число: 1, если выиграет первый сделавший ход; 2, если выиграет второй; 0 (нуль) – если ход сделать нельзя
Петя и Ваня играют в следующую игру. У них имеется бумажная клетчатая полоска размерности N. Ход...

Вывести IP-адрес компьютера, имя компьютера, имя пользователя и дату и время включения/выключения компьютера
необходимо написать скрипт который, будет лежать в автозагрузке на локальных машинах и выводить в...

Парализована полностью работа компьютера, любая команда приводит к полному зависанию компьютера
Добрый день! Прошу помогите, работа полностью встала. После попытки скачать программу ChekXML с...

Ход коня
Добрый день господа. Подскажите пожалуйсто с задачей: Указать самый короткий путь коня,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru