gpt4 book ai didi

java - 无法从JAVA中同一类的另一个方法调用方法

转载 作者:行者123 更新时间:2023-12-01 17:43:08 24 4
gpt4 key购买 nike

我制作了一个更简单版本的战舰游戏,您可以在其中与计算机一起玩。
由于某种原因我无法调用方法。我希望你能帮我解决这个问题。如果您对我如何提高程序质量有任何建议,也请告诉我。

解决问题可能需要的一些信息

我无法在 callGameManager() 方法中调用 mapchanger() 方法

错误:我没有收到任何错误,但无论我在 mapChanger() 方法中输入什么都不起作用。
操作系统:Ubuntu 19.10
Java jdk 14
文本编辑器:Sublime Text(未经许可)

代码:

import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
import java.util.ArrayList;

class practice
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
secondClass please = new secondClass();
System.out.println("Welcome to BATTLE SHIP !!!");
System.out.println("If you want to play enter Y else N");
String response = input.next();
response = response.toUpperCase();
if(response.equals("Y")){please.callGameManager();}
else if (response.equals("N")){System.out.println("OK,nice to see you \nBii !");}
else if (response.equals("HACKERMAN")){please.sethackermanMode(); please.callGameManager();}
}
}
class secondClass
{
private ArrayList<Integer> map = new ArrayList<Integer>();
private ArrayList<Integer> ship = new ArrayList<Integer>();
private Random random = new Random();
private int coordinate;
private userInput io = new userInput();
private boolean hit;
private int triesYouHave=3;
private int hitCounter=0;
private int attempts=0;
private boolean hackermanMode = false;

void sethackermanMode()
{
hackermanMode =true;
System.out.println("\n\n");
System.out.println("HACKERMAN mode : ACTIVE ");
System.out.println("\n\n");
}

void callGameManager()
{
mapMaker();
if(hackermanMode == true){printTheMapAndShip();}

io.getGuess();
for(int j =0 ;j<9999999;j++)
{ attempts++;
if(checker() == false)
{

mapChanger();
System.out.println("MISS you have "+(--triesYouHave)+" tries left");
if(triesYouHave==0 ){System.out.println("You loose , looser\nYou made "+attempts+" attempts");break;}
io.getGuess();
checker();

}
else if(checker() == true)
{
hitCounter++;
triesYouHave++;

System.out.println("HIT \t\t\tyou have "+(--triesYouHave)+" tries left");
if(hitCounter == 3){System.out.println("You win , winner\nYou did it in "+attempts+" attempts");break;}
io.getGuess();
checker();
}
}
}

void mapChanger()
{
//ship.remove(io.setGuess);
System.out.println("Change the map sir...PLease !!!!");
}

boolean checker()
{
hit = ship.contains(io.setGuess());
return hit;
}
void mapMaker()
{
map.addAll(Arrays.asList(0,1,2,3,4,5,6));

//RANDOM ASSIGNER FOR COORDINATES OF SHIP
coordinate = random.nextInt(map.size()-1);//ASIGNS a random number to coordinate variable between 0 and map.size-1 = 6

if(coordinate != 0 && coordinate != map.size()-1)
{
ship.addAll(Arrays.asList(coordinate-1,coordinate,coordinate+1));
}
else if(coordinate==0)
{
ship.addAll(Arrays.asList(coordinate,coordinate+1,coordinate+2));
}
else
{
ship.addAll(Arrays.asList(coordinate-2,coordinate-1,coordinate));
}
}


void printTheMapAndShip()//HACKER MAN
{
System.out.println("Map : "+map);
System.out.println("ship : "+ship);
}

}

class userInput
{
private Scanner input = new Scanner(System.in);
private int guess;
void getGuess()
{
guess = input.nextInt();
}
int setGuess()
{
return guess;
}
}

附注:如果您能获得该引用资料,那就太棒了!

最佳答案

我刚刚解决了。
还记得我说过文本编辑器未经许可吗?
嗯,看来它已经坏了。
上面的代码是从 Sublime Text 粘贴的。
但是,当我在 notepad++ 中查看 java 文件时,该方法根本不存在!所以,我复制了上面的代码,粘贴到 Notepad++ 中,运行程序,它现在已经开始工作了。
抱歉,谢谢!
如果您正在从事更大的项目,请获得文本编辑器的许可!
浪费了一整天的时间来修复!

关于java - 无法从JAVA中同一类的另一个方法调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60913000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com