我该如何检查java控制台输出

时间:2017-03-19 16:35:12

标签: java

我用"堆栈"制作SOS游戏。没有其他数据结构,如普通数组,字符串等。
游戏板尺寸3 * 6,我随机使用确定字母。 但我不知道游戏结束与否。

我如何控制控制台上是否有水平或垂直sos

这是我的代码(我是初学者)

public static void main(String[] args) {

    Random rnd = new Random();

    Stack S1 = new Stack(6);
    Stack S2 = new Stack(6);
    Stack S3 = new Stack(6);

    Stack ts1 = new Stack(6);
    Stack ts2 = new Stack(6);
    Stack ts3 = new Stack(6);
    int Round = 0;
    int satir;
    boolean winner = false;

    // for S1
    int i = 0;
    while (i != 6) { // 6time
        i++;
        // System.out.println(i);
        if (rnd.nextBoolean()) {
            S1.push("S");
        } else {
            S1.push("O");
        }
    }
    // for S2
    i = 0;
    while (i != 6) {
        i++;
        if (rnd.nextBoolean()) {
            S2.push("S");
        } else {
            S2.push("O");
        }
    }
    // for S3
    i = 0;
    while (i != 6) {
        i++;
        if (rnd.nextBoolean()) {
            S3.push("S");
        } else {
            S3.push("O");
        }
    }

    int a = 0, b = 0, c = 0;
    int tempa = a;
    int tempb = b;
    int tempc = c;
    while (!winner) {
        System.out.println("User" + ((Round % 2) + 1) + ":"); // User1:
        // User2:

        satir = rnd.nextInt(3) + 1;

        if (satir == 1 && a != 6) {
            a++;
        }
        if (satir == 2 && b != 6) {
            b++;
        }
        if (satir == 3 && c != 6) {
            c++;
        }
        tempa = a;
        tempb = b;
        tempc = c;
        System.out.print("S1  ");
        while (a > 0) { // S1 in icini yazdir bosalt ts1e kaydet
            System.out.print(S1.peek() + " ");
            ts1.push(S1.pop());
            a--;
        }
        a = tempa;
        while (!ts1.isEmpty()) { // S1i tekrar doldur
            S1.push(ts1.pop());
        }
        System.out.println();

        System.out.print("S2  ");
        while (b > 0) { // S2 in icini yazdir bosalt ts1e kaydet
            System.out.print(S2.peek() + " ");
            ts2.push(S2.pop());
            b--;
        }
        b = tempb;
        while (!ts2.isEmpty()) { // S2i tekrar doldur
            S2.push(ts2.pop());
        }
        System.out.println();

        System.out.print("S3  ");
        while (c > 0) { // S3 in icini yazdir bosalt ts1e kaydet
            System.out.print(S3.peek() + " ");
            ts3.push(S3.pop());
            c--;
        }
        c = tempc;
        while (!ts3.isEmpty()) { // S3i tekrar doldur
            S3.push(ts3.pop());
        }
        System.out.println();
        // check if there is sos winner=true;
        if (a > 2) { //check S1 Horizontal
            for (int yatay1 = 0; yatay1 < a; yatay1++) {
                if (S1.peek().equals("S")) {
                    ts1.push(S1.pop());
                    if (S1.peek().equals("O")) {
                        ts1.push(S1.pop());
                        if (S1.peek().equals("S")) {
                            System.out.println("SOS-wow");
                            winner = true;
                        } else {
                            while (!ts1.isEmpty()) {
                                S1.push(ts1.pop());
                            }
                        }
                    } else {
                        S1.push(ts1.pop());
                    }
                }
            }
        }
        Round++;
    } // end of loop

}

0 个答案:

没有答案