Välkommen till Cafét
Här är inget ämne varken för stort eller för litet. Här har vi härliga diskussioner om allt som kan tänkas. Här sitter vi gärna med mungiporna pekandes uppåt. Däremot så snackar vi om hockey och övrig sport på för det avsedd plats.
Okej, trevligt! Detta blir ett långt inlägg. Uppgiften är följande:
Skriv ett program som kan skriva ut en pojke, en flicka eller en raket efter val av användaren, gör det möjligt för användaren att repetera så länge som han/hon önskar.
Öva att arbeta med top-down design. Skriv ett main som anropar ett antal tomma metoder, "stubs". Därefter kan du koncentrera dig på att lösa en uppgift i taget. Du kan göra "stubs" även för delmetoderna och således testa ut programmet steg för steg.
Skriv tre metoder draw_boy, draw_girl och draw_rocket som skriver ut en pojke, en flicka eller en flerstegsraket enligt figurerna nedan.
Metoderna använder i sin tur byggstenar i form av metoder för att skapa och skriva ut figurernas huvud och kroppsdelar m m. Dessa metoder kan heta draw_head o s v (se nedan).
OBS! För att skriva tecknet \ i en textsträng måste tecknet skrivas två gånger \.
Figurerna finns i nedanstående länk:
webct6.miun.se/webct/urw/lc340053116001.tp340053140001/RelativeResourceManager/sfsid/375253124001
(Tveksamt om den fungerar dock.)
Nu till min fråga:
Hur ska jag göra för att få programmet att skriva ut raketen i det antal steg som användaren anger? Jag har testat lite med en for-loop, men får inte riktigt till det...
Jag har hittills skrivit följande programrader:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
do {
String svar;
System.out.println("Vill du skriva ut en pojke, en flicka eller en raket (P/F/R)? ");
svar = sc.next();
if ("P".equalsIgnoreCase(svar))
{
draw_boy();
}
else if ("F".equalsIgnoreCase(svar))
{
draw_girl();
}
else if ("R".equalsIgnoreCase(svar))
{
int antalSteg;
System.out.println("Hur många steg önskar du att raketen ska ha? ");
antalSteg = sc.nextInt();
draw_rocket();
}
System.out.println("Vill du fortsätta (J/N)? ");
}
while ("J".equalsIgnoreCase(sc.next()));
}
public static void draw_boy() {
draw_head();
draw_base();
draw_parallel();
draw_base();
draw_cone();
}
public static void draw_girl() {
draw_head();
draw_cone();
draw_base();
draw_cone();
}
public static void draw_rocket() {
draw_cone();
draw_base();
draw_parallel();
draw_base();
draw_cone();
}
public static void draw_head() {
System.out.println(" //\ ");
System.out.println(" |o,o|");
System.out.println(" \v/ ");
}
public static void draw_cone() {
System.out.println(" /\ ");
System.out.println(" / \ ");
System.out.println(" / \ ");
}
public static void draw_parallel() {
System.out.println("| |");
System.out.println("| |");
System.out.println("| |");
}
public static void draw_base() {
System.out.println("========");
}
}