Created
November 5, 2015 17:06
-
-
Save pipiscrew/1cf22d769f9c282b973b to your computer and use it in GitHub Desktop.
Turbo Pascal - Randomize Soldiers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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