現在Javaでオセロを作成しております。
その中で『プレイヤー1(サーバー)VSプレイヤー2(クライアント)』
でプログラムを作成したいと思っております。
具体的には
基本的なルールはサーバーで実行。
クライアントが行うのは、配置する座標を決めてサーバーに返す処理です。
クライアントはサーバーを継承してコーディングを行なっています。
どのようなメソッドで値を返すことができるのかわからずご質問させていただきました。
また、教えていただきたいと感じている点をまとめるとこの通りです。
・座標となるpointをサーバーに返す処理
・どちらかのターンの時に反対のコードを座標が帰ってくるまで待機させる
かなり途中のコードですが、下記の中の
pointをサーバーに返したいと考えております。
Java
1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.io.PrintWriter; 5import java.net.Socket; 6import java.util.ResourceBundle; 7 8 /** 9 * ソケット通信(クライアント側) 10 */ 11 class Clients extends Servers{ 12 void runClient() { 13 ResourceBundle rb = ResourceBundle.getBundle("Pro"); 14 Socket cSocket = null; 15 BufferedReader in = null; 16 try { 17 p2 = new Player('b', 2);//プレイヤー1 白 18 cSocket = new Socket(rb.getString("server_id"), Integer.parseInt(rb.getString("server_port"))); 19 in = new BufferedReader(new InputStreamReader(cSocket.getInputStream())); 20 PrintWriter out = new PrintWriter(cSocket.getOutputStream(), true); 21 System.out.println("サーバーと接続中"); 22 while (true) { 23 for (int i = 0; i < board.length; i++) { 24 for (int j = 0; j < board[i].length; j++) { 25 if (board[i][j] == 0) {//コマが置かれていない場所をチェック 26 if (Board.check_change(board, i, j, p2.color, "check")) {//置ける時 27 board[i][j] = 3; 28 } 29 } 30 } 31 } 32 Board.print(kazu, board, com2); 33 for (int i = 1; i < status.length; i++) {//盤面の状態を表示 34 System.out.println(color[i] + ":" + status[i] + " "); 35 } 36 System.out.println("------------------------"); 37 System.out.println(color[p2.color] + "のターン" + " "); 38 int[] point = p2.getPoint();//一番有利な座標を見つける。 39 col = point[0]; 40 row = point[1]; 41 } //mainループ 42 } catch (Exception e) { 43 e.printStackTrace(); 44 } finally { 45 try { 46 if (in != null) { 47 in.close(); 48 } 49 if (cSocket != null) { 50 cSocket.close(); 51 } 52 } catch (IOException e) { 53 e.printStackTrace(); 54 } 55 } 56 } 57 } 58 59 public class Client { 60 public static void main(String[] args) { 61 Clients s2 = new Clients(); 62 s2.runClient(); 63 } 64 } 65
回答1件
あなたの回答
tips
プレビュー