Skip to content

Instantly share code, notes, and snippets.

@Michal-Fularz
Created December 30, 2015 21:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Michal-Fularz/9f03e2f5002a99f60559 to your computer and use it in GitHub Desktop.
Save Michal-Fularz/9f03e2f5002a99f60559 to your computer and use it in GitHub Desktop.
Amin's first program
program mastermind;
uses crt;
var
a,b,c,d:word;
jeden,dwa,trzy,cztery:array[1..5] of byte;
k,l,m,n:byte;
odp:array[1..5] of string;
z,w:byte;
wybor1,wybor2:string;
wybor3:byte;
plik:text; nazwa,linia:string;
rama:string;
q,x:string;
procedure losowanie;
begin
randomize;
a:=random(6)+1;
repeat
b:=random(6)+1;
until b<>a;
repeat
c:=random(6)+1;
until (c<>a) and (c<>b);
repeat
d:=random(6)+1;
until (d<>a) and (d<>b) and (d<>c);
end;
procedure sprawdzanie;
begin
if (jeden[z]<>a) and (dwa[z]<>a) and (trzy[z]<>a) and (cztery[z]<>a) then k:=0;
if (dwa[z]=a) or (trzy[z]=a) or (cztery[z]=a) then k:=1;
if jeden[z]=a then k:=5;
if (jeden[z]<>b) and (dwa[z]<>b) and (trzy[z]<>b) and (cztery[z]<>b) then l:=0;
if (jeden[z]=b) or (trzy[z]=b) or (cztery[z]=b) then l:=1;
if dwa[z]=b then l:=5;
if (jeden[z]<>c) and (dwa[z]<>c) and (trzy[z]<>c) and (cztery[z]<>c) then m:=0;
if (jeden[z]=c) or (dwa[z]=c) or (cztery[z]=c) then m:=1;
if trzy[z]=c then m:=5;
if (jeden[z]<>d) and (dwa[z]<>d) and (trzy[z]<>d) and (cztery[z]<>d) then n:=0;
if (jeden[z]=d) or (dwa[z]=d) or (trzy[z]=d) then n:=1;
if cztery[z]=d then n:=5;
end;
procedure sprawdzaniecd;
begin
if k+l+m+n=0 then
begin
writeln('niestety wszystko zle');
odp[z]:=('4x');
end;
if k+l+m+n=1 then
begin
writeln('jedno dobrze, ale na zlym miejscu');
odp[z]:=('1vx, 3x');
end;
if k+l+m+n=2 then
begin
writeln('dwa dobrze, ale na zlych miejscach');
odp[z]:=('2vx, 2x');
end;
if k+l+m+n=3 then
begin
writeln('trzy dobrze, ale na zlych miejscach');
odp[z]:=('3vx, 1x');
end;
if k+l+m+n=4 then
begin
writeln('cztery dobrze, ale na zlych miejscach');
odp[z]:=('4vx');
end;
if k+l+m+n=5 then
begin
writeln('jedno dobrze i na dobrym miejscu');
odp[z]:=('1v, 3x');
end;
if k+l+m+n=6 then
begin
writeln('jedno dobrze i na dobrym miejscu oraz jedno dobrze, ale na zlym miejscu');
odp[z]:=('1v, 1vx, 2x');
end;
if k+l+m+n=7 then
begin
writeln('jedno dobrze i na dobrym miejscu oraz dwa dobrze, ale na zlych miejscach');
odp[z]:=('1v, 2vx, 1x');
end;
if k+l+m+n=8 then
begin
writeln('jedno dobrze i na dobrym miejscu oraz trzy dobrze, ale na zlych miejscach');
odp[z]:=('1v, 3vx');
end;
if k+l+m+n=10 then
begin
writeln('dwa dobrze i na dobrych miejscach');
odp[z]:=('2v, 2x');
end;
if k+l+m+n=11 then
begin
writeln('dwa dobrze i na dobrych miejscach oraz jedno dobrze, ale na zlym miejscu');
odp[z]:=('2v, 1vx, 1x');
end;
if k+l+m+n=12 then
begin
writeln('dwa dobrze i na dobrych miejscach oraz dwa dobrze, ale na zlych miejscach');
odp[z]:=('2v, 2vx');
end;
if k+l+m+n=15 then
begin
writeln('trzy dobrze i na dobrych miejscach');
odp[z]:=('3v, 1x');
end;
if k+l+m+n=20 then
begin
writeln('zgadles');
if z=5 then w:=1;
if z=4 then w:=2;
if z=3 then w:=3;
if z=2 then w:=4;
if z=1 then w:=5;
z:=1;
end;
end;
procedure pisanie1;
begin
if z=5 then
begin
gotoxy(28,5);
writeln(jeden[z]);
end;
if z=4 then
begin
gotoxy(28,7);
writeln(jeden[z]);
end;
if z=3 then
begin
gotoxy(28,9);
writeln(jeden[z]);
end;
if z=2 then
begin
gotoxy(28,11);
writeln(jeden[z]);
end;
if z=1 then
begin
gotoxy(28,13);
writeln(jeden[z]);
end;
end;
procedure pisanie2;
begin
if z=5 then
begin
gotoxy(37,5);
writeln(dwa[z]);
end;
if z=4 then
begin
gotoxy(37,7);
writeln(dwa[z]);
end;
if z=3 then
begin
gotoxy(37,9);
writeln(dwa[z]);
end;
if z=2 then
begin
gotoxy(37,11);
writeln(dwa[z]);
end;
if z=1 then
begin
gotoxy(37,13);
writeln(dwa[z]);
end;
end;
procedure pisanie3;
begin
if z=5 then
begin
gotoxy(46,5);
writeln(trzy[z]);
end;
if z=4 then
begin
gotoxy(46,7);
writeln(trzy[z]);
end;
if z=3 then
begin
gotoxy(46,9);
writeln(trzy[z]);
end;
if z=2 then
begin
gotoxy(46,11);
writeln(trzy[z]);
end;
if z=1 then
begin
gotoxy(46,13);
writeln(trzy[z]);
end;
end;
procedure pisanie4;
begin
if z=5 then
begin
gotoxy(55,5);
writeln(cztery[z]);
end;
if z=4 then
begin
gotoxy(55,7);
writeln(cztery[z]);
end;
if z=3 then
begin
gotoxy(55,9);
writeln(cztery[z]);
end;
if z=2 then
begin
gotoxy(55,11);
writeln(cztery[z]);
end;
if z=1 then
begin
gotoxy(55,13);
writeln(cztery[z]);
end;
end;
procedure ramka;
begin
q:=(' ');
x:=(' ');
rama:=#205#205#205#205#205#205#205#205;
gotoxy(23,2);
writeln(#201+rama+#205+rama+#205+rama+#205+rama+#187);
gotoxy(23,3);
writeln(#186+' Oto Twoje poprzednie ruchy: '+#186);
gotoxy(23,4);
writeln(#204+rama+#203+rama+#203+rama+#203+rama+#185);
gotoxy(23,5);
writeln(#186,q,jeden[5],x,#186,q,dwa[5],x,#186,q,trzy[5],x,#186,q,cztery[5],x,#186,q,odp[5]);
gotoxy(23,6);
writeln(#204+rama+#206+rama+#206+rama+#206+rama+#185);
gotoxy(23,7);
writeln(#186,q,jeden[4],x,#186,q,dwa[4],x,#186,q,trzy[4],x,#186,q,cztery[4],x,#186,q,odp[4]);
gotoxy(23,8);
writeln(#204+rama+#206+rama+#206+rama+#206+rama+#185);
gotoxy(23,9);
writeln(#186,q,jeden[3],x,#186,q,dwa[3],x,#186,q,trzy[3],x,#186,q,cztery[3],x,#186,q,odp[3]);
gotoxy(23,10);
writeln(#204+rama+#206+rama+#206+rama+#206+rama+#185);
gotoxy(23,11);
writeln(#186,q,jeden[2],x,#186,q,dwa[2],x,#186,q,trzy[2],x,#186,q,cztery[2],x,#186,q,odp[2]);
gotoxy(23,12);
writeln(#204+rama+#206+rama+#206+rama+#206+rama+#185);
gotoxy(23,13);
writeln(#186,q,jeden[1],x,#186,q,dwa[1],x,#186,q,trzy[1],x,#186,q,cztery[1],x,#186,q,odp[1]);
gotoxy(23,14);
writeln(#200+rama+#202+rama+#202+rama+#202+rama+#188);
end;
procedure pokaz;
begin
writeln('Oto Twoje poprzednie ruchy:');
writeln('I---I---I---I---I');
writeln('I ',jeden[5],' I ',dwa[5],' I ',trzy[5],' I ',cztery[5],' I ',odp[5]);
writeln('I---I---I---I---I');
writeln('I ',jeden[4],' I ',dwa[4],' I ',trzy[4],' I ',cztery[4],' I ',odp[4]);
writeln('I---I---I---I---I');
writeln('I ',jeden[3],' I ',dwa[3],' I ',trzy[3],' I ',cztery[3],' I ',odp[3]);
writeln('I---I---I---I---I');
writeln('I ',jeden[2],' I ',dwa[2],' I ',trzy[2],' I ',cztery[2],' I ',odp[2]);
writeln('I---I---I---I---I');
readln
end;
begin
textbackground(blue);
clrscr;
losowanie;
gotoxy(27,1);
writeln('Witaj w grze mastermind.');
gotoxy(7,2);
writeln('Czy chcesz poznac zasady gry? t-tak/n-nie, zaczynam gre od razu.');
wybor1:=readkey;
gotoxy(1,5);
if wybor1=('t') then
begin
writeln('Mastermind jest gra logiczna polegajaca na odgadnieciu wylosowanych przez kompu-ter liczb.');
writeln('Liczby sa losowane z zakresu 1-6 i przyporzadkowywane czterem pozycjom.');
writeln('Nalezy podawac liczby od lewej do prawej.');
writeln('Wazne! Liczby nie moga sie powtarzac.');
writeln('Po kazdej kolejce komputer podaje podpowiedz.');
writeln('Podpowiedz polega na podaniu czy wpisane przez nas liczby odpowiadaja wylosowa- nym.');
writeln('v - oznacza dobra liczba i na dobrym miejscu');
writeln('vx - oznacza dobra liczba, ale na zlym miejscu');
writeln('x - oznacza zla liczba');
writeln('Wcisnij enter aby zaczac.');
readln;
end
else;
z:=5;
repeat
begin
repeat
textbackground(blue);
clrscr;
if z>4 then
begin
writeln('Masz ',z,' szans');
end
else
writeln('Masz ',z,' szanse');
ramka;
writeln('Podaj liczbe, ktora bedzie Twoim zdaniem w pierwszym polu(z zakresu 1 do 6)');
readln(jeden[z]);
pisanie1;
gotoxy(1,17);
writeln('Podaj liczbe, ktora bedzie Twoim zdaniem w drugim polu(z zakresu 1 do 6)');
readln(dwa[z]);
pisanie2;
gotoxy(1,19);
writeln('Podaj liczbe, ktora bedzie Twoim zdaniem w trzecim polu(z zakresu 1 do 6)');
readln(trzy[z]);
pisanie3;
gotoxy(1,21);
writeln('Podaj liczbe, ktora bedzie Twoim zdaniem w czwartym polu(z zakresu 1 do 6)');
readln(cztery[z]);
pisanie4;
gotoxy(1,23);
writeln('jestes pewny swoich liczb? t-tak/n-nie, chce je wpisac ponownie');
wybor2:=readkey;
until wybor2=('t');
end;
sprawdzanie;
sprawdzaniecd;
writeln('Wcisnij enter');
readln;
z:=z-1;
until z=0;
clrscr;
gotoxy(38,1);
writeln('Koniec gry.');
gotoxy(23,2);
writeln(#201+rama+#205+rama+#205+rama+#205+rama+#187);
gotoxy(23,3);
writeln(#186+' Prawidlowe rozwiazanie to: '+#186);
gotoxy(23,4);
writeln(#204+rama+#203+rama+#203+rama+#203+rama+#185);
gotoxy(23,5);
writeln(#186,q,a,x,#186,q,b,x,#186,q,c,x,#186,q,d,x,#186);
gotoxy(23,6);
writeln(#200+rama+#202+rama+#202+rama+#202+rama+#188);
gotoxy(4,8);
writeln('Jesli chcesz wpisac swoj wynik wcisnij 1/jesli chcesz skonczyc wcisnij 2');
readln(wybor3);
if wybor3=1 then
begin
clrscr;
writeln('Oto poprzedni wyniki:');
assign(plik,'C:\gry\wynik.txt');
reset(plik);
repeat
readln(plik,linia);
writeln;
writeln(linia);
until eof(plik);
writeln('Podaj swoje imie aby zostac zapisanym w histori wynikow.');
readln(nazwa);
append(plik);
writeln(plik,nazwa,' ',w);
reset(plik);
repeat
readln(plik,linia);
clrscr;
writeln;
writeln(linia);
until eof(plik);
close(plik);
readln;
end
else;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment