谁能帮我做一个JAVA游戏代码?
包src//定义一个包来存储JAVA文件。
导入Java . io . *;//导入JAVA包,iostream包。
导入Java . net . *;//导入JAVA包、网络应用包
公共类socket server扩展thread {//server main thread,负责为每个请求连接的客户端分配一个服务线程。
ServerSocket服务器;//定义一个对象
Public SocketServer() {//这个类的午餐构造函数负责初始化服务器,监听端口6000。
Try {//捕捉异常块。
server = new server socket(6000);//实例化该对象
}
Catch(IOException e) {//捕获流异常。
system . exit(0);//程序退出
}
this . start();//启动主线程
}
主线程的公共void run() {//线程体
Try {//捕捉异常块。
While(TRUE) {//这里为TRUE,表示一直监听端口6000可以。
套接字client = server . accept();//为每个请求创建一个套接字。
服务ss =新服务(客户端);//为每个套接字建立一个服务线程。参考第二类,即服务类。
}
}
Catch(IOException e) {//捕获异常的块。
system . exit(1);//程序退出
}
}
public static void MAIN(string[]args){//服务器程序入口,MAIN方法。
new socket server();//这里直接创建一个主线程对象,因为初始化是写在无参数的构造函数里,所以这里直接启动主线程。
}
}
第二类:服务器的服务线程类。
包src//定义一个包来存储JAVA类。
导入Java . io . *;//与上一个类相同
导入Java . net . *;//与上一个类相同
公共类服务扩展线程{//这是为每个请求提供服务的服务线程类。
字符串数据;//定义一个字符串
BufferedReader输入;//输入流
PrintStream输出;//输出流
套接字客户端;//定义一个套接字
Public Service(Socket SOCKET) {//定义一个参数化的构造函数,通过传入的Socket对象服务请求。这是主线程调用的方法。
客户端=套接字;//将传递的参数给刚刚定义的对象。
Try {//捕捉异常块。
inputs = new buffered reader(new InputStreamReader(client
。getInputStream()));//获取输入流
outputs = new PrintStream(client . get output stream());//获取输出流
} catch (IOException e) {
}
this . start();//启动服务线程。开始服务客户。
}
public void run() {// thread的主方法体。
尝试{
While (true) {//表示始终监听端口。
data = inputs . readline();//从输入流中读取客户发送的消息,并将其赋给DATA。
int RES =(int)(math . random()* 3);// 1是石头2剪刀3。布系统随机生成三个数字,分别代表游戏的三种打卡状态。
If (data == null)//如果读取的数据为空,则不继续下一步操作。
打破;
Else {//如果读取的内容不为空,则进行比较。
if(RES = = 0 & amp;& amp《石头》。等于(数据)) (
Data = "电脑也是石头,也扯平了!!";
} else if(RES = = 0 & amp;& amp“剪刀”。等于(数据)) (
Data = "电脑是石头,电脑赢了!!";
} else if(RES = = 0 & amp;& amp“布”。等于(数据)) (
Data = "电脑是一块石头。恭喜你,你赢了!!";
} else if(RES = = 1 & amp;& amp《石头》。等于(数据)) (
Data = "电脑是剪刀。恭喜你,你赢了!!";
} else if(RES = = 1 & amp;& amp“剪刀”。等于(数据)) (
Data = "电脑也是剪刀,扯平了!!";
} else if(RES = = 1 & amp;& amp“布”。等于(数据)) (
Data = "电脑是剪刀,电脑赢了!!";
} else if(RES = = 2 & amp;& amp《石头》。等于(数据)) (
Data = "电脑是布,电脑赢了!!";
} else if(RES = = 2 & amp;& amp“剪刀”。等于(数据)) (
Data = "电脑是布。恭喜你,你赢了!!";
} else if(RES = = 2 & amp;& amp“布”。等于(数据)) (
Data = "电脑也是布,还扯平了!!";
}
否则{
Data = "电脑不知道你的打卡";
}
outputs.println(数据);//通过输出流将比较结果发送给客户端。
}
}
} catch (IOException e) {
}
尝试{
client . close();//关闭服务
} catch (IOException e) {
}
}
}
第三,客户端类。
包src//与上一个类相同
导入Java . io . *;//与上一个类相同
导入Java . net . *;//与上一个类相同
公共类Client {//客户端类
public static void MAIN(string[]args){//客户端程序入口,MAIN方法。
字符串数据;//定义一个字符串
Socket client = null//定义套接字
BufferedReader输入= null//输入流
BufferedReader key = null//输入流
PrintStream输出= null//输出流
尝试{
client = new Socket("localhost ",6000);//客户端程序开始通过端口6000联系服务器,端口与服务器一致。
inputs = new buffered reader(new InputStreamReader(client . getinputstream()));//获取输入流
outputs = new PrintStream(client . get output stream());//获取输出流
key = new buffered reader(new InputStreamReader(system . in));//用于接收用户要发送给客户端的字符串。
}
catch(IOException e) {
System.out.println("不能与服务器连接");
}
尝试{
while(true) {
system . out . println("-");
System.out.print("请打孔:石头/剪刀/布");
data = key . readline();//读取用户输入的字符串。
outputs.println(数据);//将读取的字符串发送到服务器。
system . out . println(" ECHO:"+inputs . readline());//返回服务器的结果,打印到控制台。
}
}
catch(IOException e) {
system . out . println(" ERROR IO ");
}
尝试{
client . close();
}
catch(IOException e) {
System.out.println("无法关闭");
}
}
}
运行的方法是先启动主线程类。然后启动客户端类。然后在客户端输入一个锤子,剪刀或者布,然后回车,服务器会根据判断返回游戏的结果。重复这个过程。可以和服务器多次打卡竞争。
呵呵,这次应该够详细了。有不明白的可以继续补充。o(∩_∩)o...