Takker for gode tilbakemeldinger!
Det stemmer at dette er noe mastermind-aktig spill.
Får dessverre ikke programmet til å fungere i det hele tatt, jeg har prøvd å fikse feilmeldinger i timesvis uten resultat. I begynnelsen hadde jeg 4 feilmeldinger, no har jeg 18.
er det noen som kunne hjulpet meg å rydde litt i koden?
Kode
import java.util.Scanner;
public class MasterMind1 {
//hemmelig streng
public static final String hemmelig = "+-*#";
// Metoden teller hvor ofte en tegn forekommer i en streng.
public static int antallForekomst(char tegn, String streng) {
int[] teller = new int[4]; //Dekalerer teller
for (int i = 0; i < hemmelig.length(); i++) { //teller hvor ofte et tegn forekommer i en streng
if (streng.charAt(i) == '+') {teller [0] ++; }
if (streng.charAt(i) == '-') {teller [1] ++; }
if (streng.charAt(i) == '*') {teller [2] ++; }
if (streng.charAt(i) == '#') {teller [3] ++; }
}
}
for(int i = 0; i < teller.length; i++) {
}
// Metoden kontrollere at alle tegn i den angitt strengen forekommer i den hemmelige strengen.
public static boolean harLovligeTegn(String innStreng) {
for (int n = 0; n < hemmelig.length(); n++) {
if (innStreng.indexOf(hemmelig.charAt(n)) == -1) {
return false;
}
}
return true;
}
/*
* Metoden kontollerer at alle tegn fra den hemmelige strengen forekommer høyst én gang i
* den angitte strengen. */
public static boolean kontrollerForekomster(String innStreng) {
if (hemmelig.charAt(innStreng) == tegn) antall = 1; {
return false;
}
{
return true;
}
}
// Metoden kontrollere at strengen er gyldig:
public static boolean erGyldig(String innStreng, String hemmelig) {
for(int inn = 0; inn < innStreng.length(); inn++) {
int teller = 0;
for(int gyldig = 0; gyldig < charRekke.length; gyldig++) {
if(innStreng.charAt(inn) != charRekke[gyldig]) {
teller++;
}
if(teller >= 4) {
return false;
}
else {
teller = 0;
}
}
// Metoden teller antall riktige tegn som er på riktig plass i den angitte strengen.
public static int antallRiktige(String innStreng) {
int antallRiktige = 0;
if (erGyldig()(innStreng)) {
// teller antall tegn på riktig plass
for (int i = 0; i < innStreng.length(); ++i) {
if (innStreng.charAt(i) == hemmelig.charAt(i)) {
++antallRiktige;
}
}
System.out.println("Strengen innholder " + antallRiktige + " tegn på riktig plass.");
}
return antallRiktige;
}
public static void main(String[] args) {
//Sett opp lesing fra tastatur
Scanner tastatur = new Scanner(System.in);
boolean ferdig = false;
do {
// Les ny streng
System.out.println("Angi streng med lengde " + hemmelig.length() +
" som innholder tegn fra {+, -, *, #}:");
String streng = tastatur.nextLine();
// er programmet ferdig?
ferdig = (antallRiktige(streng) == hemmelig.length());
} while (!ferdig);
System.out.println("Gratulerer! Strengen er lik hemmelig streng.");
}
}
}
Mulig den ser litt rotete ut, dette fordi jeg har endret på litt underveis.
Betaler forøvrig gledelig 50.- som takk, til den som kan hjelpe meg å rydde opp koden.