Ĺadny brzuch
Witam wszystkich.
Mam problem dotyczący tego programu :/. Czy mógłby mi ktoś opsac co robią poszczególne linijki kodu na podstawie programu podanego ponieżej:
Scanner skan = new Scanner(System.in);
int gracz = skan.nextInt();
znowu = skan.nextLine();
import java.util.Scanner;
public class GraPKN {
public static void main (String[] args) {
final int OPCJE = 3;
final int KAMIEN = 1, PAPIER = 2, NOZYCE = 3;
final int KOMPUTER = 1, GRACZ = 2, REMIS = 3;
int komputer, zwyciezca = 0;
int wygrane = 0, przegrane = 0, remisy = 0;
String znowu = "t";
Scanner skan = new Scanner(System.in);
do {
komputer = (int)(Math.random() * OPCJE) + 1;
System.out.println();
System.out.println("=========================================");
System.out.println("******Gra Papier, Kamien, Nozyczki*******");
System.out.println("=========================================");
System.out.println();
System.out.print ("Wskaz twoj wybor:\n\t\t1 = Kamien\n\t\t2 = Papier\n\t\t3 = Nozyczki\n\t\t");
int gracz = skan.nextInt();
System.out.print ("Twoj wybor: ");
switch (gracz) {
case KAMIEN: System.out.println ("Kamien.");
break;
case PAPIER: System.out.println ("Papier.");
break;
case NOZYCE: System.out.println ("Nozyczki.");
break; }
System.out.print ("Wybor komputera: ");
switch (komputer) {
case KAMIEN: System.out.println ("Kamien.");
if (gracz == NOZYCE) { zwyciezca = KOMPUTER; }
else if (gracz == PAPIER) { zwyciezca = GRACZ; }
else { zwyciezca = REMIS; }
break;
case PAPIER: System.out.println ("Papier.");
if (gracz == KAMIEN) { zwyciezca = KOMPUTER; }
else if (gracz == NOZYCE) { zwyciezca = GRACZ; }
else { zwyciezca = REMIS; }
break;
case NOZYCE: System.out.println ("Nozyczki.");
if (gracz == PAPIER) { zwyciezca = KOMPUTER; }
else if (gracz == KAMIEN) { zwyciezca = GRACZ; }
else { zwyciezca = REMIS; } }
if (zwyciezca == KOMPUTER) {
System.out.println();
System.out.println ("Komputer wygral!");
przegrane++; }
else if (zwyciezca == GRACZ) {
System.out.println();
System.out.println ("Wygrales!");
wygrane++; }
else {
System.out.println();
System.out.println ("Remis!");
remisy++; }
System.out.println();
System.out.print ("Grasz dalej (t/n)?");
znowu = skan.nextLine();
znowu = skan.nextLine();
} while (znowu.equalsIgnoreCase ("T"));
System.out.println();
System.out.println ("Wygrales " + wygrane + " razy.");
System.out.println ("Przegrales " + przegrane + " razy.");
System.out.println ("Zremisowales " + remisy + " razy.");
}
}
Użytkownik kaczor6601 edytował ten post 06 czerwiec 2009, 17:11
Scanner (jak mówi javadoc tej klasy - patrz tutaj) służy do odczytywania i prostego parsowania strumieni - w tym wypadku strumienia wejściowego (System.in). Można z niego wygodnie odczytywać dane, jeśli wiemy, jakiego są typu. W podanych przez Ciebie linijkach odczytywany jest np. int jako ruch gracza. Polecam przeczytanie javadoca ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam problem dotyczący tego programu :/. Czy mógłby mi ktoś opsac co robią poszczególne linijki kodu na podstawie programu podanego ponieżej:
Scanner skan = new Scanner(System.in);
int gracz = skan.nextInt();
znowu = skan.nextLine();
import java.util.Scanner;
public class GraPKN {
public static void main (String[] args) {
final int OPCJE = 3;
final int KAMIEN = 1, PAPIER = 2, NOZYCE = 3;
final int KOMPUTER = 1, GRACZ = 2, REMIS = 3;
int komputer, zwyciezca = 0;
int wygrane = 0, przegrane = 0, remisy = 0;
String znowu = "t";
Scanner skan = new Scanner(System.in);
do {
komputer = (int)(Math.random() * OPCJE) + 1;
System.out.println();
System.out.println("=========================================");
System.out.println("******Gra Papier, Kamien, Nozyczki*******");
System.out.println("=========================================");
System.out.println();
System.out.print ("Wskaz twoj wybor:\n\t\t1 = Kamien\n\t\t2 = Papier\n\t\t3 = Nozyczki\n\t\t");
int gracz = skan.nextInt();
System.out.print ("Twoj wybor: ");
switch (gracz) {
case KAMIEN: System.out.println ("Kamien.");
break;
case PAPIER: System.out.println ("Papier.");
break;
case NOZYCE: System.out.println ("Nozyczki.");
break; }
System.out.print ("Wybor komputera: ");
switch (komputer) {
case KAMIEN: System.out.println ("Kamien.");
if (gracz == NOZYCE) { zwyciezca = KOMPUTER; }
else if (gracz == PAPIER) { zwyciezca = GRACZ; }
else { zwyciezca = REMIS; }
break;
case PAPIER: System.out.println ("Papier.");
if (gracz == KAMIEN) { zwyciezca = KOMPUTER; }
else if (gracz == NOZYCE) { zwyciezca = GRACZ; }
else { zwyciezca = REMIS; }
break;
case NOZYCE: System.out.println ("Nozyczki.");
if (gracz == PAPIER) { zwyciezca = KOMPUTER; }
else if (gracz == KAMIEN) { zwyciezca = GRACZ; }
else { zwyciezca = REMIS; } }
if (zwyciezca == KOMPUTER) {
System.out.println();
System.out.println ("Komputer wygral!");
przegrane++; }
else if (zwyciezca == GRACZ) {
System.out.println();
System.out.println ("Wygrales!");
wygrane++; }
else {
System.out.println();
System.out.println ("Remis!");
remisy++; }
System.out.println();
System.out.print ("Grasz dalej (t/n)?");
znowu = skan.nextLine();
znowu = skan.nextLine();
} while (znowu.equalsIgnoreCase ("T"));
System.out.println();
System.out.println ("Wygrales " + wygrane + " razy.");
System.out.println ("Przegrales " + przegrane + " razy.");
System.out.println ("Zremisowales " + remisy + " razy.");
}
}
Użytkownik kaczor6601 edytował ten post 06 czerwiec 2009, 17:11
Scanner (jak mówi javadoc tej klasy - patrz tutaj) służy do odczytywania i prostego parsowania strumieni - w tym wypadku strumienia wejściowego (System.in). Można z niego wygodnie odczytywać dane, jeśli wiemy, jakiego są typu. W podanych przez Ciebie linijkach odczytywany jest np. int jako ruch gracza. Polecam przeczytanie javadoca ;)