<?php
// your code goes here
$text1 = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!" ;
$text2 = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не
помнила." ;
$text3 = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу,
в схватке со зловещей Галактической Империей." ;
function makeFirstCharLowerCase( string $word ) : string
{
}
function makeFirstCharUpperCase( string $word ) : string
{
}
/**
* @return array<string>
* @throws Exception
*/
function makeSentences
( string
$text ) : array {
$sentences = preg_split ( '/[.!?]/' , $text , - 1 , PREG_SPLIT_NO_EMPTY
) ; if ( false === $sentences ) {
throw new Exception( preg_last_error_msg( ) ) ;
}
return $sentences ;
}
/**
* @return array<string>
* @throws Exception
*/
function makeReverseWordsInSentence
( string
$sentence ) : array {
$words = preg_split ( '/[-,;:\s]/' , $sentence , - 1 , PREG_SPLIT_NO_EMPTY
) ; if ( false === $words ) {
throw new Exception( preg_last_error_msg( ) ) ;
}
}
/**
* @throws Exception
*/
function makeYodaStyleText( string $text ) : string
{
$sentences = makeSentences( $text ) ;
$result = '' ;
foreach ( $sentences as $sentence ) {
$reversedWords = makeReverseWordsInSentence( $sentence ) ;
$reversedWords [ 0 ] = makeFirstCharUpperCase( $reversedWords [ 0 ] ) ;
$reversedWords [ count ( $reversedWords ) - 1 ] = makeFirstCharLowerCase
( $reversedWords [ count ( $reversedWords ) - 1 ] ) ; $result .= implode ( ' ' , $reversedWords ) . '. ' ; }
return $result ;
}
$texts = [ $text1 , $text2 , $text3 ] ;
$yodaText = '' ;
try {
foreach ( $texts as $text ) {
$yodaText = makeYodaStyleText( $text ) ;
echo "Йода говорит: $yodaText \n " ;
}
} catch ( Exception $e ) {
echo "Произошла ошибка: " . $e -> getMessage ( ) ;
}
PD9waHAKCi8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCmVycm9yX3JlcG9ydGluZyhFX0FMTCk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGY4Jyk7CgokdGV4dDEgPSAi0JrQsNC20LXRgtGB0Y8sINC90LDRgSDQvtCx0L3QsNGA0YPQttC40LvQuCEg0J3QsNC00L4g0YHRgNC+0YfQvdC+INGD0YXQvtC00LjRgtGMINC+0YLRgdGO0LTQsCwg0L/QvtC60LAg0L3QtSDQv9C+0LfQtNC90L4uINCR0LXQttC40Lwg0LbQtSDRgdC60L7RgNC10LUhIjsKJHRleHQyID0gItCd0YMsINC/0YDQvtGB0YLQuCDQvNC10L3RjyEg0J3QtSDRhdC+0YLQtdC70LAg0Y8g0YLQtdCx0LUg0LfQu9CwINGB0LTQtdC70LDRgtGMOyDQtNCwINCyINGB0LXQsdC1INC90LUg0LLQvtC70YzQvdCwINCx0YvQu9CwLiDQp9GC0L4g0LPQvtCy0L7RgNC40LvQsCwg0YfRgtC+INC00LXQu9Cw0LvQsCwg0YHQtdCx0Y8g0L3QtSAK0L/QvtC80L3QuNC70LAuIjsKJHRleHQzID0gItCY0LTQtdGCINCz0YDQsNC20LTQsNC90YHQutCw0Y8g0LLQvtC50L3QsC4g0JrQvtGB0LzQuNGH0LXRgdC60LjQtSDQutC+0YDQsNCx0LvQuCDQv9C+0LLRgdGC0LDQvdGG0LXQsiwg0L3QsNC90L7RgdGP0YnQuNC1INGD0LTQsNGAINGBINGC0LDQudC90L7QuSDQsdCw0LfRiywg0L7QtNC10YDQttCw0LvQuCDQv9C10YDQstGD0Y4g0L/QvtCx0LXQtNGDLCAK0LIg0YHRhdCy0LDRgtC60LUg0YHQviDQt9C70L7QstC10YnQtdC5INCT0LDQu9Cw0LrRgtC40YfQtdGB0LrQvtC5INCY0LzQv9C10YDQuNC10LkuIjsKCmZ1bmN0aW9uIG1ha2VGaXJzdENoYXJMb3dlckNhc2Uoc3RyaW5nICR3b3JkKTogc3RyaW5nCnsKICAgIHJldHVybiBtYl9zdHJ0b2xvd2VyKG1iX3N1YnN0cigkd29yZCwgMCwgMSkpIC4gbWJfc3Vic3RyKCR3b3JkLCAxKTsKfQoKZnVuY3Rpb24gbWFrZUZpcnN0Q2hhclVwcGVyQ2FzZShzdHJpbmcgJHdvcmQpOiBzdHJpbmcKewogICAgcmV0dXJuIG1iX3N0cnRvdXBwZXIobWJfc3Vic3RyKCR3b3JkLCAwLCAxKSkgLiBtYl9zdWJzdHIoJHdvcmQsIDEpOwp9CgovKioKICogQHJldHVybiBhcnJheTxzdHJpbmc+CiAqIEB0aHJvd3MgRXhjZXB0aW9uCiAqLwpmdW5jdGlvbiBtYWtlU2VudGVuY2VzKHN0cmluZyAkdGV4dCk6IGFycmF5CnsKICAgICRzZW50ZW5jZXMgPSBwcmVnX3NwbGl0KCcvWy4hP10vJywgJHRleHQsIC0xLCBQUkVHX1NQTElUX05PX0VNUFRZKTsKICAgIGlmIChmYWxzZSA9PT0gJHNlbnRlbmNlcykgewogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24ocHJlZ19sYXN0X2Vycm9yX21zZygpKTsKICAgIH0KICAgIHJldHVybiAkc2VudGVuY2VzOwp9CgovKioKICogQHJldHVybiBhcnJheTxzdHJpbmc+CiAqIEB0aHJvd3MgRXhjZXB0aW9uCiAqLwpmdW5jdGlvbiBtYWtlUmV2ZXJzZVdvcmRzSW5TZW50ZW5jZShzdHJpbmcgJHNlbnRlbmNlKTogYXJyYXkKewogICAgJHdvcmRzID0gcHJlZ19zcGxpdCgnL1stLDs6XHNdLycsICRzZW50ZW5jZSwgLTEsIFBSRUdfU1BMSVRfTk9fRU1QVFkpOwogICAgaWYgKGZhbHNlID09PSAkd29yZHMpIHsKICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKHByZWdfbGFzdF9lcnJvcl9tc2coKSk7CiAgICB9CiAgICByZXR1cm4gYXJyYXlfcmV2ZXJzZSgkd29yZHMpOwp9CgovKioKICogQHRocm93cyBFeGNlcHRpb24KICovCmZ1bmN0aW9uIG1ha2VZb2RhU3R5bGVUZXh0KHN0cmluZyAkdGV4dCk6IHN0cmluZwp7CiAgICAkc2VudGVuY2VzID0gbWFrZVNlbnRlbmNlcygkdGV4dCk7CiAgICAkcmVzdWx0ID0gJyc7CiAgICBmb3JlYWNoICgkc2VudGVuY2VzIGFzICRzZW50ZW5jZSkgewogICAgICAgICRyZXZlcnNlZFdvcmRzID0gbWFrZVJldmVyc2VXb3Jkc0luU2VudGVuY2UoJHNlbnRlbmNlKTsKICAgICAgICAkcmV2ZXJzZWRXb3Jkc1swXSA9IG1ha2VGaXJzdENoYXJVcHBlckNhc2UoJHJldmVyc2VkV29yZHNbMF0pOwogICAgICAgICRyZXZlcnNlZFdvcmRzW2NvdW50KCRyZXZlcnNlZFdvcmRzKSAtIDFdID0gbWFrZUZpcnN0Q2hhckxvd2VyQ2FzZSgkcmV2ZXJzZWRXb3Jkc1tjb3VudCgkcmV2ZXJzZWRXb3JkcykgLSAxXSk7CiAgICAgICAgJHJlc3VsdCAuPSBpbXBsb2RlKCcgJywgJHJldmVyc2VkV29yZHMpIC4gJy4gJzsKICAgIH0KICAgIHJldHVybiAkcmVzdWx0Owp9CgokdGV4dHMgPSBbJHRleHQxLCAkdGV4dDIsICR0ZXh0M107CiR5b2RhVGV4dCA9ICcnOwoKdHJ5IHsKICAgIGZvcmVhY2ggKCR0ZXh0cyBhcyAkdGV4dCkgewogICAgICAgICR5b2RhVGV4dCA9IG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KTsKICAgICAgICBlY2hvICLQmdC+0LTQsCDQs9C+0LLQvtGA0LjRgjogJHlvZGFUZXh0XG4iOwogICAgfQp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gItCf0YDQvtC40LfQvtGI0LvQsCDQvtGI0LjQsdC60LA6ICIgLiAkZS0+Z2V0TWVzc2FnZSgpOwp9Cg==