[Java] Zgadywanie wylosowanych liczb w kilku próbach i sprawdzanie imienia
Ostatnio zmodyfikowano 2015-04-02 12:29
Krzycho92 Temat założony przez niniejszego użytkownika |
[Java] Zgadywanie wylosowanych liczb w kilku próbach i sprawdzanie imienia » 2015-04-01 09:32:03 Chcę napisać program, który wylosuje int'a z przedziału 1-100. Potem użytkownik będzie zgadywał w 5 próbach, która to liczba. Jednak już przy dodawaniu funkcji losowania pojawia się problem z importem bibliotek i złym formułowaniem funkcji. Komputer domyślnie losuje od 0, więc jeśli chcę 1-100, to muszę zapisać 100+1, tak? W C++ to działało, tu nie. Poza tym, nie wiem dlaczego mi podkreśla paczkę "import java.lang.Math" i twierdzi, że jest ona niepoprawna. Teoretycznie powinno się postawić gwiazdkę zamiast "Math", ale z tym też nie działa. Dodam, że Javę zainstalowałem domyślnie w "C:\Program Files\Java", zaś projekty tworzę na dysku D:. import java.lang.Math; import java.util.Scanner;
//package zgadywanka;
public class Zgadywanka {
public static void main(String[] args) { int x; Math.random()%100+1; System.out.println(Math.random()); System.out.println("Wprowadz liczbe: "); Scanner skaner=new Scanner (System.in); int i=skaner.nextInt(); } }
|
|
Monika90 |
» 2015-04-01 12:02:43 Math.random() zwraca double z przedzału od 0 do 1, więc %100+1 nie ma sensu w ogóle. Użyj metody nextInt(int) z klasy java.util.Random |
|
Krzycho92 Temat założony przez niniejszego użytkownika |
» 2015-04-02 12:29:35 Losowanie działa, wprowadzanie liczb też. Tylko nie wiem teraz dlaczego program nie wykrywa żeńskich imion - czy wpiszę imię/wyraz kończący się na 'a' czy na inną literę, to i tak program twierdzi, że to imię meskie. Czy funkcja sprawdzająca ostatnią literę jest zła? import java.util.*;
//package zgadywanka;
public class Zgadywanka { public static void main(String[] args) { System.out.println("Program wylosuje liczbe z przedzialu 1-100... Odgadnij tą liczbę - masz 5 prób."); System.out.println("Zanim zaczniemy, podaj Twoje imie: "); Scanner skaner=new Scanner (System.in); String imie =skaner.nextLine(); Random losowa = new Random(); int l = losowa.nextInt(100)+1; //System.out.println(l); if (imie.length()-1=='a') System.out.println("Jestes kobieta"); else System.out.println("Jestes mezczyzna"); for (int proba=1; proba<=5; proba++) { System.out.println("Wprowadz liczbe: "+"Proba: "+proba); int i=skaner.nextInt(); if (i==l) { System.out.println("Brawo, trafiles!"); break; } else if (i>l) System.out.println ("Za duzo"); else if (i<l) System.out.println ("Za malo"); if (proba==5) System.out.println("Przegrales!"); } } }
(EDIT) Naprawione: if (imie.charAt(imie.length()-1)=='a')
Temat można zamknąć. |
|
« 1 » |