Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Skrypt] Skrypt PoK3M0nNuJąCy ^^


Rekomendowane odpowiedzi

Opublikowano

Witam.

Natchniony problemem pewnego Usera, rozpisałem się, i zupełnie przez przypadek napisałem dosyć rozbudowany program :P

 

Program służy do 'konwesji' normalnego tekstu, na tekst pokemonowany, czyli:

 

Przed

Jestem fajnym programem, i robię dziwne rzeczy :]

Po:

J3S43m f4jNyM Pr0gR4M3M, 1 r0b1ę dZ1Wn3 Rz3cZy :]

 

Chwytajcie kod:

 

;kod odpowiedzialny za odczytanie ustawien z pliku ini 
$ini = @ScriptDir&"\pokemon.ini" ;zmienna z nazwą pliku z ustawieniami
;odczytywanie wartosci
HotKeySet(IniRead($ini, "opcje", "zamykanie", "{PAUSE}"), "Koniec") ;od razu w HotKeySeta, a co! 
$zamiana_znakow = IniRead($ini, "opcje", "zamieniaj_znaki", "tak")
$znaki = IniRead($ini, "opcje", "znaki_do_zamiany", "")
$znaki = StringSplit($znaki, ",") ;podzielenie zmiennej przecinkami na tablicę
$znaki_zam = IniRead($ini, "opcje", "znaki_zamieniane", "")
$znaki_zam = StringSplit($znaki_zam, ",") ;podzielenie zmiennej przecinkami na tablicę

;sprawdzenie anty-crash czy przypadkiem user nie ztrollował programu 
If UBound($znaki) <> UBound($znaki_zam) Then
If UBound($znaki) > UBound($znaki_zam) Then
	$error = "znaki_do_zamiany"
	$error2 = "znaki_zamieniane"
Else
	$error = "znaki_zamieniane"
	$error2 = "znaki_do_zamiany"
EndIf
MsgBox (16, "Błąd!", "Nieprawidłowy klucz "&$error&" w pliku "&$ini&" - więcej znaków niz w kluczu "&$error2&"!"&@CRLF&"Popraw to, i uruchom ponownie program.")
Exit
EndIf



;zamiana wartosci z pliku (tak/nie) na poprawne wartosci logiczne
If $zamiana_znakow = "tak" Then
$zamiana_znakow = True
Else
$zamiana_znakow = False
EndIf

;'ciało' programu :P
$text = InputBox("Pokemon!", "Wprowadź tekst do zapokemonowania ")
$pokemon = Pokemon($text)
If Not $pokemon = 0 Then InputBox("Pokemon!", "Masz tutaj przerobiony tekst:", $pokemon) ;przy okazji program sprawdza czy funkcja zrobiła co trzeba

Func Pokemon($tekst)
If $tekst = "" Then Return ;warunkowa przerwa, jesli nie podalismy tekstu 
;deklarowanie zmiennych
Local $bool = True
Local $i = 1
Local $koniec
;jesli odpalona jest opcja zamiany liter na cyfry
If $zamiana_znakow = True Then
	Local $a = 0
	$tekst = StringLower($tekst)
	While $a < UBound($znaki) ;pętla obskakuje tablicę
		$tekst = StringReplace($tekst, $znaki[$a], $znaki_zam[$a])
		$a += 1
	WEnd
EndIf
;główna pętla funkcji
While $i <= StringLen($tekst)
	If $bool = True Then
		$koniec &= StringUpper(StringMid($tekst, $i, 1))
	Else
		$koniec &= StringLower(StringMid($tekst, $i, 1))
	EndIf
	$i += 1
	$bool = Not $bool
WEnd
Return $koniec
EndFunc

Func Koniec() ;zamykanie programu
Exit
EndFunc

Do tej wersji będzie potrzebny plik z ustawieniami:

pokemon.rar

 

 

Macie jeszcze samą funkcję :)

 

Global $znaki[4] = ["e", "i", "a", "o"] ;tablica z znakami do zamiany
Global $znaki_zam[4] = ["3", "1", "4", "0"] ;tablica z podmienianymi znakami
Global $zamiana_znakow = True ;czy maja byc zamieniane znaki?

Func Pokemon($tekst)
   If $tekst = "" Then Return ;warunkowa przerwa, jesli nie podalismy tekstu 
   ;deklarowanie zmiennych
   Local $bool = True
   Local $i = 1
   Local $koniec
   ;jesli odpalona jest opcja zamiany liter na cyfry
   If $zamiana_znakow = True Then
       Local $a = 0
       $tekst = StringLower($tekst)
       While $a < UBound($znaki) ;pętla obskakuje tablicę
           $tekst = StringReplace($tekst, $znaki[$a], $znaki_zam[$a])
           $a += 1
       WEnd
   EndIf
   ;główna pętla funkcji
   While $i <= StringLen($tekst)
       If $bool = True Then
           $koniec &= StringUpper(StringMid($tekst, $i, 1))
       Else
           $koniec &= StringLower(StringMid($tekst, $i, 1))
       EndIf
       $i += 1
       $bool = Not $bool
   WEnd
   Return $koniec
EndFunc

Jeśli wywala wam błąd, że nie zmienne umieszczone przed funkcją są niezadeklarowane, zmieńcie ich zasięg na Local, i wstawcie do funkcji

 

 

I jeszcze ostatnia rzecz, aplikacja .exe :)

Dla niemających kompilatora na komputerze:

Pokemonator.rar

 

Enjoy :) Piszcie co mogę zmienić/dodać, albo jakie bugi wyłapaliście :)

 

Edit1: Poprawiłem nieco kod, zauważyłem że dodałem klucz w pliku .ini, nawet skrypt odczytujący go, ale nic on nie robił :D

846331404756772371599.jpeg
  • 2 tygodnie później...
Opublikowano

hehe fajny trolling jeszcze miło, że program dałeś no to mojego kolegę zaskoczyłem xD bo on i informatyka to jak dla Big Showa biegi dystansowe xD xD xD

nieregulaminowa sygna

Opublikowano

Nie wiem czemu, ale wydaje mi się, że masz niesamowicie zaśmiecony kod...

 

< 20 linijek starczy na wszystko

Oddajcie minusy! :(

  • 1 miesiąc temu...
Opublikowano

Zrobię w 15, ale to jutro.

A pomysł dobry

Law of Revelation: The hidden flaw never remains hidden.

Opublikowano

Przebij to :<

string pokeThis(string tekst)
{
return tekst.Replace("e", "3").Replace("i", "1").Replace("a", "4").Replace("o", "0");
}

Opublikowano

Nie chce mi się robić tych liter, ale zajęło by to 3 linie więcej.

Mam to, co kolega wyżej:

global $a=InputBox("Zdanie", "Podaj zdanie", " "), $zamiany[4][2]=[["a", "4"],["o", "0"],["e", "3"],["i", "1"]]
For $licz=0 to 3
$a=StringReplace($a, $zamiany[$licz][0], $zamiany[$licz][1])
Next
MsgBox(0, "", $a)

Law of Revelation: The hidden flaw never remains hidden.

Opublikowano

@up

to co kolega wyżej zrobił to się zastępuje jedną linią... twoje jest bardziej elastyczne, lecz

for $licz = 0 to 3 zamien na for $licz = 0 to ubound($zamiany,1) - 1

$as = stringreplace(stringreplace(stringreplace(stringreplace(stringlower($lol),"e","3"),"i","1"),"a","4"),"o","0")

btw. mi nie porzeba było 20 linijek, starczyło mi 9 aby napisać taki program..., jest zabezpieczony i działający

 

func strings($lol)
$AR = stringsplit(StringRegExpReplace(stringlower($lol), '(\w)(\w)', '$1,$2,'),",");na duze i male
$string = ""
for $i = 2 to UBound($ar) - 1 step +2
$string &= stringupper($ar[$i -1]) &  $ar[$i]
Next;koniec duzych i malych
return stringreplace(stringreplace(stringreplace(stringreplace($string,"e","3"),"i","1"),"a","4"),"o","0"); zamiany stringow na inty
EndFunc
msgbox(0,"",strings(InputBox("Pokemon!", "Wprowadź tekst do zapokemonowania ")))

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...