Java语言怎么同时在一个界面里允许2个人同时输入,想要制作对战的功能没有思路

Java语言怎么同时在一个界面里允许2个人同时输入,并且分辨是哪个人在输入的,想要制作对战的功能没有思路

回答:对战一般在局域网内通过Socket连接来建立交互;也可以通过TCP连接建立交互;只需要将输入的内容存起来,之后再刷新到页面中即可,一般的游戏都采用刷新机制;例如以局域网内的五子棋对战为例,只需要记录两个用户分别落子的地方,在每次落子后都执行刷新界面操作,就可以达到使用同一个界面的类似效果;当然此处需要使用到Socket连接来监听落子事件是否触发;你可以尝试写一写。

参考教程:https://www.bilibili.com/video/BV1gE41187wJ/?spm_id_from=333.337.search-card.all.click&vd_source=15a078e8b7e5cfb9cc3141bd071d51c3

参考教程2:https://www.bilibili.com/video/BV1kJ411s7zf/?spm_id_from=333.337.search-card.all.click&vd_source=15a078e8b7e5cfb9cc3141bd071d51c3

【以下回答由 GPT 生成】

解决方案

要实现允许两个人同时输入的对战功能,可以使用多线程和输入输出流来实现。下面是一个简单的示例,演示了如何在控制台中实现两个人同时输入,并且能够区分出是哪个人在输入。

步骤 1: 创建两个玩家类

首先,我们需要创建两个玩家类,分别代表两个人进行输入。在这个简单的示例中,我们使用Player类来表示每个玩家。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Player implements Runnable {
    private BufferedReader br;
    private String name;

    public Player(String name) {
        br = new BufferedReader(new InputStreamReader(System.in));
        this.name = name;
    }

    @Override
    public void run() {
        while (true) {
            try {
                String input = br.readLine();
                System.out.println(name + "输入了: " + input);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

步骤 2: 创建游戏类

接下来,我们需要创建一个游戏类,该类负责创建两个玩家实例并启动线程。

public class Game {
    public static void main(String[] args) {
        Player player1 = new Player("玩家1");
        Player player2 = new Player("玩家2");

        Thread thread1 = new Thread(player1);
        Thread thread2 = new Thread(player2);

        thread1.start();
        thread2.start();
    }
}

步骤 3: 运行游戏

现在,我们可以运行Game类,然后两个玩家就可以同时在控制台中进行输入了。

输入示例:
玩家1: 输入1A
玩家2: 输入2B

输出示例:
玩家1输入了: 1A
玩家2输入了: 2B

这就是一个简单的多线程实现的对战功能。注意,这个示例仅为演示多线程和输入输出流的用法,并未实现任何其他的游戏逻辑。你可以根据实际需求来扩展和改进这个示例。

希望以上解决方案能对你有帮助,如果你有任何问题,请随时询问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^