我正在将文字游戏作为家庭作业。但我被卡住了。我有一个洗牌的字,但我需要每回合显示它的第一个(然后是第2个,第3个......)字母。我试着做这样的事情:
char[] arr = a.toCharArray();
for ( int j = 0; j<arr.length; j++) {
if (original[j] == shuffled[j] ) { //If the not shuffled word's first letter equals to shuffled word's first letter then move to the 2nd letter and reveal it. Maybe update the j to j+1?}
else {
char temp = shuffled[j];
shuffled[j] = original[j];
original[j] = temp;
String h = new String(shuffled);
System.out.println("test " + h) ;
}
}
我的输出应该是这样的:
原文:Badger 洗牌:drBage
第一回合:Brdage
第二回合:Badrge
第三回合:Badegr 第四回合:Badger我的当前输出为:
原字:Cat123
shuff 12Cta3
测试C2Cta3
测试CaCta3
测试Catta3
测试Cat1a3
测试Cat123
测试Cat123
答案 0 :(得分:0)
首先,不要改变这个词 - 你将失去正确的信件订单。
相反:
答案 1 :(得分:0)
以下伪代码应有助于澄清您的问题。我会调用一个函数,例如每次转弯后我在下面定义的显示字母。
public class Unscramble{
public static void main(String[] args){
char[] orig = args[0].toCharArray();
char[] shuffled = args[1].toCharArray();
int count = 0;
while(count < orig.length){
if(!(orig[count] == shuffled[count]))
shuffled = revealLetter(shuffled,orig, count);
count++;
System.out.println(count + " " + new String(shuffled));
}
}
/*
* Reveal letter
* @param shuffled the shuffled array
* @param original original char array
* @param index index of letter to reveal
*/
public static char[] revealLetter(char[] shuffled, char[] original, int index){
shuffled[index] = original[index];
return shuffled;
}
}