{"action":"opened","issue":{"url":"https://api.github.com/repos/w4ldo/risk/issues/2","repository_url":"https://api.github.com/repos/w4ldo/risk","labels_url":"https://api.github.com/repos/w4ldo/risk/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/w4ldo/risk/issues/2/comments","events_url":"https://api.github.com/repos/w4ldo/risk/issues/2/events","html_url":"https://github.com/w4ldo/risk/issues/2","id":150004045,"number":2,"title":"Koodikatselmointi 2","user":{"login":"SimoKorkolainen","id":17814689,"avatar_url":"https://avatars.githubusercontent.com/u/17814689?v=3","gravatar_id":"","url":"https://api.github.com/users/SimoKorkolainen","html_url":"https://github.com/SimoKorkolainen","followers_url":"https://api.github.com/users/SimoKorkolainen/followers","following_url":"https://api.github.com/users/SimoKorkolainen/following{/other_user}","gists_url":"https://api.github.com/users/SimoKorkolainen/gists{/gist_id}","starred_url":"https://api.github.com/users/SimoKorkolainen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimoKorkolainen/subscriptions","organizations_url":"https://api.github.com/users/SimoKorkolainen/orgs","repos_url":"https://api.github.com/users/SimoKorkolainen/repos","events_url":"https://api.github.com/users/SimoKorkolainen/events{/privacy}","received_events_url":"https://api.github.com/users/SimoKorkolainen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-04-21T08:32:12Z","updated_at":"2016-04-21T08:32:12Z","closed_at":null,"body":"Latasin zip-tiedostosi to 21.4.2016 klo 10. \r\n\r\nKäyttöliittymäsi kartta on kivan värikäs. Käyttöliittymä ei vielä reagoinut napin painalluksiin, mutta saat varmaan käyttöliittymän toimimaan. Peliäsi oli hieman  vaikea pelata tekstipohjaisesti. Minulla on vaikeuksia hahmottaa kartan tilannetta pelkkien syöttämieni numeroiden perusteella, koska tekstikäyttöliittymä ei tulosta missään vaiheessa kartan tilannetta. Graafinen käyttöliittymä onneksi korjaa tämän ongelman kunhan saat sen toimimaan.\r\n\r\nAjoin testisi. Ne eivät vielä olleet kovin kattavia, mutta domain paketin luokkia olit testannut alustavasti hyvin. Muista, että käyttöliittymän voi jättää testauksen ulkopuolelle.\r\n\r\nOsa metodeistasi ovat hieman raskaita. Luettavuuden parantamiseksi kannattaa pilkkoa metodeja pienemmiksi osiksi. Taistelusimulaattori-luokan metodissa taistele() on seuraava koodirivi, joka toistuu lähes samanlaisena uudestaan koodissasi.\r\n\r\n\r\n```java\r\n            if (hyokkaaja >= 3) {\r\n                hyokkaajanHeitot.add(this.random.nextInt(6));\r\n                hyokkaajanHeitot.add(this.random.nextInt(6));\r\n                hyokkaajanHeitot.add(this.random.nextInt(6));\r\n            } else if (hyokkaaja == 2) {\r\n                hyokkaajanHeitot.add(this.random.nextInt(6));\r\n                hyokkaajanHeitot.add(this.random.nextInt(6));\r\n            } else if (hyokkaaja == 1) {\r\n                hyokkaajanHeitot.add(this.random.nextInt(6));\r\n            }\r\n\r\n```\r\n\r\n\r\nVoisit tehdä tätä koodia varten oman metodin heitaNoppia(int vahvuus). Kumpi koodinpätkä on mielestäsi luettavampi? Älä kopio metodia suoraan vaan lue se ja tee itse vastaavan metodi. Tällöin hyödyt itse eniten. Oppimaasi voit sitten käyttää muiden metodien parantamiseen.\r\n\r\n```java\r\n\r\n    public List<Integer> heitaNoppia(int vahvuus) {\r\n\r\n        List<Integer> heitot = new ArrayList<>();\r\n        \r\n        for (int i = 0; i < Math.min(vahvuus, 3); i++) {\r\n\r\n            heitot.add(random.nextInt(6));\r\n\r\n        }\r\n    \r\n        return heitot;\r\n    }\r\n\r\n```\r\n\r\n\r\nToinen erittäin vaikeasti luettava metodi on mapBuilderin asetaViereiset-metodi. Tiedät, että karttan verkkorelaatio on symmetrinen, joten voisit tehdä seuraavan kaltaisen metodi.\r\n\r\n\r\n```java \r\n\r\n    public void asetaViereisiksi(int i, int j) {\r\n           Alue a = lista.get(i);\r\n           Alue b = lista.get(j);\r\n\r\n           a.asetaViereseksi(b);\r\n\r\n           b.asetaViereiseksi(a);\r\n\r\n    }\r\n\r\n\r\n```\r\n\r\nSeuraavaksi voisit kirjoittaa verkon kaaret taulukkoon. Esimerkiksi taulukko {{1, 2}, {2, 3}} tarkoittaisi, että solmujen yksi ja kaksi välillä on kaari ja solmujen kaksi ja kolme välillä on kaari.  Tämän tehtyäsi kartan alustuksen voisi tehdä helposti silmukan sisällä kutsuen asetaViereisiksi-metodia.\r\n\r\n"}}