uni

Thing1's amazing uni repo
Log | Files | Refs

commit 9e65cde874bb6fbfe65d9685261692097bc728bf
parent 918d3d1509009f869d99d69c83c2f6a4f2d00278
Author: thing1 <thing1@seacrossedlovers.xyz>
Date:   Mon,  2 Mar 2026 09:34:20 +0000

loads of notes, and java work

Diffstat:
ACS10120/25.02.26.md | 3+++
ACS10120/27.02.26.md | 11+++++++++++
ACS12320/workshop/5/src/Monster/Dungon.java | 38++++++++++++++++++++++++++++++++++++++
MCS12320/workshop/5/src/Monster/Main.java | 67++++++++++++++++++++++++++++++++++++++++++++++---------------------
ACS12320/workshop/5/src/Monster/Menu.java | 40++++++++++++++++++++++++++++++++++++++++
ACS12320/workshop/5/src/Monster/MenuItem.java | 19+++++++++++++++++++
MCS12320/workshop/5/src/Monster/Player.java | 8++++----
7 files changed, 161 insertions(+), 25 deletions(-)

diff --git a/CS10120/25.02.26.md b/CS10120/25.02.26.md @@ -0,0 +1,3 @@ +# 25/02/26 + + diff --git a/CS10120/27.02.26.md b/CS10120/27.02.26.md @@ -0,0 +1,11 @@ +# 27/02/26 + +## CIA + +- confidentiality + - only the people who should see data can see it +- integrity + - data should be safe when saved +- availability + - data should be available whenever it needs to be + diff --git a/CS12320/workshop/5/src/Monster/Dungon.java b/CS12320/workshop/5/src/Monster/Dungon.java @@ -0,0 +1,38 @@ +package Monster; + +public class Dungon { + private Room[][] rooms; + + public Dungon(int w, int h) { + rooms = new Room[h][w]; + updateConnections(); + } + + public void setRoom(int x, int y, Room room) { + rooms[y][x] = room; + updateConnections(); + updateConnections(); + } + + public Room getRoom(int x, int y) { + updateConnections(); + return rooms[y][x]; + } + + private void updateConnections() { + for (int r = 0; r < rooms.length; r++) { + for (int c = 0; c < rooms[r].length; c++) { + if (rooms[r][c] != null) { + if (r > 0) + rooms[r][c].setNorth(rooms[r - 1][c]); + if (r < rooms.length - 1) + rooms[r][c].setSouth(rooms[r + 1][c]); + if (c > 0) + rooms[r][c].setWest(rooms[r][c - 1]); + if (c < rooms[r].length - 1) + rooms[r][c].setEast(rooms[r][c + 1]); + } + } + } + } +} diff --git a/CS12320/workshop/5/src/Monster/Main.java b/CS12320/workshop/5/src/Monster/Main.java @@ -1,5 +1,7 @@ package Monster; +import Monster.Dungon; + /** * The entry point of the program */ @@ -11,27 +13,50 @@ public class Main { Weapon sword = new Weapon(WeaponType.SWORD, 6); Player player = new Player(6, sword, "Hero"); - Room greathall = new Room("Great Hall"); - Room crypt = new Room("Crypt", null, null, null, greathall); - greathall.setEast(crypt); - Room park = new Room("Park", crypt, null, null, null); - crypt.setSouth(park); - - player.setRoom(greathall); - if (player.moveEast() == null) - System.out.println("couldnt move, no room East"); - else - System.out.println(player.getRoom().getName()); - - if (player.moveWest() == null) - System.out.println("couldnt move, no room West"); - else - System.out.println(player.getRoom().getName()); - - if (player.moveWest() == null) - System.out.println("couldnt move, no room West"); - else - System.out.println(player.getRoom().getName()); + Dungon d = new Dungon(2,2); + + d.setRoom(0,0, new Room("Great Hall")); + d.setRoom(1,0, new Room("Crypt")); + d.setRoom(0,1, new Room("Park")); + + player.setRoom(d.getRoom(0, 0)); + + Menu menu = new Menu(); + menu.addEntry(new MenuItem('N', "Go North")); + menu.addEntry(new MenuItem('S', "Go South")); + menu.addEntry(new MenuItem('E', "Go East")); + menu.addEntry(new MenuItem('W', "Go West")); + menu.addEntry(new MenuItem('P', "Print Room")); + menu.addEntry(new MenuItem('L', "List all rooms")); + menu.addEntry(new MenuItem('Q', "Quit")); + + for (;;) { + switch (menu.runMenu()) { + case 'N': + System.out.println("Going North"); + if (player.getRoom() == player.moveWest()) + System.out.println("No room North"); + break; + case 'S': + System.out.println("Going South"); + if (player.getRoom() == player.moveSouth()) + System.out.println("No room South"); + break; + case 'E': + System.out.println("Going East"); + if (player.getRoom() == player.moveEast()) + System.out.println("No room East"); + break; + case 'W': + System.out.println("Going West"); + if (player.getRoom() == player.moveWest()) + System.out.println("No room West"); + break; + + case 'P': System.out.println(player.getRoom().getName()); break; + case 'Q': System.out.println("Goodbye"); return; + } + } } } diff --git a/CS12320/workshop/5/src/Monster/Menu.java b/CS12320/workshop/5/src/Monster/Menu.java @@ -0,0 +1,40 @@ +package Monster; + +import java.util.*; + +public class Menu { + private ArrayList<MenuItem> items; + Scanner sc; + + public Menu() { + items = new ArrayList<>(); + sc = new Scanner(System.in); + } + + public void addEntry(MenuItem item) { + this.items.add(item); + } + + public char runMenu() { + + for (;;) { + System.out.print("\n"); + for (MenuItem item : items) + System.out.println(item.toString()); + System.out.print("> "); + + String in = sc.nextLine().toUpperCase(); + if (in.length() != 1) { + System.err.println("Input should be 1 charater"); + continue; + } + + for (MenuItem item : items) { + if (in.charAt(0) == item.getCmd()) + return in.charAt(0); + } + + System.err.printf("Unknown item %c\n", in.charAt(0)); + } + } +} diff --git a/CS12320/workshop/5/src/Monster/MenuItem.java b/CS12320/workshop/5/src/Monster/MenuItem.java @@ -0,0 +1,19 @@ +package Monster; + +public class MenuItem { + private String msg; + private char cmd; + + public MenuItem(char cmd, String msg) { + this.cmd = cmd; + this.msg = msg; + } + + public String toString() { + return cmd + ": " + msg; + } + + public char getCmd() { + return this.cmd; + } +} diff --git a/CS12320/workshop/5/src/Monster/Player.java b/CS12320/workshop/5/src/Monster/Player.java @@ -22,10 +22,10 @@ public class Player { public void setRoom(Room room) { this.room = room; } public Room getRoom() { return this.room; } - public Room moveNorth() { return (this.room = (this.room.getNorth() != null) ? this.room.getNorth() : null); } - public Room moveSouth() { return (this.room = (this.room.getSouth() != null) ? this.room.getSouth() : null); } - public Room moveEast() { return (this.room = (this.room.getEast() != null) ? this.room.getEast() : null); } - public Room moveWest() { return (this.room = (this.room.getWest() != null) ? this.room.getWest() : null); } + public Room moveNorth() { return (this.room = (this.room.getNorth() != null) ? this.room.getNorth() : this.room); } + public Room moveSouth() { return (this.room = (this.room.getSouth() != null) ? this.room.getSouth() : this.room); } + public Room moveEast() { return (this.room = (this.room.getEast() != null) ? this.room.getEast() : this.room); } + public Room moveWest() { return (this.room = (this.room.getWest() != null) ? this.room.getWest() : this.room); } private boolean addtreasure(Treasure t) { if (this.treasureCount < this.MAXTREASURE) this.treasure[this.treasureCount] = t;