public void run() { StdDraw.setCanvasSize(512, 512); StdDraw.setScale(0, 100); Bird flappy = new Bird(); long upThen = System.currentTimeMillis() / 10; int score = 0; boolean running = true; while (running) { // Þarf að bæta við pixlum efst í bakgrunninn StdDraw.show(5); StdDraw.picture(50, 30, "../Myndir/background.jpg", 110 * 1.6, 110); ////////////////////////////////////////// flappy.draw(); ////////////////// // Takkaskipanir ////////////////// // Hömlur á það hversu oft má ýta á up með vissu tímabili if (StdDraw.isKeyPressed(38)) flappy.up(System.currentTimeMillis() / 10); // Er verið að ýta á upp örvalykil? if (StdDraw.isKeyPressed(27)) close(); // Er verið að ýta á Escape? ////////////// // Stigagjöf ////////////// ////////////////////////////////////////// StdDraw.show(); } }
public static void main(String[] args) { // check for optional command-line argument that turns on animation int delay = -1; if (args.length > 0) delay = Integer.parseInt(args[0]); // get dimensions int w = StdIn.readInt(); int h = StdIn.readInt(); StdDraw.setCanvasSize(w, h); StdDraw.setXscale(0, w); StdDraw.setYscale(0, h); // turn on animation mode StdDraw.show(0); // run smallest insertion heuristic Tour tour = new Tour(); while (!StdIn.isEmpty()) { double x = StdIn.readDouble(); double y = StdIn.readDouble(); Point p = new Point(x, y); tour.insertSmallest(p); if (delay > -1) { StdDraw.clear(); tour.draw(); StdDraw.text(100, 0, "" + tour.distance()); StdDraw.show(delay); } } // draw to standard draw tour.draw(); StdDraw.show(0); // print tour to standard output System.out.println("Tour distance = " + tour.distance()); tour.show(); }
protected static void initGame() { StdDraw.clear(); StdDraw.setCanvasSize(Constants.X_VIEW, Constants.Y_VIEW); StdDraw.setXscale(0, Constants.X_MAX); StdDraw.setYscale(0, Constants.Y_MAX); }
public NFADemo(String regexp) { // use stack to keep track of the positions of '('and '|' // issue : or的优先级最低 Stack<Integer> ops = new Stack<Integer>(); re = regexp.toCharArray(); M = re.length; G = new Digraph(M + 1); // 第一次遍历,确定层次,仅为作图用 int[] levels = new int[M]; // levels仅在 * 和 | 处非零 for (int i = 0; i < M; i++) { int lp = i; if (re[i] == '(' || re[i] == '|') ops.push(i); else if (re[i] == ')') { int or = ops.pop(); if (re[or] == '|') { lp = ops.pop(); levels[or] = maxOfArr(levels, lp, i) + 1; } else lp = or; } if (i < M - 1 && re[i + 1] == '*') levels[i + 1] = maxOfArr(levels, lp, i + 1) + 1; } int maxLevel = maxOfArr(levels, 0, M); StdDraw.setCanvasSize(800, 800 * 2 * maxLevel / M); StdDraw.setXscale(0, M); StdDraw.setYscale(-maxLevel, maxLevel); double r = 0.2; for (int v = 0; v < G.V(); v++) { if (v < M) { StdDraw.circle((double) v, 0.0, r); StdDraw.text((double) v, 0.0, (new Character(re[v]).toString())); } else StdDraw.filledCircle((double) v, 0.0, r); } StdDraw.setPenColor(StdDraw.RED); StdDraw.setPenRadius(0.005); ops = new Stack<Integer>(); for (int i = 0; i < M; i++) { int lp = i; if (re[i] == '(' || re[i] == '|') ops.push(i); else if (re[i] == ')') { int or = ops.pop(); if (re[or] == '|') { lp = ops.pop(); G.addEdge(lp, or + 1); G.addEdge(or, i); // connect (lp, or+1), (or, i) double level = (double) levels[or]; StdDraw.line(or, r, or, level); StdDraw.line(or, level, i, level); StdDraw.arrow(i, level, i, r); StdDraw.line(lp, -r, lp, -level); StdDraw.line(lp, -level, or + 1, -level); StdDraw.filledArrow(or + 1, -level, or + 1, -r); } else lp = or; // 此时是'(', 在后面跟的是*时会用到 } if (i < M - 1 && re[i + 1] == '*') { // look ahead G.addEdge(lp, i + 1); G.addEdge(i + 1, lp); // connect (lp, i+1), (i+1, lp) double level = (double) levels[i + 1]; StdDraw.line(i + 1, r, i + 1, level); StdDraw.line(i + 1, level, lp, level); StdDraw.filledArrow(lp, level, lp, r); StdDraw.line(lp, -r, lp, -level); StdDraw.line(lp, -level, i + 1, -level); StdDraw.filledArrow(i + 1, -level, i + 1, -r); } if (re[i] == '(' || re[i] == '*' || re[i] == ')') { G.addEdge(i, i + 1); StdDraw.filledArrow(i + r, 0.0, i + 1 - r, 0.0); } else if (re[i] != '|') { // match transitions StdDraw.setPenColor(); StdDraw.filledArrow(i + r, 0.0, i + 1 - r, 0.0); StdDraw.setPenColor(StdDraw.RED); } } }
public static void main(String[] args) { // GUI Variables int width = 1024; int height = 256; int pauseTime = 0; Font typeFont = new Font("Consolas", 1, 24); Font sentenceFont = new Font("Consolas", 0, 16); boolean multipleWords = false; // Strings for typing word, prediction, and sentence. StringBuilder typeString = new StringBuilder(); String prediction; StringBuilder sentence = new StringBuilder(); // Set up window StdDraw.setCanvasSize(width, height); StdDraw.setXscale(0.0, (double) width); StdDraw.setYscale(0.0, (double) height); // Train on files. WordPredictor predictor; if (args.length > 0) { try { int number = Integer.parseInt(args[args.length - 1]); if (number > 0 && number <= 9) { predictor = new WordPredictor(number); multipleWords = true; } else { predictor = new WordPredictor(); } } catch (NumberFormatException e) { predictor = new WordPredictor(); predictor.train(args[args.length - 1]); } for (int i = 0; i < args.length - 1; i++) { predictor.train(args[i]); } predictor.build(); } else { predictor = new WordPredictor(); } // Main loop for GUI and typing. while (true) { // Clear screen and reset variables. StdDraw.clear(); ArrayList<Word> best = null; if (predictor.getBest(typeString.toString()) != null) { best = predictor.getBest(typeString.toString()).getList(); } // If next key has been typed then act. if (StdDraw.hasNextKeyTyped()) { char key = StdDraw.nextKeyTyped(); // If key is a-z or apostrophe add it to string. if ((key >= 'a' && key <= 'z') || key == '\'') { typeString.append(key); } else if (key == ' ') { // If space move word to sentence, train into dict and reset if (typeString.length() > 0) { sentence.append(typeString + " "); predictor.trainWord(typeString.toString()); predictor.build(); typeString = null; typeString = new StringBuilder(); } } else if (key == '\b') { // Remove last letter if possible. if (typeString.length() > 0) { typeString.deleteCharAt(typeString.length() - 1); } } else if (key == '\n') { if (best != null) { // If enter was pressed and there is a prediction // Use the prediction and reset current word. sentence.append(best.get(0).getWord() + " "); typeString = null; typeString = new StringBuilder(); predictor.trainWord(best.get(0).getWord()); predictor.build(); } } else if (multipleWords) { // If there are multiple words available listen for numbers // These will allow for adding from suggestions. if (key >= '1' && key <= '9' && best != null) { int predNum = Integer.parseInt(key + ""); if (best.size() >= predNum) { sentence.append(best.get(predNum - 1).getWord() + " "); typeString = null; typeString = new StringBuilder(); predictor.trainWord(best.get(predNum - 1).getWord()); predictor.build(); } } } } // Start redrawing onto screen. // Typed word set up and print. StdDraw.setPenColor(Color.BLACK); StdDraw.setFont(typeFont); StdDraw.text(width / 2, height / 4 * 3, typeString.toString()); // Show prediction if it exists. if (best != null) { StdDraw.setPenColor(Color.BLUE); for (int i = 0; i < best.size(); i++) { StdDraw.text( width * ((i + .5) / best.size()), height / 2 + typeFont.getSize() / 2, best.get(i).getWord()); if (multipleWords) { StdDraw.text( width * ((i + .5) / best.size()), height / 2 - typeFont.getSize() / 2, "" + (i + 1)); } } StdDraw.setPenColor(Color.BLACK); } // Print out the sentence. StdDraw.setFont(sentenceFont); StdDraw.textRight(width - 20, height / 4, sentence.toString()); // Pause the loop based on time set at beginning. Set to 0. StdDraw.show(pauseTime); } }