Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function ExecuteBonus50(Var PlayerString: AnsiString; Var LetterBank: TLetterArray; Var PlayersScore: TScoreArray; NumberOfPlayer: Integer): Boolean;
- Var
- CountLetters, CountChar, ChangeIndex: Integer;
- IsCorrect, IsOkay: Boolean;
- LettertoChange: AnsiChar;
- PlayersCopy, LetterStr: AnsiString;
- Begin
- Randomize;
- PlayersCopy := PlayerString;
- For CountLetters := 0 To 4 Do
- Begin
- Write('Введите букву из вашего набора, которую вы хотели бы заменить: ');
- Repeat
- IsCorrect := False;
- Readln(LetterStr);
- If (LetterStr = '') Then
- Readln(LetterStr);
- If (Length(LetterStr) = 1) Then
- Begin
- LettertoChange := LetterStr[1];
- If (Ord(LettertoChange)>223) Then
- Begin
- For CountChar := 1 To 10 Do
- If (LetterToChange = PlayersCopy[CountChar]) Then
- Begin
- IsCorrect := True;
- PlayersCopy[CountChar] := '0';
- Repeat
- IsOkay := True;
- ChangeIndex := 255 - Random(32);
- If (LetterBank[AnsiChar(ChangeIndex)] < 1) Then
- IsOkay := False;
- Until (IsOkay);
- Dec(LetterBank[AnsiChar(ChangeIndex)]);
- PlayerString[CountChar] := AnsiChar(ChangeIndex);
- Break;
- End;
- If Not(IsCorrect) Then
- Write('В вашем наборе отсутствует такая буква или встречается меньшее количество раз. Повторите ввод: ');
- End
- Else
- Write('Введите букву. Повторите ввод: ')
- End
- Else
- Write('Введите только одну букву. Повторите ввод: ');
- Until (IsCorrect);
- End;
- Dec(PlayersScore[NumberOfPlayer], 2);
- ExecuteBonus50 := True;
- End;
- Function CheckIfContains(PlayerString: AnsiString; Var LetterIndex: Integer; NumberOfPlayer: Integer): AnsiChar;
- Var
- LetterCounter: Integer;
- Letter: AnsiChar;
- LetterStr: AnsiString;
- IsCorrect: Boolean;
- Begin
- Repeat
- IsCorrect := False;
- Readln(LetterStr);
- If (LetterStr = '') Then
- Readln(LetterStr);
- If (Length(LetterStr) = 1) Then
- Begin
- Letter := LetterStr[1];
- If (Ord(Letter)>223) Then
- Begin
- For LetterCounter := 1 To 10 Do
- If (Letter = PlayerString[LetterCounter]) Then
- Begin
- IsCorrect := True;
- LetterIndex := LetterCounter;
- End;
- If Not(IsCorrect) Then
- Write('В наборе отсутствует такая буква или встречается меньшее количество раз. Повторите ввод: ');
- End
- Else
- Write('Введите букву. Повторите ввод: ');
- End
- Else
- Write('Введите только одну букву. Повторите ввод: ');
- Until (IsCorrect);
- CheckIfContains := Letter;
- End;
- Function ExecuteBonusHelp(Var PlayersLetters: TPlayerStringArray; NumberOfPlayer: Integer): Boolean;
- Var
- IsCorrect: Boolean;
- LetterToChange, DesiredLetter: AnsiChar;
- LetterIndexToChange, DesiredLetterIndex, OtherPlayerNumber: Integer;
- Begin
- Write('Введите букву из вашего набора, которую хотели бы заменить: ');
- LetterToChange := CheckIfContains(PlayersLetters[NumberOfPlayer], LetterIndexToChange, NumberOfPlayer);
- Write('Введите номер игрока, с которым хотели бы обменяться: ');
- Repeat
- IsCorrect := True;
- Try
- Readln(OtherPlayerNumber);
- Except
- IsCorrect := False;
- Write('Введите цифру. Повторите ввод: ');
- End;
- if ((IsCorrect) And ((OtherPlayerNumber>0) And (OtherPlayerNumber<(High(PlayersLetters)+2)))) then
- Begin
- Dec(OtherPlayerNumber);
- If (OtherPlayerNumber = NumberOfPlayer) Then
- Begin
- Write('Вы не можете меняться с самим собой. Повторите ввод: ');
- IsCorrect := False;
- End;
- (*If (OtherPlayerNumber > High(PlayersLetters) ) Then
- Begin
- Write('Такого игрока не существует. Повторите ввод: ');
- IsCorrect := False;
- End;*)
- End
- Else
- Begin
- Write('Введите цифру от 1 до ', High(PlayersLetters)+1, ', кроме ', NumberOfPlayer+1,'. Повторите ввод: ');
- IsCorrect := False;
- End;
- Until (IsCorrect);
- Write('Введите букву из чужого набора, на которую вы хотели бы заменить свою букву: ');
- DesiredLetter := CheckIfContains(PlayersLetters[OtherPlayerNumber], DesiredLetterIndex, OtherPlayerNumber);
- PlayersLetters[NumberOfPlayer, LetterIndexToChange] := DesiredLetter;
- PlayersLetters[OtherPlayerNumber, DesiredLetterIndex] := LetterToChange;
- ExecuteBonusHelp := True;
- End;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement