Автор Тема: [ПОЧТИ РЕШЕНО] Игра слов, random разброс букв слова  (Прочитано 4211 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Fozz

  • Коллежский секретарь
  • ***
  • Сообщений: 79
  • Репутация: 0
  • Пол: Мужской
Пытаюсь сделать мини игруху.
Даем слово, перваяи последняя буквы остаются на своих местах, а в середине все меняется рендемно.
Пример:
 ABCDEFG
Результат: A [CFEBD] G
Вот мой код, который смог написать.
Спасибо зща подсказки
package components;
import java.util.*;
import java.lang.*;
public class Java_Problem2
{
static Scanner input = new Scanner (System.in);

public static void main(String args[])
{
String sentence = "";


System.out.print("Enter a string: ");
sentence = input.nextLine();
int length2 = sentence.length();
String stringNoSpace = sentence.replaceAll(" " , "" );
System.out.println("The string is: " + sentence + "\nNo white spaces string is: " + stringNoSpace);
System.out.println("The lenght is: " + length2);

String delimeter = "";
String[] tempS = sentence.split(delimeter);

        String[] abc = sentence.split(" ");
       
int count = 0;
int ind = 0;


for (int i = 1; i < tempS.length; i++)
{
System.out.printf(tempS[i] + "[index " + i + "] ");
count++;
//if white space is found
if (tempS[i].equals(" "))
{
System.out.println("\n::WHITE SPACE FOUND::" + count);
count = 0;
ind = 0;
}
else
{
ind++;
System.out.println("CHECK: " + ind);
//tempS[].toString();

}

}
for (int j = 0; j < abc.length; j++)
{
System.out.print("LOOP2: [" + abc[j] + "] ");

String[] xxx = abc[j].split("");
int leng = xxx.length;
//abc[j].charAt(randomText(xxx, length2));

System.out.print(xxx[1] + "_");

for (int x = 2; x < abc[j].length(); x++)
{

System.out.print("[" + xxx[randomText(xxx, leng)] + "]");


}
System.out.print("_" + xxx[leng-1]);
System.out.print("<<<<" + xxx[0] + ">>>>>");


//randomText(xxx, 25);

}

System.exit(0);
}

static int randomText(String[] xxx, int numOfLet)
{
int [] arrayOfLet = new int [numOfLet];

int ranNum;

Random rnds = new Random();

int min = 2;
int max = numOfLet-1;
int toPopulate = max - min;

int rand = rnds.nextInt(max - min + 1) + min;


for (int i = 1; i <numOfLet; i++)
{
arrayOfLet [i] = i;
}

/*for (int j = 2; j <= max; j++)
{
if (arrayOfLet[j] != 0)
{
arrayOfLet [j] = rand;
System.out.print("(rand is " + rand + ",el is " + arrayOfLet[j] + ", j is " + j +") ");
if (arrayOfLet[rand] == 0)
{
System.out.print("return0");

return 0;
}
else
{
arrayOfLet [rand] = 0;
System.out.print("(R" + rand + ")");
return rand;
}

}
else
{
System.out.print("return0");
return 0;
}


}
*/
/*if (arrayOfLet[ran] != 0)
{
System.out.print("<" + ran + ">");
arrayOfLet[ran] = 0;
return ran;
}
else
{

System.out.print("ZERO");
return 0;
}
*/
//return 0;
System.out.print("return0");
return 0;

//return ranNum;

}
}
« Последнее редактирование: °ТУгбв 08, 2009, 08:33:02 pm от Fozz »
//EARNEST /aka FOZZ

Оффлайн Fozz

  • Коллежский секретарь
  • ***
  • Сообщений: 79
  • Репутация: 0
  • Пол: Мужской
Re: [ПОМОГИТЕ] Игра слов, random разброс букв слова
« Ответ #1 : °ТУгбв 06, 2009, 07:46:09 pm »
Да уж...помощи от то всех прям :)

---
Сам решил...да уж..помощи так и жди на этом форуме :( Буду искать другой тогда :(
Вот код, если кто-то заинтересован
Код: (java) [Выделить]
package components;
/*
 * Author: O.O.P.
 * Nickname: FoZZ_EARNEST
 * Version: beta, testing
 * Date: 6 Aug 2009
 */
import java.util.*;
//scramble game
public class Java_P2_take2
{
//Scanner
static Scanner input = new Scanner (System.in);
//main method
public static void main (String[] args)
{
//string sentence initializer
String sentence = "";
//input request
System.out.print("INPUT: ");
//read input
sentence = input.nextLine();
//invoke a method that would break the sentence onto separate words 
//using white space
breakIntoWords(sentence);
//exit
System.exit(0);
}
//break down the sentence
private static void breakIntoWords (String sentence)
{
//split the sentence using delimiter
String[] splitIW = sentence.split(" ");
//output
System.out.print("SCRAMBLED: ");
//loop, to shuffle the words
for (int i = 0; i < splitIW.length; i++)
{
//if the word is too short, print it out
if (splitIW[i].length() <= 3)
{
System.out.print(splitIW[i] + " ");
}
//else shuffle it
else
{
shuffle(splitIW[i]);
}
}
}
//shuffle function
private static void shuffle(String sentence)
{
//extract the middle part of the sentence; w/o the 1st and the last chars
String midPart = sentence.substring(1, sentence.length()-1);
//split that middle part
String[] midPartArray = midPart.split("");
//first char of the word
char firstC = sentence.charAt(0);
//last char of the word
char lastC = sentence.charAt(sentence.length()-1);
//shuffle the middle part
Collections.shuffle(Arrays.asList(midPartArray));
//print out the first char
System.out.print(firstC);
//loop, to print out chars are random locations
for (int i = 0; i < midPartArray.length; i++)
{
System.out.print( midPartArray[i]);
}
//print out the last char
System.out.print(lastC + " ");
}
}
« Последнее редактирование: °ТУгбв 08, 2009, 08:21:03 pm от Fozz »
//EARNEST /aka FOZZ

Оффлайн Fozz

  • Коллежский секретарь
  • ***
  • Сообщений: 79
  • Репутация: 0
  • Пол: Мужской
Re: [РЕШЕНО] Игра слов, random разброс букв слова
« Ответ #2 : °ТУгбв 08, 2009, 08:22:15 pm »
Буду модифицировать, добавлю пару функций, попозже выложу код. Если кто-то заинтересован, можем пообсуждать.
//EARNEST /aka FOZZ

Оффлайн redzone

  • Коллежский регистратор
  • *
  • Сообщений: 4
  • Репутация: 0
я вот учусь программировать и делать что-то подобное, напишешь свой юин? А то у меня мог возникнуть вопросы, а обратиться не к кому(

Оффлайн Fozz

  • Коллежский секретарь
  • ***
  • Сообщений: 79
  • Репутация: 0
  • Пол: Мужской
я ICQ очень редко пользуюсь. Если есть MSN, то могу скинуть.
//EARNEST /aka FOZZ

Оффлайн kitaets

  • Губернский секретарь
  • **
  • Сообщений: 33
  • Репутация: 1
Послушай Fozz: Самое сложное в программировании, на мой взгляд,  это игры и вирусы. В свое время я написал программу "Поддавки", т.е. у компьютера 12 шашек, а у тебя одна. Смысл игры в том, что бы отдать под сруб свою одну шашку, тогда ты выиграл, а компьютеру надо отдать тебе под сруб 12 шашек, что бы он выиграл. Представь себе - у тебя нет шансов выиграть у компа. Эту прогу я написал еще в Паскале, а это не такой гибкий язык как С. Так что, ты,  не обижайся на ребят, игры это довольно сложно, хотя есть книги, где расписана теория компигр. Желаю удачи!!!

Оффлайн redzone

  • Коллежский регистратор
  • *
  • Сообщений: 4
  • Репутация: 0
давай msn), что-то оч знакомое)

Оффлайн redzone

  • Коллежский регистратор
  • *
  • Сообщений: 4
  • Репутация: 0
ток на мыло)