task 3
This commit is contained in:
parent
fa546b47a9
commit
e71cf7d196
2 changed files with 84 additions and 0 deletions
50
CrossPrinter.java
Normal file
50
CrossPrinter.java
Normal file
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* TASK 3
|
||||
* archived at https://git.femboy.science/femsci/ppj/src/branch/task/3
|
||||
* by femsci
|
||||
*/
|
||||
|
||||
public class CrossPrinter {
|
||||
|
||||
public CrossPrinter(int size) {
|
||||
_size = size;
|
||||
_ast = "*".repeat(_size);
|
||||
_whi = " ".repeat(_size);
|
||||
// 3n² chars + 3n of \n
|
||||
_buf = new StringBuffer((int) Math.pow(size * 3, 2) + size * 3);
|
||||
|
||||
fillBuffer();
|
||||
}
|
||||
|
||||
// yes i'm a C# dev
|
||||
private final int _size;
|
||||
private final StringBuffer _buf;
|
||||
// :3333
|
||||
private final CharSequence _whi;
|
||||
private final CharSequence _ast;
|
||||
|
||||
public StringBuffer getBuffer() {
|
||||
return new StringBuffer(_buf);
|
||||
}
|
||||
|
||||
public void printToStdout() {
|
||||
System.out.println(getBuffer().toString());
|
||||
}
|
||||
|
||||
// populate the buffer
|
||||
private void fillBuffer() {
|
||||
fillTopBottom();
|
||||
fillCore();
|
||||
fillTopBottom();
|
||||
}
|
||||
|
||||
// to fill upper and lower segments for strbuffer
|
||||
private void fillTopBottom() {
|
||||
_buf.append(String.format("%s%s%s\n", _whi, _ast, _whi).repeat(_size));
|
||||
}
|
||||
|
||||
// fill the middle segment
|
||||
private void fillCore() {
|
||||
_buf.repeat(String.format("%s\n", _ast.toString().repeat(3)), _size);
|
||||
}
|
||||
}
|
34
Meow.java
Normal file
34
Meow.java
Normal file
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* TASK 3
|
||||
* archived at https://git.femboy.science/femsci/ppj/src/branch/task/3
|
||||
* by femsci
|
||||
*/
|
||||
|
||||
public class Meow {
|
||||
|
||||
// printing logic decoupled to CrossPrinter.java
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (args.length == 0) {
|
||||
System.err.println("No argument provided...");
|
||||
System.exit(2);
|
||||
}
|
||||
|
||||
int size = 0;
|
||||
|
||||
try {
|
||||
size = Integer.parseInt(args[0]);
|
||||
|
||||
if (size <= 0) {
|
||||
// short circuit
|
||||
throw new Exception();
|
||||
}
|
||||
} catch (Exception __) {
|
||||
System.err.println("Invalid argument provided...");
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
var cross = new CrossPrinter(size);
|
||||
cross.printToStdout();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue