Skip to content

Instantly share code, notes, and snippets.

@pipiscrew
Created November 5, 2015 17:06
Show Gist options
  • Save pipiscrew/1cf22d769f9c282b973b to your computer and use it in GitHub Desktop.
Save pipiscrew/1cf22d769f9c282b973b to your computer and use it in GitHub Desktop.
Turbo Pascal - Randomize Soldiers
program Rand;
uses
crt;
var
menuChoice : integer;
soldArray : array[1..100,1..2] of integer;
RANDres : integer;
soldiersCount : Integer;
j : integer;
ArrayRES : boolean;
soldierFound : boolean;
label
makeRandomAgain,startMenu;
function InitMenu(r : char):integer;
var
ch,err : integer;
chSTR : string;
label
menuvalidation;
begin
textbackground(blue);
textcolor(yellow);
menuvalidation:
clrscr;
writeln('------------------------------------');
writeln('--development by : PipisCrew--');
writeln('------------------------------------');
if (soldierscount = 0) then writeln('1) Set Soldiers');
if (soldierscount > 0) and (soldierfound=false) then writeln('2) Randomize');
if soldierFound=true then writeln('3) View the result');
writeln('4) Exit');
writeln;
writeln;
write('Enter your choice :');
repeat
readln(chstr);
val(chstr,ch,err);
if err > 0 then
writeln('No option for this value')
else if (ch > 3) or (ch < 1) then
writeln('No option for this value')
until (ch=1) or (ch=2) or (ch=3) or (ch=4);
if (soldierscount > 0) and (ch=1) then goto menuvalidation;
if (soldierfound=true) and (ch=2) then goto menuvalidation;
if (soldierFound=false) and (ch=3) then goto menuvalidation;
initmenu:=ch
end;
procedure Soldiers;
var
ch,err : integer;
chSTR : string;
begin
clrscr;
writeln;
writeln;
write('Please type two-digit number :');
repeat
readln(chstr);
val(chstr,ch,err);
if err > 0 then
writeln('No option for this value')
else if (ch > 99) or (ch < 1) then
writeln('I said two-digit!!')
until (ch >0) and (ch < 100);
soldierscount := ch
end;
function randomizesoldiers(v : integer) : integer;
var
i : integer;
begin
randomize;
i := random(v);
randomizesoldiers := i
end;
function ValidateArrayItem(n : integer):boolean;
var
i,j : integer;
begin
if soldArray[n,2] = 1 then {enabled}
begin
soldArray[n,2] := 0; {set disable}
validateArrayItem := true;
end
else begin
validateArrayItem :=false;
end;
end;
procedure InitArray(n : integer);
var
i : integer;
begin
for i:=1 to n do
begin
soldArray[i,1] := i;
soldArray[i,2] := 1; {if it is 1 can be used/enabled}
end
end;
begin
soldierFound:=false;
startmenu:
menuchoice := initmenu('h');
if menuchoice = 1 then
begin
soldiers;
goto startmenu
end;
if menuchoice = 2 then
begin
InitArray(soldiersCount);
for j := 1 to soldiersCount-1 do
begin
makeRandomAgain :
RANDres := randomizesoldiers(soldiersCount) +1 ;
{writeln(randres);
writeln('press any key to continue...');
readln;}
ArrayRES := validateArrayItem(RANDres);
if arrayRES =true then
begin
write(j);
write('-Soldier no');
write(RANDres);
writeln(' removed');
{ readln;}
end
else
begin
{ write('cant remove! ');
writeln(RANDres);
{ readln; }
goto makeRandomAgain
end
end;
soldierFound:=true;
writeln;
writeln;
writeln('Press any key to continue...');
readln;
goto startmenu
end;
if menuchoice = 3 then
begin
textbackground(red);
textcolor(yellow);
clrscr;
writeln;
writeln;
writeln;
writeln;
for j:=1 to soldiersCount do
begin
if soldarray[j,2] = 1 then
begin
write('Lucky soldier is : '); writeln(j);
end;
end;
writeln;
writeln;
writeln;
writeln;
writeln('Press any key to continue...');
readln;
soldiersCount :=0;
soldierfound :=false;
goto startmenu
end;
if menuchoice = 4 then
exit;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment