Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* STUDENT SUBMISSION BEGINS */
- public class hirsipuu{
- public static void main (String[] args){
- Long l = Long.parseLong(args[0]);
- Apumetodit apu = new Apumetodit(l);
- String pMerkki = apu.lueMerkkijono();
- int pLuku = apu.lueKokonaisluku();
- StringBuffer tSana=new StringBuffer();
- for (int k=0;k<pMerkki.length();k++){
- tSana.append('_');
- }
- System.out.println(tSana);
- for (int i=0;i<=pLuku;i++){
- String tMerkki = apu.lueMerkkijono();
- if(tSana.toString().equals(pMerkki)){
- System.out.println("Onnistuit!");
- break;
- }
- if (tMerkki == ""){
- System.out.println("Tarvitaan vähintään yksi merkki.");
- continue;
- }
- for (int x=0;x<pMerkki.length();x++){
- if (tMerkki.charAt(0) == pMerkki.charAt(x)){
- tSana.setCharAt(x, pMerkki.charAt(x));
- }
- }
- System.out.println(tSana);
- }
- }
- }
- /* STUDENT SUBMISSION ENDS */
- class Apumetodit{
- private class MjonoGeneraattori{
- int arvottu = 0;
- String arvattavaSana = null;
- java.util.ArrayList<String> arvaamatta = new java.util.ArrayList<>(
- java.util.Arrays.asList(
- new String[]{"q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"}));
- private final java.util.ArrayList<String> kaupungit = new java.util.ArrayList<String>(
- java.util.Arrays.asList(
- new String[]{"Helsinki", "Turku", "Salo", "Vantaa", "Kuopio", "Istanbul", "Madrid", "Tokio", "Berliini", "Rooma", "Tukholma"}));
- String seuraava(){
- if(arvottu++ == 0) {
- arvattavaSana = kaupungit.get(r.nextInt(kaupungit.size())).toLowerCase();
- if(r.nextBoolean()){
- arvaamatta.clear();
- for(char c : arvattavaSana.toCharArray()) arvaamatta.add(c+"");
- }
- return arvattavaSana;
- }
- //20% mahis tyhjälle merkkijonolle
- if(r.nextDouble() < 0.2)
- return "";
- if(arvaamatta.size() == 0){
- System.out.println("Kaikki kirjaimet on jo arvattu!");
- return " ";
- }
- return arvaamatta.remove(r.nextInt(arvaamatta.size()));
- }
- }
- private final java.util.Random r;
- private final MjonoGeneraattori gen;
- public Apumetodit(long siemen) {
- r = new java.util.Random(siemen);
- gen = new MjonoGeneraattori();
- }
- /**
- * Käyttäjä syöttää ohjelmallesi yhden merkkijonon.<br>
- * @return Käyttäjän syöttämä merkkijono
- */
- public String lueMerkkijono() {
- String kaupunki = gen.seuraava();
- System.out.println("<ignore>*Odotetaan syötettä:"+kaupunki);
- return kaupunki;
- }
- /**
- * Käyttäjä syöttää ohjelmallesi yhden kokonaisluvun.<br>
- * @throws Exception poikkeus heitetään, jos käyttäjä syöttää jotakin muuta kuin numeron
- * @return Käyttäjän syöttämä kokonaisluku
- */
- //System.in sulkeminen on huono juttu
- @SuppressWarnings("resource")
- public int lueKokonaisluku() throws NumberFormatException {
- //ViLLE syöttää jotakin muuta kuin numeron 10% todennäköisyydellä
- if(r.nextDouble() < 0.1){
- System.out.println("<ignore>*Odotetaan syötettä:"+satunnainenMerkkijono());
- throw new NumberFormatException();
- }
- int syote = r.nextInt(15)+5;
- System.out.println("<ignore>*Odotetaan syötettä:"+syote);
- return syote;
- }
- /**
- * Toimii kuten Random-luokan nextInt. Palauttaa satunnaisen kokonaisluvun väliltä [0,ylaraja[.<br>
- * Yläraja on eksklusiivinen, eli sitä ei koskaan palauteta.
- * @param ylaraja eksklusiivinen yläraja satunnaiselle kokonaisluvulle
- * @return satunnainen kokonaisluku x: 0 <= x < ylaraja
- */
- public int satunnainenKokonaisluku(int ylaraja) {
- return r.nextInt(ylaraja);
- }
- private String satunnainenMerkkijono(){
- String s = "qwertyuiopasdfghjklzxcvbnm";
- int pituus = r.nextInt(5)+2;
- String result = "";
- for(int i=0; i<pituus; i++){
- result += s.charAt(r.nextInt(s.length()));
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement