java文字小游戏代码 java小游戏代码大全
谁帮我做个JAVA小游戏代码
第一个类,服务器主线程类。
package src; //定义一个包,存放JAVA文件。
import java.io.*; //导入JAVA包,输入输出流包
import java点虐.*; //导入JAVA包,网络应陆穗用包
public class SocketServer extends Thread { //服务器主线程,负责为每个发出请求连接的客户端分配一个服务线程。
ServerSocket server; //定义一个对象
public SocketServer() { //该类的午餐构造方法,负责初始化服务器,监听6000端口
try { //捕捉异常的块
server = new ServerSocket(6000); //实例化对象
}
catch(IOException e) { //捕捉流异常
System.exit(0); //程序退出
}
this.start(); //启动主线程
}
public void run() { //主线态孙程的线程体
try { //捕捉异常的块
while(true) { //这里为TRUE,表示一直监听6000端口可
Socket client = server.accept(); //为每个请求建立一个SOCKET
Service ss = new Service(client); //为每个SOCKET建立一个服务线程。 这里参考第二个类,SERVICE类
}
}
catch(IOException e) { //捕捉异常的块
System.exit(1); //程序退出
}
}
public static void main(String[] args) { //服务器程序入口,MAIN方法
new SocketServer(); //这里直接创建一个主线程对象,因为初始化写再无参构造函数里面,所以这里直接就启动主线程了。
}
}
第二各类:服务器的服务线程类。
package src; //定义一个包,存放JAVA类
import java.io.*; //同上一个类
import java点虐.*; //同上一个类
public class Service extends Thread { //这是服务于每个请求的服务线程类。
String data; //定义一个字符串
BufferedReader inputs; //输入流
PrintStream outputs; //输出流
Socket client; //定义一个SOCKET
public Service(Socket socket) { //定义有参构造方法,通过传入的SOCKET对象来为某一个请求服务。这里就是主线程调用的方法。
client = socket; //将传递过来的参数给刚定义的这个对象.
try { //捕捉异常的块
inputs = new BufferedReader(new InputStreamReader(client
.getInputStream())); //获取输入流
outputs = new PrintStream(client.getOutputStream()); //获取输出流
} catch (IOException e) {
}
this.start(); //启动服务线程。开始对客户服务。
}
public void run() { //线程的主要方法体
try {
while (true) { //表示一直侦听端口
data = inputs.readLine(); //从输入流中读取客户发来的消息,并赋值给DATA
int res = (int) (Math.random() * 3); // 1是石头2是剪刀3布 系统随机生成三个数字,分别表示游戏的三个出拳状态
if (data == null)//如果读取到的数据是空值,就不再继续下一步帆悉链操作。
break;
else { //如果读取到的不是空,则进行比较
if (res == 0 "石头".equals(data)) {
data = "电脑也是石头,打平了!!";
} else if (res == 0 "剪刀".equals(data)) {
data = "电脑是石头,电脑赢了!!";
} else if (res == 0 "布".equals(data)) {
data = "电脑是石头,恭喜,你赢了!!";
} else if (res == 1 "石头".equals(data)) {
data = "电脑是剪刀,恭喜,你赢了!!";
} else if (res == 1 "剪刀".equals(data)) {
data = "电脑也是剪刀,打平了!!";
} else if (res == 1 "布".equals(data)) {
data = "电脑是剪刀,电脑赢了!!";
} else if (res == 2 "石头".equals(data)) {
data = "电脑是布,电脑赢了!!";
} else if (res == 2 "剪刀".equals(data)) {
data = "电脑是布,恭喜,你赢了!!";
} else if (res == 2 "布".equals(data)) {
data = "电脑也是布,打平了!!";
}
else {
data = "电脑不认识你出的拳";
}
outputs.println(data); //将比较的结果通过输出流发给客户端。
}
}
} catch (IOException e) {
}
try {
client.close(); //关闭服务
} catch (IOException e) {
}
}
}
第三个,客户端类。
package src; //同上一个类
import java.io.*; //同上一个类
import java点虐.*; //同上一个类
public class Client { //客户端类
public static void main(String[] args) { //客户端程序入口,MAIN方法
String data; //定义字符串
Socket client = null; //定义SOCKET
BufferedReader inputs = null; //输入流
BufferedReader key = null; //输入流
PrintStream outputs = null; //输出流
try {
client = new Socket("localhost",6000); //客户程序启动通过6000端口和服务器联系,和服务器保持端口一致。
inputs = new BufferedReader(new InputStreamReader(client.getInputStream())); //获取输入流
outputs = new PrintStream(client.getOutputStream()); //获取输出流
key = new BufferedReader(new InputStreamReader(System.in)); //用于接收用户要发送给客户端的字符串。
}
catch(IOException e) {
System.out.println("CAN NOT CONN WITH SERVER");
}
try {
while(true) {
System.out.println("----------------------------");
System.out.print("请出拳:石头/剪刀/布 ");
data = key.readLine(); //读取用户输入的字符串。
outputs.println(data); //将读取的字符串发送给服务器。
System.out.println("ECHO: " + inputs.readLine()); //返回服务器的结果并打印到控制台。
}
}
catch(IOException e) {
System.out.println("ERROR IO");
}
try {
client.close();
}
catch(IOException e) {
System.out.println("can not close it");
}
}
}
运行的方法是先启动主线程类。然后启动客户端类。并再客户端一方输入 锤子,或 剪刀 或 布 ,然后回车,服务器会根据判断返回游戏的结果。这个过程反复执行。可以多次出拳和服务器较量。
呵呵,这次应该够详细了,不明白的可以继续补充。o(∩_∩)o...
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: java文字小游戏代码 java小游戏代码大全
本文地址: https://pptw.com/jishu/297005.html