Я начинающий программист, и я пытаюсь написать игру в крестики-нолики, но получаю ошибки, которых не понимаю - PullRequest
0 голосов
/ 05 октября 2019

Я получаю ошибки «не могу найти символ». в период после «tic» p1L = tic.nextChar ();

и «нельзя разыменовывать» также в период после «p1L» p1L = p1L.equalsIgnoreCase (p1L);

Я не уверен, что это значит или как его исправить.

Я пытался переопределить сканеры в цикле, как предлагали некоторые одноклассники, но, похоже, это не работает или не является проблемой

Scanner tic = new Scanner(System.in);
Scanner tac = new Scanner(System.in);

for (int i = 0; wins || i == 9;i++) {
  tic = new Scanner(System.in);
  tac = new Scanner(System.in);

  table = line1+"/n"+A+"/n"+line2+"/n"+B+"/n"+line3+"/n"+C;

  System.out.println(table);//show table

  System.out.println("Enter Line A,B, or C for X (Player1)");
  p1L = tic.nextChar();
  p1L = p1L.equalsIgnoreCase(p1L);
  System.out.println ("Enter Row 1,2, or 3 for X (Player1)");
  p1R = tic.nextInt();

Я ожидал, что вывод начнется с таблицы крестики-нолики с последующим запросом ввода. например, «Введите строку A, B или C для X (Player1)»

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Например:

Scanner tic = new Scanner(System.in); // use Standard Input for reading data (when the user writes to console)
Scanner tac = new Scanner(System.in); // delete because you have a scanner

for (int i = 0; wins || i == 9;i++) {
  tic = new Scanner(System.in); // delete because you have a Scanner
  tac = new Scanner(System.in); // delete because you have a Scanner

  table = line1+"/n"+A+"/n"+line2+"/n"+B+"/n"+line3+"/n"+C;

  System.out.println(table);//show table

  System.out.println("Enter Line A,B, or C for X (Player1)");
  p1L = tic.nextChar(); // delete, because method does not exist,
  p1L = p1L.equalsIgnoreCase(p1L); // delete, because method exist only data type String (text)
  p1L = tic.nextLine(); // read text
  p1L = p1L.toUpperCase() // make for "a" -> "A", for "A" -> "A"
  System.out.println ("Enter Row 1,2, or 3 for X (Player1)");
  p1R = tic.nextInt();
0 голосов
/ 05 октября 2019

Нет метода с именем nextChar () в Сканере объекта. Вы имели в виду nextLine () ?

И я не знаю, какой тип объекта в p1L . Но я могу сказать, что equalsIgnoreCase () не является методом того, что когда-либо было.

См. https://www.w3schools.com/java/java_user_input.asp и https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

...