From 233303b9f86a1f941bd2536928a2f27bd151b8c2 Mon Sep 17 00:00:00 2001 From: Elisabeth Berg Date: Tue, 24 Feb 2026 21:26:37 +0100 Subject: [PATCH] Added Exchange class --- src/main/java/Exchange.java | 86 ++++++++++++++++++++++++++++++++++ target/classes/Exchange.class | Bin 0 -> 3108 bytes 2 files changed, 86 insertions(+) create mode 100644 src/main/java/Exchange.java create mode 100644 target/classes/Exchange.class diff --git a/src/main/java/Exchange.java b/src/main/java/Exchange.java new file mode 100644 index 0000000..9c60de4 --- /dev/null +++ b/src/main/java/Exchange.java @@ -0,0 +1,86 @@ +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; + +public class Exchange { + + private final String name; + private int week; + private final Map stockMap; + private final Random random; + + public Exchange(String name, List stocks) { + this.name = name; + this.week = 1; + this.stockMap = new HashMap<>(); + this.random = new Random(); + + for (Stock stock : stocks) { + stockMap.put(stock.getSymbol(), stock); + } + + } + + public String getName() { + return name; + } + + public int getWeek() { + return week; + } + + public boolean hasStock(String symbol) { + return stockMap.containsKey(symbol); + } + + public Stock getStock(String symbol) { + return stockMap.get(symbol); + } + + public List findStocks(String searchTerm) { + List result = new ArrayList<>(); + + for (Stock stock : stockMap.values()) { + if (stock.getSymbol().contains(searchTerm) + || stock.getCompany().contains(searchTerm)) { + result.add(stock); + } + } + + return result; + } + + // public Transaction buy(String symbol, BigDecimal quantity, Player player) { + // return; + // } + + // public Transaction sell(Share share, Player player) { + // return; + // } + + public void advance() { + + week++; + + for (Stock stock : stockMap.values()) { // henter stock-objektene + + BigDecimal currentPrice = stock.getSalesPrice(); // henter siste pris fra Stock + + double changePercent = (random.nextDouble() - 0.5) * 0.1; + + BigDecimal change = currentPrice.multiply(BigDecimal.valueOf(changePercent)); + + BigDecimal newPrice = currentPrice.add(change); + + if (newPrice.compareTo(BigDecimal.ZERO) > 0) { // unngÄ negativ pris + stock.addNewSalesPrice(newPrice); + } + } + } + + + +} diff --git a/target/classes/Exchange.class b/target/classes/Exchange.class new file mode 100644 index 0000000000000000000000000000000000000000..1a55e6d7d62f120e9e1d96e74949362b515e4d4e GIT binary patch literal 3108 zcma)7Syx+C7~LlcxsY6F8A?g#R*Dd&R;{*xr7g4+%OpW+apDqg$%T;6n*@sEa#`m( z)v>5`cME(&wOl^?xLW?z!iDXP@ue-`?l`^4E_)0eBE! zYj6pap1c^27_k{sgGXTVtg&dcNBQ19JT+^ElLDTYF>eY~4djz)B=Lo5ls&{yVNKce>o*>4{I9KDbe%V-vOrxEq_s z%OJ2-M+v-g6wsleRKs?G%KVY1jYNdC`>+i)GHREOGWay?$#Ps!i4VIoL3imWM};5z zakqvBfr>nyEI~&jn#i=3G;Jdpw*_h&n+n+Mcji0&Xhy4s7SfhS$gb*WL%VFNd6C_% z$s!c=yi>zLffCgP9}eJN9rxi7yEtPeL(B71@o4crM-YBIfFl|X3zX;2B?~$_z;?M8 zQatf+VGlAQ>n!M=Gvm}%n3b&RK^;fYEuck=#E>e04VjRVvts5@YJSSJ$Be0{(rY|y zM8^%=lJCx>CmFF40=|K)=%t91a5=lVfJ&tpa-i0DoFfV{K5!fC@-&b`ai<*3~Mk1s`HXNZrjGPY@rX6sFA5p>o9SiWiJ}hl*v5mvbtA3 z?1@LCyzH!ajNXYz_gR#99x%V|!x_x!h=O-gX_o0C>UtuE9WpPZ%vjj$Y?_c3itAXA z7V?q0p7{KN5nGlvw{;|B&)mlJG#3-5VTU7QrcH3KZ6;Dt@~j!tiw2P-%tal`c$$Ke zO*5iqV#Kz>6nn0kc_SHVKVi-Enqh0+h<3`W~)M<6v=}x;SC*c;xc)fXCc-?lyb~o zz{TPJg7UWH=yDnH-qrCQuJG!bI5|2jt*9DQ3?)zgK*xvph&NVPa&4PqahdDJ@lE}b z*-vy_#R`4NP7Ik#h2;L@Mt&dkaLTsLSkmc3dFE3(V%lL&^26B6MrP(nL(E)q;(Vca ziXo>gc~g~VFQYbD5BBnF;bv1jsFI%;j$HBs!)KNJgmBfb=5)UEYr(O`xlP#2xXel= zSAai=Qo`q0@FuE*&8w&ldR9>vyoGJ&ZeqtOc5=9z!@aB6*RqCsfez1g>zp$^1KrbP9dU{4{6v+*&`^9^%YaxYp5*5>~9?j7A4( z{3sA!U=WA+FAHzyQ-YQ-{n~FiaH&i)C+$#~WROdoOaz87yus$WZ;CeW*>Lj+9(Fc& z^C%bh_$6`8YZ!H*7@}T5)MmnRO!zUbm=HLNM;)*e4p@Z)cFrYxQe01C0bWH8uOf%{ z1fC>LMi);>dPFJTr7lKpVUpdS8kG2J2n(!XCZmCt0u9LiH>WYXf(i~}a(ET~7E0oR zt3VRJw#dvfn%Kpz04>yP8}-qSgY;Jy|9km9#5U!%Fp|r71WCm}DLbE1T4=zoA}wUr zvRXI>_d2%Up@ntqDVWo6Kq+LMDHW@RJTFq6N;JaF+@;56gXeCb&NC^UavLv$*U?9p zWSlWT8kVFz_NDPm4PKb3!HaW8Jgs$}AMjEduXlJ`1Ku>=>d*q(_jo6b_phO>IiRKS zF)@^f($Yh2rOY5*4Km>)Lk+CCnH+Rc?|m4cE{8C||4FV{7**UIRky;d!(9ViBRwOy z?+`x46{2?0f1lxV*3?IHT;rUV7?t>fBTYG}S~_V5-16>F4E;${3Vg{#T=?p5cTKUi literal 0 HcmV?d00001