2

したがって、1 つのスレッドで常に「ゴールド」の量を更新し、もう 1 つのスレッドでゲームを実行する必要があります。

問題は、カーソルがそれぞれに変更されていることです。最初は、スリープと同期していないことで修正しましたが、ユーザーにテキストを入力させたいときに、最初の行に移動します。誰でもこれを修正する方法を知っていますか?

import java.awt.*;
import java.lang.*;
import java.util.*;
import java.awt.Color;
import hsa.Console;


public class Money {
    public static long gold = 0;
    public static long rate = 1;
    public static void main(String args[]) {
        Console con = new Console (41, 100);
        ThreadTest test1 = new ThreadTest();
        ThreadTest2 test2 = new ThreadTest2();
        test1.setConsole(con);
        test2.setConsole(con);
        test1.start();
        test2.start();
    }
}

public class ThreadTest extends Thread {
    Console c; 
    public void setConsole(Console con) {
        c = con;
    }
    public void run() {
        try {
            sleep(900);
        } catch (InterruptedException e) {
        }
        c.println("Welcome to the world of grind\nThe goal of the game is to amass money and get stuff!\nWhat would you like to do?\n\n<q>uest | <s>hop | <i>nventory");
        c.setCursor(5,1);
        String choice = c.readString();
        }
}

public class ThreadTest2 extends Thread {
    Console c; 
    public void setConsole(Console con) {
        c = con;
    }
    public void run(){
        do
        {
            Money.gold = Money.gold + 1*Money.rate;
            c.setCursor(1,1);
            c.print("You currently have: " + Money.gold + " gold");
            try {
                sleep(1000);
            } catch (InterruptedException e) {
            }
        }
        while (true); 
    }
}
4

1 に答える 1