Advertisement
Guest User

Untitled

a guest
Mar 9th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 6.39 KB | None | 0 0
  1. uses
  2.   SysUtils;
  3.  
  4. type CharacterCard = record
  5.        Name : string[10];
  6.        Hair : string[6];
  7.        Eyes : string[5];
  8.        Hat  : char;
  9.        Glasses : char;
  10.        Used :  boolean;
  11.      end;
  12.  
  13. var
  14. Cards : array[1..10] of CharacterCard;
  15. SelectedCharacter : CharacterCard;
  16. Question : byte;
  17.  
  18.  
  19.  
  20. Procedure SetUpCards;
  21. begin
  22.    Cards[1].Name := 'Chang';
  23.    Cards[1].Hair := 'BROWN';
  24.    Cards[1].Eyes := 'BROWN';
  25.    Cards[1].Hat  := 'Y';
  26.    Cards[1].Glasses  := 'N';
  27.    Cards[1].Used := False;
  28.    Cards[2].Name := 'JAMES';
  29.    Cards[2].Hair := 'BROWN';
  30.    Cards[2].Eyes := 'GREEN';
  31.    Cards[2].Hat  := 'N';
  32.    Cards[2].Glasses  := 'N';
  33.    Cards[2].Used := False;
  34.    Cards[3].Name := 'JIMMY';
  35.    Cards[3].Hair := 'BROWN';
  36.    Cards[3].Eyes := 'BLUE';
  37.    Cards[3].Hat  := 'Y';
  38.    Cards[3].Glasses  := 'Y';
  39.    Cards[3].Used := False;
  40.    Cards[4].Name := 'KYLE';
  41.    Cards[4].Hair := 'RED';
  42.    Cards[4].Eyes := 'BLUE';
  43.    Cards[4].Hat  := 'N';
  44.    Cards[4].Glasses  := 'N';
  45.    Cards[4].Used := False;
  46.    Cards[5].Name := 'CHRIS';
  47.    Cards[5].Hair := 'BLONDE';
  48.    Cards[5].Eyes := 'GREEN';
  49.    Cards[5].Hat  := 'N';
  50.    Cards[5].Glasses  := 'Y';
  51.    Cards[5].Used := False;
  52.    Cards[6].Name := 'SAM';
  53.    Cards[6].Hair := 'BLONDE';
  54.    Cards[6].Eyes := 'GREEN';
  55.    Cards[6].Hat  := 'Y';
  56.    Cards[6].Glasses  := 'Y';
  57.    Cards[6].Used := False;
  58.    Cards[7].Name := 'ALEX';
  59.    Cards[7].Hair := 'BLONDE';
  60.    Cards[7].Eyes := 'BROWN';
  61.    Cards[7].Hat  := 'N';
  62.    Cards[7].Glasses  := 'Y';
  63.    Cards[7].Used := False;
  64.    Cards[8].Name := 'CONNOR';
  65.    Cards[8].Hair := 'BROWN';
  66.    Cards[8].Eyes := 'BLUE';
  67.    Cards[8].Hat  := 'N';
  68.    Cards[8].Glasses  := 'Y';
  69.    Cards[8].Used := False;
  70.    Cards[9].Name := 'TOM';
  71.    Cards[9].Hair := 'RED';
  72.    Cards[9].Eyes := 'GREEN';
  73.    Cards[9].Hat  := 'Y';
  74.    Cards[9].Glasses  := 'N';
  75.    Cards[9].Used := False;
  76.    Cards[10].Name := 'JOSH';
  77.    Cards[10].Hair := 'BLONDE';
  78.    Cards[10].Eyes := 'BROWN';
  79.    Cards[10].Hat  := 'N';
  80.    Cards[10].Glasses  := 'N';
  81.    Cards[10].Used := False;
  82. end;
  83.  
  84. Procedure ChooseCard;
  85. var
  86.   RandomNumber : byte;
  87. begin
  88.   Randomize;
  89.   RandomNumber := Random(10) + 1;;
  90.  
  91.   SelectedCharacter.Name := Cards[RandomNumber].Name;
  92.   SelectedCharacter.Hair := Cards[RandomNumber].Hair;
  93.   SelectedCharacter.Eyes := Cards[RandomNumber].Eyes;
  94.   SelectedCharacter.Eyes := Cards[RandomNumber].Glasses;
  95.   SelectedCharacter.Hat := Cards[RandomNumber].Hat;
  96.   SelectedCharacter.Used := Cards[RandomNumber].Used;
  97.  
  98. end;
  99.  
  100. procedure DisplayQuestionChoices;
  101. begin
  102.   Writeln('Choose from the choice of questions');
  103.   Writeln('1 - Name Question');
  104.   Writeln('2 - Hair Question');
  105.   Writeln('3 - Eye Question');
  106.   Writeln('4 - Hat Question');
  107.   Writeln('5-Glasses Question');
  108.   Writeln('0 - Quit Game');
  109.  
  110.   Readln(Question);
  111. end;
  112.  
  113. procedure NameQuestion;
  114. var
  115.   Name : string;
  116.   I: Integer;
  117. begin
  118.  Writeln('Enter the name you are guessing');
  119.  Readln(name);
  120.  Name := Uppercase(Name);
  121.  if name = SelectedCharacter.Name then
  122.   Writeln('Well done - You guessed right')
  123.  Else
  124.  begin
  125.   Writeln('Sorry wrong guess try again');
  126.     for I := 1 to 10 do
  127.      begin
  128.        if name =cards[I].Name then
  129.          Cards[I].Used := True;
  130.  
  131.     end;
  132.  end;
  133.  
  134. end;
  135.  
  136. procedure HairQuestion;
  137. var
  138.  Hair : string;
  139.  I : byte;
  140. begin
  141.  Writeln('Enter the Hair colour you are guessing');
  142.  Readln(Hair);
  143.  Hair := Uppercase(Hair);
  144.  if Hair= SelectedCharacter.Hair then
  145. begin
  146.   Writeln('Well done - You guessed the right Hair colour');
  147.    for i := 1 to 10 do
  148.      begin
  149.        if hair <> cards[I].Hair then
  150.          Cards[I].Used := True;
  151. end;
  152.  
  153.   end
  154.  Else
  155.  begin
  156.   Writeln('Sorry wrong guess try again');
  157.     for I := 1 to 10 do
  158.      begin
  159.        if Hair =cards[I].Hair then
  160.          Cards[I].Used := True;
  161. end;
  162.  end;
  163. end;
  164.  
  165. procedure EyesQuestion;
  166. var
  167.  Eye : String;
  168.  I : byte;
  169. begin
  170.  Writeln('Enter the Hair colour you are guessing');
  171.  Readln(Eye);
  172.  Eye := Uppercase(Eye);
  173.  if Eye= SelectedCharacter.Eyes then
  174. begin
  175.   Writeln('Well done - You guessed the right Eye colour');
  176.    for i := 1 to 10 do
  177.      begin
  178.        if Eye <> cards[I].Eyes then
  179.          Cards[I].Used := True;
  180. end;
  181.  
  182.   end
  183.  Else
  184.  begin
  185.   Writeln('Sorry wrong guess try again');
  186.     for I := 1 to 10 do
  187.      begin
  188.        if Eye =cards[I].Eyes then
  189.          Cards[I].Used := True;
  190. end;
  191.  end;
  192. end;
  193.  
  194. Procedure HatQuestion;
  195. var
  196.   Hat : char;
  197.  I : byte;
  198. begin
  199. Writeln('Do they have a hat');
  200.  Readln(Hat);
  201.  Hat := Upcase(Hat);
  202.  if Hat= SelectedCharacter.Hat then
  203. begin
  204.   Writeln('Well done he has a hat');
  205.    for i := 1 to 10 do
  206.      begin
  207.        if hat <> cards[I].hat then
  208.          Cards[I].Used := True;
  209. end;
  210.  
  211.   end
  212.  Else
  213.  begin
  214.   Writeln('Sorry wrong guess try again');
  215.     for I := 1 to 10 do
  216.      begin
  217.        if Hat =cards[I].Hat then
  218.          Cards[I].Used := True
  219. end;
  220.  end;
  221. end;
  222.  
  223. Procedure GlassesQuestion;
  224. Var
  225. Glasses : char;
  226. I : byte;
  227. begin
  228.   Writeln('Do they have Glasses');
  229.  Readln(Glasses);
  230.  Glasses := Upcase(Glasses);
  231.  if Glasses= SelectedCharacter.Glasses then
  232. begin
  233.   Writeln('Well done he has Glasses');
  234.    for i := 1 to 10 do
  235.      begin
  236.        if Glasses <> cards[I].Glasses then
  237.          Cards[I].Used := True;
  238. end;
  239.  
  240.   end
  241.  Else
  242.  begin
  243.   Writeln('Sorry wrong guess try again');
  244.     for I := 1 to 10 do
  245.      begin
  246.        if Glasses =cards[I].Glasses then
  247.          Cards[I].Used := True
  248. end;
  249.  end;
  250. end;
  251.  
  252.  
  253. procedure Quit;
  254. begin
  255.   Writeln('Bye for now - come back and play again soon');
  256. end;
  257.  
  258. procedure ProcessQuestion;
  259. begin
  260.    case Question of
  261.     1 : NameQuestion;
  262.     2 : HairQuestion;
  263.     3 : EyesQuestion;
  264.     4 : HatQuestion;
  265.     5 : GlassesQuestion;
  266.     0 : Quit;
  267.    end;
  268. end;
  269.  
  270. procedure DisplayCharacters;
  271. var
  272.   i: Integer;
  273. begin
  274.    for I := 1 to 10 do
  275.      begin
  276.        if cards[I].Used = False  then
  277.        begin
  278.          Write(Cards[I].Name,'  ');
  279.          Write(Cards[I].Hair,' Hair ');
  280.          Write(Cards[I].Eyes,' Eyes ');
  281.          Write(Cards[I].Hat,' Hat ');
  282.          Writeln(Cards[I].Glasses,' Glasses');
  283.          Writeln;
  284.        end;
  285.      end;
  286. end;
  287.  
  288. begin
  289.    SetUpCards;
  290.    ChooseCard;
  291.    Writeln('Welcome to Guess Who Game');
  292.    Writeln;
  293.    Writeln('Here is the list of characters:');
  294.    Writeln;
  295.    Repeat
  296.      DisplayCharacters;
  297.      DisplayQuestionChoices;
  298.      ProcessQuestion;
  299.    Until (Question = 5) or (SelectedCharacter.Used = True);
  300.    ReadLn;
  301. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement