UU | IT | OOP med Java våren 2025
Nm spelas av två spelare. Man har en hög med ett antal stickor. Spelarna turas om att ta stickor från högen. En spelare måste ta minst en sticka och ej mer än hälften av stickorna. Den spelare som ej kan utföra sitt drag (ta minst en sticka från högen) förlorar. Så den sista stickan plockas aldrig.
Den klass som implementerar datorspelaren måste välja sina drag enligt någon enkel algoritm. (Den behöver inte spela bra, men den ska följa spelets regler.)
Det här är tänkt att vara en ganska enkel uppgift; det ska gå att implementera uppgiften med drygt hundra rader kod och det är ingen detalj som är särskilt krånglig att få till.
Tips 1: Om du tycker att det är svårt att hitta en bra objektorienterad lösning på en gång kan det vara lättare att först fokusera på att få ihop nåt som fungerar och sedan hitta en bra objektorienterad organisation.
Tips 2: Exempel på ett program som läser på kommandoraden och ett program som läser från standard input.
Tips 3: Hälften av 5 är 2.5. Om fem stickor återstår kan den som står på tur endast dra en eller två stickor (minst en sticka, ej mer än 2.5). Om en sticka återstår går det inte att utföra ett drag och den som står på tur förlorar.
Till exempel: När du läser in ett drag måste draget kontrolleras. Ska draget kontrolleras vid inläsningstillfället eller kan man vänta till när draget ska utföras? Båda lösningarna har för- och nackdelar. Tala om hur du gjorde.