I've been trying to get this code to work for the past week now, and every time I make one change I end up with more bugs. Can anyone help figure out where I've gone wrong?

The code is split up into two files: a runner class, and a class with all the methods.

```
import java.util.Scanner;
import static java.lang.System.*;

public class RPSRunner
{
    public static void main(String args[])
    {
        Scanner keyboard = new Scanner(System.in);
        String response = "";
        String player = "";

        RockPaperScissors game = new RockPaperScissors();

        System.out.print("What is your name? : ");
        player = keyboard.next();

        out.print("type in your prompt [R,P,S] :: ");
        response = keyboard.next();

        game.setPlayers();
        game.convertUserInput(response);
        game.setPlayerChoice(response);
        game.computerThink();
        game.determineWinner();

    }
}

```

The method class:

```
import java.util.Scanner;
import static java.lang.System.*;
import java.util.Random;

public class RockPaperScissors
{
    private String playerName; //used to set player's name
    private int playChoice; //player's choice as a number
    private int compChoice; //computer's choice as a number
    private int playerNumber;

    Random rand = new Random(); //allows useage of random methods

    public RockPaperScissors()
    {
        //sets everything to null, prepare for incoming calculations
        playerName = "";
    }

    public RockPaperScissors(String player)
    {

        playerName = player;
    }

    public void setPlayers(String player)
    {
        //good ol mutator method
        playerName = player;
    }

    public String convertUserInput(String response)
    {
        //Convert R, P, S to integer using switch case
            //If invalid input, set to -1

            switch(response) {
                case "R": playChoice = 0;
                    break;
                case "P": playChoice = 1;
                    break;
                case "S": playChoice = 2;
                    break;

                default: playChoice = -1;
            }
    }

    public boolean setPlayerChoice(String response)
    {
        //TODO set playChoice to convertUserInput
        //return (playChoice != -1)

        playChoice = convertUserInput(response);
        return(playChoice != -1);
    }

    public int computerThink()
    {
        //Use Math.random from 0-2 inclusive
        //return it all in one statement so
            //return Math.random(whatever);

            return rand.nextint(2);
    }

    public String determineWinner()
    {
        String winner="";

        compChoice = computerThink();

        switch(compChoice) {
            case 0:
                if(playChoice == 1){
                    winner = playerName;
                } else if(playChoice == 2) {
                    winner = "Computer";
                } else if(playChoice == 0) {
                    winner = "Tie";
                }

            case 1:
                if(playChoice == 1) {
                    winner = "Tie";
                } else if(playChoice == 2) {
                    winner = playerName;
                } else if(playChoice == 0) {
                    winner = "Computer";
                }

            case 2:
                if(playChoice == 1) {
                    winner = "Computer";
                } else if(playChoice == 2) {
                    winner = "Tie";
                } else if(playChoice == 0){
                    winner = playerName;
                }

        } //closes the switch

        return winner;
    }
}

```

This is my first major program, so I apologize for any glaring errors or incorrectly-interpreted concepts. I think my major issue lies in the return types, but I'm not positive.