Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        2年前关闭。
                                                                                            
                
        
我正在从事一个AI项目,并试图构建一个视频游戏选择器。

用户将输入他们想玩的游戏的类型,模式,等级和平台。然后程序将获取该输入,然后使用一些尚未确定的逻辑在gameList数组中选择与该条件匹配的游戏。然后,它将从gameList数组中随机选择一个与条件匹配的游戏,并输出随机选择的游戏作为用户玩游戏的建议。

我在尝试提出最佳方法来使用用户输入来确定哪些游戏符合该标准时遇到问题。

我当前的方法没有利用任何特殊的人工学习或机器学习概念来解决问题。我是Java的新手,我正试图拼凑如何最好地解决此问题。

如果有人对更好的方法有任何想法,那么我目前有一个更好,更轻松的方法来进行此操作,这将非常有用!

这是我当前拥有的代码(其中一些来自先前的赋值,因此请忽略printPeas()以及其他对数组不利的东西。不幸的是,当前代码无法正常工作:

package Games;

import java.util.Scanner;

public class Games
{
    String _gameType;
    String _genreType;
    String _gameMode;
    String _gameRating;
    String _tType;

    public static Scanner input = new Scanner(System.in);

    public Games(String type)
    {
        _gameType = type;
        System.out.println("Suggested type of game is: " + _gameType);
    }
    public Games()
    {
        _gameType = "Sports";
        System.out.println("Suggested type of game is: " + _gameType);
    }
    public void typeInput(String tType)
    {
        _tType = tType;
        System.out.println("Type of Game selected: " + _tType);
    }
    public void genreInput(String gType)
    {
        _genreType = gType;
        System.out.println("Type of Genre selected: " + _genreType);
    }
    public void modeInput(String gMode)
    {
        _gameMode = gMode;
        System.out.println("Type of Game Mode selected: " + _gameMode);
    }
    public void ratingInput(String gRating)
    {
         _gameRating = gRating;
         System.out.println("Type of Rating selected: " + _gameRating);
    }
    public void printPeas()
    {
        String agent = "Agent = Video Game Seletor.";
        String perfmeasure = "P = If it meets the users information being input.";
        String environment = "E = All games within a certain location.";
        String actuators = "A = Library of games to select from, and the display of which game was selected.";
        String sensors = "S = Keyboard input.";
        System.out.println(agent);
        System.out.println(perfmeasure);
        System.out.println(environment);
        System.out.println(actuators);
        System.out.println(sensors);
    }
}


package Games;

import java.util.ArrayList;
import java.util.Random;

public class Game
{
    public static String _genreType;
    public static String _gameMode;
    public static String _gameRating;
    public static String _gameName;

    public void setGame(String genre, String mode, String rating)
    {
        _genreType = genre;
        _gameMode = mode;
        _gameRating = rating;
        _gameName = "";

        Random random = new Random();
        String gameList[] = {"NHL '18", "Madden '18", "Call of Duty: WW2", "GTA V", "Counter-Strike: Global Offsnsive",
            "World of Warcrat", "PUBG", "Assassin's Creed Origins", "Hearthstone", "Battlefield 4"};
        String genreList[] = {"Action", "Sports", "Racing", "MMORPG", "Strategy", "Fighting", "Fantasy"};
        String modeList[] = {"Multiplayer", "Online", "Campaign"};
        String ratingList[] = {"Everyone", "E10+", "Teen", "Mature"};
        String platformList[] = {"PC", "PS4", "Xbox"};
        for(int i=0; i<gameList.length; i++) //trying to have it pull a random game name matching type, genre, mode and rating
        {
            if(genre == genreList[i])
            {
                _genreType = genre;
            }
            if(mode == modeList[i])
            {
                _gameMode = mode;
            }
                System.out.println(gameList[random.nextInt(gameList.length)]);
        }
    }
}

package Games;

import java.util.Scanner;

public class StartSelector
{
    public static String _gameType;
    public static String _genreType;
    public static String _gameMode;
    public static String _gameRating;
    public static Scanner userInput = new Scanner(System.in);
    public static void main(String[] args)
    {
        String gameType = _gameType, genreType = _genreType, gameMode = _gameMode, gameRating = _gameRating;
        Games gameType1 = new Games();
        gameType1.printPeas();
        Games gameType2 = new Games("Action");
        gameType2.printPeas();
        Games gameSelect = new Games();
        System.out.println("Please enter the Genre Type: ");
        genreType = userInput.next();
        gameSelect.genreInput(genreType);
        System.out.println("Please enter the Game Type: ");
        gameType = userInput.next();
        gameSelect.typeInput(gameType);
        System.out.println("Please enter the Game Mode: ");
        gameMode = userInput.next();
        gameSelect.modeInput(gameMode);
        System.out.println("Please enter the Game Rating: ");
        gameRating = userInput.next();
        gameSelect.ratingInput(gameRating);
        userInput.close();
        System.out.println("You have selected a " + genreType + " "
        + gameType + " " + gameMode + " " + gameRating
        + " game to play.");
        gameType1.setGame("Action", "Online", "Mature", "GTA V");
    }
}

最佳答案

您所描述的内容听起来像是经典的机器学习分类器问题。看到您正在为AI课做这件事时,编写分类器可能正是您的教授想要您做的!

您可以以非常抽象的方式执行以下操作:


为您拥有的gameList []中的每个游戏的类型,游戏模式,游戏等级,ttype中的每个类型分配数值(和权重)。
为每个游戏计算4d空间中的向量。
计算用户输入的向量
找到您的用户输入的游戏向量的“最近邻居”游戏向量,将此最近的邻居游戏向量输出给您的用户作为建议的游戏


例如,PUBG向量为:


动作(分配值为1)
多人游戏(分配值为1)
青少年(分配值为3)
platformList(分配的值1 + 2 + 3)


PUBG的向量为。
用户输入他们想要的动作游戏,即“青少年多人游戏”,并且在所有三个平台上,然后将给您的分类器输入(1,1、3、6)。这样,您计算出的向量就与您已经计算出的PUBG相同。建议的游戏是PUBG。

这是您正在做的一个非常整洁的项目。我在上面给出的示例值仅是一个示例,您当然需要对其进行调整。但这是为了说明机器学习/ AI分类器如何在较高水平上工作。

这种东西是机器学习/人工智能的基础,并且已经在工业中广泛使用。信用卡公司将使用例如分类器来检测欺诈。

您可能不需要经过艰苦的过程,即在训练数据上训练分类器,然后在测试数据上对其进行测试……这完全是另一回事。但是您可以使用分类器方法-即使用输入向量计算输出标签来实现您的目标。

祝好运!

关于java - 我应该使用哪些AI/ML技术来生成Java推荐游戏列表? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48409392/

10-12 01:45