Compare commits
2 Commits
b83ac78952
...
968c7f08e5
Author | SHA1 | Date | |
---|---|---|---|
|
968c7f08e5 | ||
|
bd51b77da5 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -11,3 +11,5 @@ chess-java-interface-dummy/target
|
|||||||
chess-java-interface/.classpath
|
chess-java-interface/.classpath
|
||||||
chess-java-interface/.project
|
chess-java-interface/.project
|
||||||
chess-java-interface/target
|
chess-java-interface/target
|
||||||
|
chess-python-interface/.project
|
||||||
|
chess-python-interface/.pydevproject
|
||||||
|
@ -1,16 +1,47 @@
|
|||||||
package net.hypki.wmi.oop.chess.dummy;
|
package net.hypki.wmi.oop.chess.dummy;
|
||||||
|
|
||||||
|
import static java.lang.System.currentTimeMillis;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.Period;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import net.hypki.wmi.oop.chess.ChessInterface;
|
import net.hypki.wmi.oop.chess.ChessInterface;
|
||||||
|
|
||||||
public class BasicStudent implements ChessInterface {
|
public class BasicStudent implements ChessInterface {
|
||||||
|
|
||||||
|
private static final Random random = new Random(currentTimeMillis());
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
public BasicStudent() {
|
||||||
|
this.name = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BasicStudent(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return super.toString();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String nextMove(String opponentMove) {
|
public String nextMove(String opponentMove) {
|
||||||
return opponentMove;
|
try {
|
||||||
|
Thread.currentThread().sleep(1000 * (random.nextInt(3)));
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.err.println("Cannot sleep " + e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "e" + (random.nextInt(7) + 1) + "-e" + (random.nextInt(7) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void printBoard() {
|
public void printBoard() {
|
||||||
System.out.println("Not implemented yet");
|
System.out.println("Printing board not implemented yet");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package net.hypki.wmi.oop.chess;
|
package net.hypki.wmi.oop.chess;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for chess programs for the classes 'Programowanie obiektowe' for Java language
|
* Interface for chess programs for the classes 'Programowanie obiektowe' for
|
||||||
|
* Java language
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface ChessInterface {
|
public interface ChessInterface {
|
||||||
|
@ -6,28 +6,19 @@ public class ChessMatchMain {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println("Preparing chess interface...");
|
System.out.println("Preparing chess interface...");
|
||||||
|
|
||||||
ChessInterface student1White = new BasicStudent();
|
ChessInterface white = new BasicStudent();
|
||||||
ChessInterface student2Black = new BasicStudent();
|
ChessInterface black = new BasicStudent();
|
||||||
|
|
||||||
String nextMove = null;
|
Tournament tournament = new Tournament(white, black);
|
||||||
while (true) {
|
|
||||||
nextMove = student1White.nextMove(nextMove);
|
|
||||||
|
|
||||||
if (nextMove == null)
|
tournament.run();
|
||||||
break;
|
|
||||||
|
|
||||||
nextMove = student2Black.nextMove(nextMove);
|
|
||||||
|
|
||||||
if (nextMove == null)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("Match finished!");
|
System.out.println("Match finished!");
|
||||||
|
|
||||||
System.out.println("Student1 board:");
|
System.out.println("Student1 board:");
|
||||||
student1White.printBoard();
|
white.printBoard();
|
||||||
|
|
||||||
System.out.println("Student2 board:");
|
System.out.println("Student2 board:");
|
||||||
student2Black.printBoard();
|
black.printBoard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,70 @@
|
|||||||
|
package net.hypki.wmi.oop.chess;
|
||||||
|
|
||||||
|
public class Tournament {
|
||||||
|
|
||||||
|
private ChessInterface white;
|
||||||
|
|
||||||
|
private ChessInterface black;
|
||||||
|
|
||||||
|
public Tournament() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Tournament(ChessInterface white, ChessInterface black) {
|
||||||
|
setWhite(white);
|
||||||
|
setBlack(black);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChessInterface getWhite() {
|
||||||
|
return white;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWhite(ChessInterface white) {
|
||||||
|
this.white = white;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChessInterface getBlack() {
|
||||||
|
return black;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBlack(ChessInterface black) {
|
||||||
|
this.black = black;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
String nextMove = null;
|
||||||
|
while (true) {
|
||||||
|
nextMove = getWhite().nextMove(null);
|
||||||
|
|
||||||
|
if (nextMove == null)
|
||||||
|
break;
|
||||||
|
|
||||||
|
System.out.println("Next move: " + nextMove);
|
||||||
|
|
||||||
|
nextMove = getBlack().nextMove(nextMove);
|
||||||
|
|
||||||
|
if (nextMove == null)
|
||||||
|
break;
|
||||||
|
|
||||||
|
System.out.println("Next move: " + nextMove);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String nextMove(ChessInterface chessInterface, String nextMove) {
|
||||||
|
try {
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return chessInterface.nextMove(nextMove);
|
||||||
|
} catch (Throwable t) {
|
||||||
|
System.err.println(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
0
chess-python-interface/net/__init__.py
Normal file
0
chess-python-interface/net/__init__.py
Normal file
0
chess-python-interface/net/hypki/__init__.py
Normal file
0
chess-python-interface/net/hypki/__init__.py
Normal file
11
chess-python-interface/net/hypki/chess/ChessInterface.py
Normal file
11
chess-python-interface/net/hypki/chess/ChessInterface.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
'''
|
||||||
|
Created on May 30, 2023
|
||||||
|
|
||||||
|
@author: ahypki
|
||||||
|
'''
|
||||||
|
class ChessInterface:
|
||||||
|
def nextMove(self, opponentMove = None):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def printBoard(self):
|
||||||
|
pass
|
0
chess-python-interface/net/hypki/chess/__init__.py
Normal file
0
chess-python-interface/net/hypki/chess/__init__.py
Normal file
@ -1,2 +1,7 @@
|
|||||||
- każda klasa - osobny plik
|
- każda klasa - osobny plik
|
||||||
- do gita nie wrzucamy skompilowanych plików
|
- do gita nie wrzucamy skompilowanych plików
|
||||||
|
|
||||||
|
- dodać limit czasowy na jeden ruch: 1 minuta i niech to będzie parametr
|
||||||
|
- ja musze dodać jednak walidator bo mi studenci kombinują
|
||||||
|
|
||||||
|
https://www.developer.com/design/top-10-java-coding-guidelines/
|
Loading…
Reference in New Issue
Block a user