Java program gymnasie nivå, hjälp wanted!

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2009

Java program gymnasie nivå, hjälp wanted!

Hej, gör ett väldigt basic ritprogram i Java. Man styr med WASD och då placerar den ut ett X i terminalen, väldigt enkelt. Dock så när jag ska byta riktning så fördröjs det och den skickar ett X i den gamla angivna riktningen. Som sagt, hjälp uppskattas!

Operativ systemet är Linux om det gör någon skillnad.

EDIT: Tror caseraderna med kapitala bokstäver inte fungerar, så mata in med små.

import java.io.IOException; //import System.in.read; public class rita{ static char readchar(){ int ch; try { do { ch=System.in.read(); } while (ch < 0); } catch (IOException exception) { System.out.println("an IO error occured"); return (char) 4; /* end of file */ } return (char) ch; } public static void main(String[] args){ int xpos = 25, ypos = 25; char ESC = (char)27; String CSI = Character.toString(ESC) + '['; boolean forts = true; System.out.println("Använd WASD för att rita och tryck Q för att avsluta."); System.out.println(CSI+"4l"); do{ char WASD = readchar(); System.out.print(CSI +21 +';' +4 +'H'+"Got char:"+WASD); switch(WASD){ case 'Q': forts = false; break; case 'W': System.out.print(CSI +ypos-- +';'+xpos++ +'H'+"X"); break; case 'A': System.out.print(CSI +(ypos-2) +';'+xpos+'H'+"X"); break; case 'S': System.out.print(CSI +ypos++ +';'+xpos++ +'H'+"X"); break; case 'D': System.out.print(CSI +ypos++ +';'+xpos+'H'+"X"); break; case 'q': forts = false; break; case 'w': System.out.print(CSI +ypos-- +';'+xpos +'H'+"X"); break; case 'a': System.out.print(CSI +ypos+';'+xpos-- +'H'+"X"); break; case 's': System.out.print(CSI +ypos++ +';'+xpos+'H'+"X"); break; case 'd': System.out.print(CSI +ypos+ ';'+xpos++ +'H'+"X"); break; } }while (forts); } }

Och filen jag gör kör filen med är:

#.SECONDARY : %.class # Denna fil kompilerar och kör tex MittProgram.java # om du skriver: make MittProgram %.class : %.java javac $< # Här räknar du upp andra program ditt program behöver % : %.class Keyboard.class rlwrap java $* # Här räknar du upp andra program ditt program behöver rita : rita.class Keyboard.class stty raw -echo java rita stty cooked +echo

7700K @ 4,8Ghz | EVGA 1080 SC @ 2021Mhz | Z270F | 16GB @ 3000Mhz | Acer XB270HU