Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
|
Forum - Polski Portal COLOBOTa |
|
|
Przypisywanie wartości do łańcucha |
Autor |
Wiadomość |
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 03-03-2009, 19:17 Przypisywanie wartości do łańcucha
|
|
|
Chciałbym się spytać, czy istnieje jakiś sposób aby do poszczególnych literek przypisać jakąś wartość? Np.: "a"=1 "b"=2 "c"=3 i robot jakąś funkją by to odbierał tak:
Kod: | extern void object::Lol()
{
string nazwa="abc";
int wartość=cod(nazwa);
message(""+wartość);
}
int object::cod(string costam)
{
//jakieś instrukcje co przypisują wartość liczbową literom, np.: jak "a" ma wartość 1, "b" 2, "c" 3 to funkcja zwraca z łańcucha "abc" wartość 123. Da się tak???
} |
|
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
Wysłany: 03-03-2009, 19:56
|
|
|
Wiem do czego tego potrzebujesz! Robisz wymianę tekstów przez Stację Przekaźnikową. Zrezygnuj z tego... zamiast tego zrób klasę i pola statyczne... będzie szybciej działać i będzie wygodniejsze w obsłudze... |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
COLOBOT
Administrator sieci Założyciel portalu
Twoja ulubiona misja: Obie na Orfenii
Pomógł: 1 raz Dołączył: 07 Lut 2008 Posty: 353 Skąd: Jarocin
|
Wysłany: 03-03-2009, 20:58
|
|
|
Chyba da się, tylko trzeba użyć odpowiednich funkcji (jedna do cięcia ciągów, druga do łączenia i przydać się może "switch")
Mam tylko pytanie, jak ma wyglądać sprawa w dalszych literach alfabetu, bo dla K wychodzi 11, odkodowując wyjdzie AA. |
_________________ Bykom STOP
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają.
|
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 03-03-2009, 21:54
|
|
|
adiblol napisał/a: | Wiem do czego tego potrzebujesz! Robisz wymianę tekstów przez Stację Przekaźnikową. |
Niestety, nie. chce zrobić robota-szyfranta, który kodowałby wiadomości.
COLOBOT napisał/a: | Mam tylko pytanie, jak ma wyglądać sprawa w dalszych literach alfabetu, bo dla K wychodzi 11, odkodowując wyjdzie AA. |
Może między poszczególnymi liczbami oznaczającymi literę wstawiać przecinki? Np.: "abc" to po zakodowaniu 1,,2,3? I wynik string, który zwracałby gotowy łańcuch kodu? |
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 03-03-2009, 23:25
|
|
|
myślę, że pomysł adiblola jest lepszy.
[ Dodano: 06-03-2009, 16:06 ]
hmmm....... taka cisza oznacza, że ktoś ma jakiś pomysł, czy że się jeszcze zastanawia czy to wogóle jest możliwe?
PS.:Sorry za te "czy".
[ Dodano: 12-03-2009, 19:28 ]
No dobra, oto moje wypociny:
Kod: | extern void object::Engima()
{
message(szyfr("lol"));
}
string szyfr(string kod)
{
string zwrot,sprawdz,liczby;
zwrot="";
sprawdz=kod;
liczby=zmiana(strleft(sprawdz,1));
sprawdz=tnij(sprawdz);
for(int lol=0;lol<strlen(kod);lol++)
{
zwrot=zwrot+liczby;
liczby=zmiana(strleft(sprawdz,1));
if(strlen(sprawdz)>1)sprawdz=tnij(sprawdz);
}
return zwrot;
}
string tnij(string kod)
{
string zwrot=strright(kod,strlen(kod)-1);
return zwrot;
}
string zmiana(string kod)
{
if(kod=="a")return "01";
if(kod=="b")return "02";
if(kod=="c")return "03";
if(kod=="d")return "04";
if(kod=="e")return "05";
if(kod=="f")return "06";
if(kod=="g")return "07";
if(kod=="h")return "08";
if(kod=="i")return "09";
if(kod=="j")return "10";
if(kod=="k")return "11";
if(kod=="l")return "12";
if(kod=="m")return "13";
if(kod=="n")return "14";
if(kod=="o")return "15";
if(kod=="p")return "16";
if(kod=="q")return "17";
if(kod=="r")return "18";
if(kod=="s")return "19";
if(kod=="t")return "20";
if(kod=="u")return "21";
if(kod=="v")return "22";
if(kod=="w")return "23";
if(kod=="y")return "24";
if(kod=="z")return "25";
} |
UWAGA! Pod żadnym pozorem nie koduj wiadomości, które zawierają znaki inne od liter(bez polskich[ą,ć,ę itd...]). W przeciwnym wypadku zawiesi ci się gra albo nawet komputer.
NIE PONOSZĘ ODPOWIEDZIALNOŚCI ZA TO, CO CI TEN PROGRAM ZROBI!
PS.:Zakodować umiem, ale odkodować za cholerę ..... może ktoś w tym pomóc?
PS.2:I nie pytajcie się mnie jak to działa, bo sam nie wiem................... |
|
|
|
|
Iroks1
Dołączył: 18 Mar 2009 Posty: 7
|
Wysłany: 19-03-2009, 16:11
|
|
|
ciekawe ciekawe
ale do tego potrzeba dwóch stringów chyba
jeden na kodowanie a=01 b=02...
drugi do zamiany liczb na litery 01=a 02=b
dokładnie ci nie powiem bo w tym dopiero przypominam sobie funkcje a w Pascalu są już przygotowane do tego tablice tak samo jak w C# |
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 19-03-2009, 16:32
|
|
|
do odkodowywania możnaby drugą funkcję zrobić, i wtedy jedna nazywałaby się "szyfr", a druga "deszyfr" i Engima byłaby kompletna
PS.: Próbowałem zmieniać samą funkcję "zmień", ale grę zawieszało.
[ Dodano: 24-03-2009, 17:40 ]
Hmm... Myślę, że rozwiązałem problem, kompletna Engima jest w dziale "Programy".
PS.: Myślę też, że temat można uznać za zamknięty . |
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|