java的socket实现一个九宫棋游戏

前言

一个简单的socket小作品=v=

一个机酱在大三实验课中接触到很基础的JAVA语言socket编程。至于你问为什么嵌入式的机酱会弄些Java吗?emmmmm,可能是当初C语言版的不够好玩吧,另外如果碰巧有用,欢迎抱走的yoo

在之前的笔记《网络基础知识和网络编程》中有讲解过关于网络编程的一些基本知识,以及一些LinuxC的socket编程,希望粗浅了解socket内部肌理的同学,右转咱的学习笔记嘿。
.

试验内容

本次实验的内容是实现一个九宫棋游戏。

首先给不知道九宫棋的小伙伴们科普一下,九宫棋规则如下图:

如图所示,X先走,双方有一方将三个格子连成线(横竖斜都可以)则获胜,如果双方没能连成线而将格子占满则平局,很像是微缩版的五子棋~
.

实验要求

1、编写服务器,等待客户端连接游戏,为第一个连入的客户端分配标志“X”,为第二个分配“O”

2、第二个连入服务器的玩家名字不能与第一个重复。每回合向可以操作的玩家发送回合标志,“X”先行,随后切换为“O”如此循环

3、判断游戏是否结束,并将结果发送给玩家

4、编写客户端,可以连接服务器,等待服务器发送回合标志后向服务器发送想要走的格子号。
.

实验代码

服务器部分:
import java.io.*;
import java.net.*;

//定义玩家类
    class Joueur {
        Socket joueur = null;
        DataOutputStream dataoutput = null;
        DataInputStream datainput = null;
        String name;
        String mark;
        //构造函数,初始化soket对象
        Joueur (Socket j) {
            this.joueur = j;
            try {
                InputStream input = j.getInputStream();
                this.datainput = new DataInputStream(input);                
                OutputStream output = j.getOutputStream();
                this.dataoutput = new DataOutputStream(output);
            } catch (IOException e) {
                System.err.println("Erreur ouverture des flux serveur");
                System.exit(1);
            }
        }
        void initJoueur (String name, String mark) {
            this.name = name;
            this.mark = mark;
        }
    }

import java.io.*;
import java.net.*;

// 创建服务器类
class TicTacToeServeur {

        static final String MARK_1 = "X";
        static final String MARK_2 = "O";
        static final String MARK_NONE = " ";
        static final String JOUEZ = "JOUEZ";
        static final String POSITION = "POSITION";
        static final String ADV_KO = "ABANDON";
        static final String INVALIDE = "INVALIDE";
        static final String GAGNE = "GAGNE";        //胜利
        static final String FINI = "FINI";          //平局结束
        static final

你可能感兴趣的:(java的socket实现一个九宫棋游戏)