Я создавал игру Connect Four процедурным способом. Может ли кто-нибудь дать несколько рекомендаций, как мне преобразовать этот код в объектно-ориентированную программу? Я впервые попробую объектно-ориентированное программирование, поэтому буду признателен за любые советы/подсказки.
Я знаю, что мне нужно разделить код на разные классы, чтобы сделать его ООП, поэтому Я думал о создании доски | и Основной класс. Будет ли этого достаточно, или мне следует подумать о других классах?
Я читал об интерфейсах и также подумывал об использовании одного из них для игроков (игрок-человек и Компьютерный проигрыватель), но я не уверен, как это лучше всего сделать.
ConnectFourGame.java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
public class ConnectFourGame {
int totalPlayed;
int[][] gameBoard;
final int widthOfBoard=7;
final int heightOfBoard=7;
public ConnectFourGame(){
gameBoard = new int[widthOfBoard][widthOfBoard];
totalPlayed=0;
}
public static void main(String args[])throws IOException{
ConnectFourGame Connect4 = new ConnectFourGame();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Welcome to Connect 4");
System.out.println("There are 2 players red and yellow");
System.out.println("Player 1 is Red, Player 2 is Yellow");
System.out.println("To play the game type in the number of the boardColumn you want to drop you counter in");
System.out.println("A player wins by connecting 4 counters in a row - vertically, horizontally or diagonally");
System.out.println("");
Connect4.printBoard();
outer:
while(true){
int boardColumn = 0;
//Player One Logic
while(true){
System.out.println("");
System.out.println("Player 1, please select your column:");
boardColumn = Integer.parseInt(br.readLine());
if(Connect4.canMakeMove(boardColumn)){
if(Connect4.placeCounter(boardColumn, 1)){
Connect4.printBoard();
System.out.println("\n\nPlayer 1 wins!!!");
break outer;
}
break;
}
else
System.out.println("Column "+boardColumn+" is already full!!");
}
Connect4.printBoard();
//PLAYER 2.
while(true){
System.out.println("");
System.out.println("Player 2, please select your column");
Random r = new Random();
int num = r.nextInt(7);
boardColumn=num;
if(Connect4.canMakeMove(boardColumn)){
if(Connect4.placeCounter(boardColumn, 2)){
Connect4.printBoard();
System.out.println("\n\nPlayer 2 wins!!!");
break outer;
}
break;
}
else
System.out.println("Column "+boardColumn+" is already full!!");
}
Connect4.printBoard();
if(Connect4.gameTied()){
System.out.print("The game has ended in a draw. Please start the game again.");
break;
}
}
}
public void printBoard(){
for(int i=0;i
Подробнее здесь: https://stackoverflow.com/questions/559 ... ed-program
Советы по преобразованию моего процедурного кода в объектно-ориентированную программу ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Новичок в Hyperland на Manjaro - какие -нибудь советы или советы? [закрыто]
Anonymous » » в форуме Linux - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
Anonymous » » в форуме Php - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
Anonymous » » в форуме Php - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
Anonymous » » в форуме Php - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный PHP [закрыто]
Anonymous » » в форуме Php - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-