Hogy kell ezt megoldani pascalban, garfikusan?
Írjon egy programot, amely két dobókocka dobásait szimulálja úgy, hogy kirajzolja és ki is írja a grafikus képernyőre a kockán megjelent számokat négyzetekkel!
Pl. ha ötöst és hatost dobtunk, akkor az 1. ábrán látható módon jelenjenek meg a dobott számok két négyzetben valamint azok értékei a kockák fölött számokkal feltűntetve! AZ eredményben a kockának ugy kell kinézni hogy a négyzetben annyi kör legyen ahányat dobtunk és fölé legyen kiirva a szám ahanyast dobtunk
Ügyesen, ügyesen.
Árajánlat csak privátban.
már ennyi meg van csak nem tudom hogy kell átvini grafikus képernyőre és a 0 helyet kört irni és köré négyzetett
program kocka;
uses crt;
var
i,x,y,szam:integer;
s1,s2,s3:string[4];
c:char;
label start;
begin
randomize;
start:
clrscr;
x:=20; y:=10;
for i:=1 to 2 do
begin
szam:=random(6)+1;
if szam=1 then
begin
s1:=' ';
s2:=' 0 ';
s3:=' ';
end;
if szam=2 then
begin
s1:='0 ';
s2:=' ';
s3:=' 0';
end;
if szam=3 then
begin
s1:='0 ';
s2:=' 0 ';
s3:=' 0';
end;
if szam=4 then
begin
s1:='0 0';
s2:=' ';
s3:='0 0';
end;
if szam=5 then
begin
s1:='0 0';
s2:=' 0 ';
s3:='0 0';
end;
if szam=6 then
begin
s1:='0 0';
s2:='0 0';
s3:='0 0';
end;
textcolor(4);
gotoxy(x+1,y-4); write(szam);
textcolor(15); gotoxy(x,y); write(s1);
gotoxy(x,y+1); write(s2);
gotoxy(x,y+2); write(s3);
x:=x+6;
end;
gotoxy(1,20);
write(' bill kilepes.');
c:=readkey;
end.
Nyilván CRT helyett Graph unitot kellene használni és annak a függvényeivel rajzolgatni.
De amúgy egészen pocsék kód. Mi ez a sok if? Miért nem egy case szerekezetet használsz?
ez nagyon jó megoldás köszi
már megcsináltam más módszerrel
program rajz;
uses graph, crt;
var szamok:array[1..6] of boolean;
var dobas:array[1..2] of integer;
var gd,gm,i,szam: smallint;
label start;
begin
clrscr;
gd := Detect;
InitGraph(gd, gm, '');
if GraphResult <> GrOk then begin
Write('Grafikus hiba');
Readln;
Halt(1);
end;
begin
randomize;
start:
for i:=1 to 2 do
begin
repeat
szam:=random(6)+1; {random szam dobasa}
until not szamok[szam]; {addig amig olyan szamot huzunk, ami volt}
szamok[szam]:=true; {ha volt tobbet nem huzunk}
dobas[i]:=szam; {elmentjuk a szamot}
if szam=1 then
begin
setfillstyle(solidfill, yellow);
bar(70, 70, 150, 150);
setfillstyle(solidfill, blue);
fillellipse(110,110,5,5);
outtextxy(110,50,'1')
end;
if szam=2 then
begin
setfillstyle(solidfill, yellow);
bar(160, 70, 240, 150);
setfillstyle(solidfill, blue);
fillellipse(180,90,5,5);
fillellipse(220,130,5,5);
outtextxy (200,50,'2')
end;
if szam=3 then
begin
setfillstyle(solidfill, yellow);
bar(250, 70, 330, 150);
setfillstyle(solidfill, blue);
fillellipse(270,90,5,5);
fillellipse(290,110,5,5);
fillellipse(310,130,5,5);
outtextxy (290,50,'3')
end;
if szam=4 then
begin
setfillstyle(solidfill, yellow);
bar(335, 70, 415, 150);
setfillstyle(solidfill, blue);
fillellipse(395,90,5,5);
fillellipse(355,90,5,5);
fillellipse(355,130,5,5);
fillellipse(395,130,5,5);
outtextxy (380,50,'4')
end;
if szam=5 then
begin
setfillstyle(solidfill, yellow);
bar(420, 70, 500, 150);
setfillstyle(solidfill, blue);
fillellipse(440,90,5,5);
fillellipse(480,90,5,5);
fillellipse(460,110,5,5);
fillellipse(440,130,5,5);
fillellipse(480,130,5,5);
setfillstyle(solidfill, blue);
outtextxy (460,50,'5')
end;
if szam=6 then
begin
setfillstyle(solidfill, yellow);
bar(510, 70, 590, 150);
setfillstyle(solidfill, blue);
fillellipse(530,90,5,5);
fillellipse(530,110,5,5);
fillellipse(530,130,5,5);
fillellipse(570,90,5,5);
fillellipse(570,110,5,5);
fillellipse(570,130,5,5);
outtextxy (550,50,'6')
end;
end;
Readln;
CloseGraph;
end;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!