Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses
- SysUtils;
- type CharacterCard = record
- Name : string[10];
- Hair : string[6];
- Eyes : string[5];
- Hat : char;
- Glasses : char;
- Used : boolean;
- end;
- var
- Cards : array[1..10] of CharacterCard;
- SelectedCharacter : CharacterCard;
- Question : byte;
- Procedure SetUpCards;
- begin
- Cards[1].Name := 'Chang';
- Cards[1].Hair := 'BROWN';
- Cards[1].Eyes := 'BROWN';
- Cards[1].Hat := 'Y';
- Cards[1].Glasses := 'N';
- Cards[1].Used := False;
- Cards[2].Name := 'JAMES';
- Cards[2].Hair := 'BROWN';
- Cards[2].Eyes := 'GREEN';
- Cards[2].Hat := 'N';
- Cards[2].Glasses := 'N';
- Cards[2].Used := False;
- Cards[3].Name := 'JIMMY';
- Cards[3].Hair := 'BROWN';
- Cards[3].Eyes := 'BLUE';
- Cards[3].Hat := 'Y';
- Cards[3].Glasses := 'Y';
- Cards[3].Used := False;
- Cards[4].Name := 'KYLE';
- Cards[4].Hair := 'RED';
- Cards[4].Eyes := 'BLUE';
- Cards[4].Hat := 'N';
- Cards[4].Glasses := 'N';
- Cards[4].Used := False;
- Cards[5].Name := 'CHRIS';
- Cards[5].Hair := 'BLONDE';
- Cards[5].Eyes := 'GREEN';
- Cards[5].Hat := 'N';
- Cards[5].Glasses := 'Y';
- Cards[5].Used := False;
- Cards[6].Name := 'SAM';
- Cards[6].Hair := 'BLONDE';
- Cards[6].Eyes := 'GREEN';
- Cards[6].Hat := 'Y';
- Cards[6].Glasses := 'Y';
- Cards[6].Used := False;
- Cards[7].Name := 'ALEX';
- Cards[7].Hair := 'BLONDE';
- Cards[7].Eyes := 'BROWN';
- Cards[7].Hat := 'N';
- Cards[7].Glasses := 'Y';
- Cards[7].Used := False;
- Cards[8].Name := 'CONNOR';
- Cards[8].Hair := 'BROWN';
- Cards[8].Eyes := 'BLUE';
- Cards[8].Hat := 'N';
- Cards[8].Glasses := 'Y';
- Cards[8].Used := False;
- Cards[9].Name := 'TOM';
- Cards[9].Hair := 'RED';
- Cards[9].Eyes := 'GREEN';
- Cards[9].Hat := 'Y';
- Cards[9].Glasses := 'N';
- Cards[9].Used := False;
- Cards[10].Name := 'JOSH';
- Cards[10].Hair := 'BLONDE';
- Cards[10].Eyes := 'BROWN';
- Cards[10].Hat := 'N';
- Cards[10].Glasses := 'N';
- Cards[10].Used := False;
- end;
- Procedure ChooseCard;
- var
- RandomNumber : byte;
- begin
- Randomize;
- RandomNumber := Random(10) + 1;;
- SelectedCharacter.Name := Cards[RandomNumber].Name;
- SelectedCharacter.Hair := Cards[RandomNumber].Hair;
- SelectedCharacter.Eyes := Cards[RandomNumber].Eyes;
- SelectedCharacter.Eyes := Cards[RandomNumber].Glasses;
- SelectedCharacter.Hat := Cards[RandomNumber].Hat;
- SelectedCharacter.Used := Cards[RandomNumber].Used;
- end;
- procedure DisplayQuestionChoices;
- begin
- Writeln('Choose from the choice of questions');
- Writeln('1 - Name Question');
- Writeln('2 - Hair Question');
- Writeln('3 - Eye Question');
- Writeln('4 - Hat Question');
- Writeln('5-Glasses Question');
- Writeln('0 - Quit Game');
- Readln(Question);
- end;
- procedure NameQuestion;
- var
- Name : string;
- I: Integer;
- begin
- Writeln('Enter the name you are guessing');
- Readln(name);
- Name := Uppercase(Name);
- if name = SelectedCharacter.Name then
- Writeln('Well done - You guessed right')
- Else
- begin
- Writeln('Sorry wrong guess try again');
- for I := 1 to 10 do
- begin
- if name =cards[I].Name then
- Cards[I].Used := True;
- end;
- end;
- end;
- procedure HairQuestion;
- var
- Hair : string;
- I : byte;
- begin
- Writeln('Enter the Hair colour you are guessing');
- Readln(Hair);
- Hair := Uppercase(Hair);
- if Hair= SelectedCharacter.Hair then
- begin
- Writeln('Well done - You guessed the right Hair colour');
- for i := 1 to 10 do
- begin
- if hair <> cards[I].Hair then
- Cards[I].Used := True;
- end;
- end
- Else
- begin
- Writeln('Sorry wrong guess try again');
- for I := 1 to 10 do
- begin
- if Hair =cards[I].Hair then
- Cards[I].Used := True;
- end;
- end;
- end;
- procedure EyesQuestion;
- var
- Eye : String;
- I : byte;
- begin
- Writeln('Enter the Hair colour you are guessing');
- Readln(Eye);
- Eye := Uppercase(Eye);
- if Eye= SelectedCharacter.Eyes then
- begin
- Writeln('Well done - You guessed the right Eye colour');
- for i := 1 to 10 do
- begin
- if Eye <> cards[I].Eyes then
- Cards[I].Used := True;
- end;
- end
- Else
- begin
- Writeln('Sorry wrong guess try again');
- for I := 1 to 10 do
- begin
- if Eye =cards[I].Eyes then
- Cards[I].Used := True;
- end;
- end;
- end;
- Procedure HatQuestion;
- var
- Hat : char;
- I : byte;
- begin
- Writeln('Do they have a hat');
- Readln(Hat);
- Hat := Upcase(Hat);
- if Hat= SelectedCharacter.Hat then
- begin
- Writeln('Well done he has a hat');
- for i := 1 to 10 do
- begin
- if hat <> cards[I].hat then
- Cards[I].Used := True;
- end;
- end
- Else
- begin
- Writeln('Sorry wrong guess try again');
- for I := 1 to 10 do
- begin
- if Hat =cards[I].Hat then
- Cards[I].Used := True
- end;
- end;
- end;
- Procedure GlassesQuestion;
- Var
- Glasses : char;
- I : byte;
- begin
- Writeln('Do they have Glasses');
- Readln(Glasses);
- Glasses := Upcase(Glasses);
- if Glasses= SelectedCharacter.Glasses then
- begin
- Writeln('Well done he has Glasses');
- for i := 1 to 10 do
- begin
- if Glasses <> cards[I].Glasses then
- Cards[I].Used := True;
- end;
- end
- Else
- begin
- Writeln('Sorry wrong guess try again');
- for I := 1 to 10 do
- begin
- if Glasses =cards[I].Glasses then
- Cards[I].Used := True
- end;
- end;
- end;
- procedure Quit;
- begin
- Writeln('Bye for now - come back and play again soon');
- end;
- procedure ProcessQuestion;
- begin
- case Question of
- 1 : NameQuestion;
- 2 : HairQuestion;
- 3 : EyesQuestion;
- 4 : HatQuestion;
- 5 : GlassesQuestion;
- 0 : Quit;
- end;
- end;
- procedure DisplayCharacters;
- var
- i: Integer;
- begin
- for I := 1 to 10 do
- begin
- if cards[I].Used = False then
- begin
- Write(Cards[I].Name,' ');
- Write(Cards[I].Hair,' Hair ');
- Write(Cards[I].Eyes,' Eyes ');
- Write(Cards[I].Hat,' Hat ');
- Writeln(Cards[I].Glasses,' Glasses');
- Writeln;
- end;
- end;
- end;
- begin
- SetUpCards;
- ChooseCard;
- Writeln('Welcome to Guess Who Game');
- Writeln;
- Writeln('Here is the list of characters:');
- Writeln;
- Repeat
- DisplayCharacters;
- DisplayQuestionChoices;
- ProcessQuestion;
- Until (Question = 5) or (SelectedCharacter.Used = True);
- ReadLn;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement