Hra lode – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Hra lode – Delphi – Fórum – Programujte.comHra lode – Delphi – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
lodar
~ Anonymní uživatel
1 příspěvek
19. 4. 2009   #1
-
0
-

Ahoj,
potreboval bych poradit. Delal jsem hru lode, kde se do pole zada jedna lod.
Zadavani a ukladani do pole funguje, ale bohuzel uz nefunguje zapisovani do pole kdyz se strili.
Proste mi to do toho "strileciho" pole nezapisuje.
Poradi mi prosim nekdo??
Diky moc.



program lode;

{$APPTYPE CONSOLE}

uses
SysUtils;

const m=3; n=3;

type
pole=array[1..m,1..n] of integer;

var pole1, pole2, polepalba1, polepalba2:pole;
hrac1, hrac2:string;
hrac, lode2, lode1, pocet, radek1, sloupec1, radek2, sloupec2, radek1palba, sloupec1palba, radek2palba, sloupec2palba: integer;



begin
{ TODO -oUser -cConsole Main : Insert code here }
writeln ('Vitejte ve hre LODE. Preji prijemnou zabavu.');
writeln ('zadejte jmeno prvniho hrace a stisknete ENTER');
readln (hrac1);
writeln ('zadejte jmeno druheho hrace a stisknete ENTER');
readln (hrac2);
writeln ('prvni hrac je tedy ', hrac1,', druhy hrac je ',hrac2);
readln;
pocet:=0;
for radek1:=1 to m do
begin
for sloupec1:=1 to n do
pole1[radek1,sloupec1]:=0;
end;
//hrac1//
writeln ('nejdrive zada souradnice ',hrac1);
while pocet<2 do
begin
writeln ('zadej prvni souradnici');
readln (radek1);
writeln ('zadej druhou souradnici');
readln (sloupec1);
if (pole1[radek1,sloupec1]=1) then
begin
writeln ('pole je obsazeno');
pocet:=pocet-1;
end;
if ((radek1>m) or (sloupec1>n) or (radek1<=0) or(sloupec1<=0)) then
begin
writeln ('souradnice jsou mimo pole');
end
else
begin
pole1[radek1,sloupec1]:=1;
pocet:=pocet+1;
end;
end;
for radek1:=1 to m do
begin
for sloupec1:=1 to n do
write (pole1[radek1,sloupec1],'-');
writeln;
end;
readln;

pocet:=0;
for radek2:=1 to m do
begin
for sloupec2:=1 to n do
pole2[radek2,sloupec2]:=0;
end;
//hrac2//
writeln ('ted zada souradnice ',hrac2);
while pocet<2 do
begin
writeln ('zadej prvni souradnici');
readln (radek2);
writeln ('zadej druhou souradnici');
readln (sloupec2);
if (pole2[radek2,sloupec2]=1) then
begin
writeln ('pole je obsazeno');
pocet:=pocet-1;
end;
if ((radek2>m) or (sloupec2>n) or (radek2<=0) or(sloupec2<=0)) then
begin
writeln ('souradnice jsou mimo pole');
end
else
begin
pole2[radek2,sloupec2]:=1;
pocet:=pocet+1;
end;
end;
for radek2:=1 to m do
begin
for sloupec2:=1 to n do
write (pole2[radek2,sloupec2],'-');
writeln;
end;
readln;

//hra//

lode1:=0;
lode2:=0;
while ((lode1<2) OR (lode2<2)) do
begin
begin
writeln ('na rade je ',hrac1);
writeln ('takto jsi strilel, 5 znamena mimo; 1 znamena zasah');
begin
for radek2palba:=1 to m do
begin
for sloupec2palba:=1 to n do
write (polepalba2[radek2palba,sloupec2palba],'-');
writeln;
end;
end;
writeln ('zadej prvni souradnici');
readln (radek2);
writeln ('zadej druhou souradnici');
readln (sloupec2);

if (pole2[radek2, sloupec2]=1) then
begin
polepalba2[radek2palba, sloupec2palba]:=1;
lode1:=lode1+1;
writeln ('zasah');
end
else
begin
lode1:=lode1+0;
writeln ('bohuzel mimo');
polepalba2[radek2palba, sloupec2palba]:=5;
end;
end;

begin
writeln ('na rade je ',hrac2);
writeln ('takto jsi strilel, 5 znamena mimo; 1 znamena zasah');
begin
for radek1palba:=1 to m do
begin
for sloupec1palba:=1 to n do
write (polepalba1[radek1palba,sloupec1palba],'-');
writeln;
end;
end;
writeln ('zadej prvni souradnici');
readln (radek1);
writeln ('zadej druhou souradnici');
readln (sloupec1);


if (pole1[radek1,sloupec1]=1) then
begin
writeln ('zasah');
lode2:=lode2+1;
polepalba1[radek1palba, sloupec1palba]:=1;
end
else
begin
writeln ('bohuzel mimo');
lode2:=lode2+0;
polepalba1[radek1palba, sloupec1palba]:=5;
end;

end;

end;
readln;

end.

Nahlásit jako SPAM
IP: 94.112.143.–
Reklama
Reklama
joudicek0
Návštěvník
20. 4. 2009   #2
-
0
-

A proto buh stvoril debugger :)



program lode;
{$APPTYPE CONSOLE}

uses SysUtils;

const m=3; n=3;

type pole=array[1..m,1..n] of integer;

var pole1, pole2, polepalba1, polepalba2:pole;
hrac1, hrac2:string;
hrac, lode2, lode1, pocet, radek1, sloupec1, radek2, sloupec2, radek1palba, sloupec1palba, radek2palba, sloupec2palba: integer;

begin

{ TODO -oUser -cConsole Main : Insert code here }

writeln ('Vitejte ve hre LODE. Preji prijemnou zabavu.');
writeln ('zadejte jmeno prvniho hrace a stisknete ENTER');
readln (hrac1);
writeln ('zadejte jmeno druheho hrace a stisknete ENTER');
readln (hrac2);
writeln ('prvni hrac je tedy ', hrac1,', druhy hrac je ',hrac2);
readln;

pocet:=0;
for radek1:=1 to m do
begin
for sloupec1:=1 to n do
pole1[radek1,sloupec1]:=0;
end;

//hrac1//
writeln ('nejdrive zada souradnice ',hrac1);
while pocet<2 do
begin
writeln ('zadej prvni souradnici');
readln (radek1);
writeln ('zadej druhou souradnici');
readln (sloupec1);

if (pole1[radek1,sloupec1]=1) then
begin
writeln ('pole je obsazeno');
pocet:=pocet-1;
end;

if ((radek1>m) or (sloupec1>n) or (radek1<=0) or(sloupec1<=0)) then
begin
writeln ('souradnice jsou mimo pole');
end
else
begin
pole1[radek1,sloupec1]:=1;
pocet:=pocet+1;
end;
end;

for radek1:=1 to m do
begin
for sloupec1:=1 to n do
write (pole1[radek1,sloupec1],'-');
writeln;
end;

readln;

pocet:=0;
for radek2:=1 to m do
begin
for sloupec2:=1 to n do
pole2[radek2,sloupec2]:=0;
end;

//hrac2//
writeln ('ted zada souradnice ',hrac2);
while pocet<2 do
begin
writeln ('zadej prvni souradnici');
readln (radek2);
writeln ('zadej druhou souradnici');
readln (sloupec2);

if (pole2[radek2,sloupec2]=1) then
begin
writeln ('pole je obsazeno');
pocet:=pocet-1;
end;

if ((radek2>m) or (sloupec2>n) or (radek2<=0) or(sloupec2<=0)) then
begin
writeln ('souradnice jsou mimo pole');
end
else
begin
pole2[radek2,sloupec2]:=1;
pocet:=pocet+1;
end;
end;
for radek2:=1 to m do
begin
for sloupec2:=1 to n do
write (pole2[radek2,sloupec2],'-');
writeln;
end;

readln;

//hra//
lode1:=0;
lode2:=0;

while ((lode1<2) OR (lode2<2)) do
begin
begin
writeln ('na rade je ',hrac1);
writeln ('takto jsi strilel, 5 znamena mimo; 1 znamena zasah');
begin
for radek2palba:=1 to m do
begin
for sloupec2palba:=1 to n do
write (polepalba2[radek2palba,sloupec2palba],'-');
writeln;
end;
end;

writeln ('zadej prvni souradnici');
readln (radek2);
writeln ('zadej druhou souradnici');
readln (sloupec2);

if (pole2[radek2, sloupec2]=1) then
begin
polepalba2[radek2, sloupec2]:=1;
lode1:=lode1+1;
writeln ('zasah');
end
else
begin
lode1:=lode1+0;
writeln ('bohuzel mimo');
polepalba2[radek2, sloupec2]:=5;
end;
end;

begin
writeln ('na rade je ',hrac2);
writeln ('takto jsi strilel, 5 znamena mimo; 1 znamena zasah');
begin
for radek1palba:=1 to m do
begin
for sloupec1palba:=1 to n do
write (polepalba1[radek1palba,sloupec1palba],'-');
writeln;
end;
end;

writeln ('zadej prvni souradnici');
readln (radek1);
writeln ('zadej druhou souradnici');
readln (sloupec1);

if (pole1[radek1,sloupec1]=1) then
begin
writeln ('zasah');
lode2:=lode2+1;
polepalba1[radek1, sloupec1]:=1;
end
else
begin
writeln ('bohuzel mimo');
lode2:=lode2+0;
polepalba1[radek1, sloupec1]:=5;
end;
end;
end;

readln;
end.




Par pripominek pro zprehledneni :)

treba pro nacitani souradnic bych ti doporucil vytvorit funkci...

{muze byt chyba v syntaxi, pisu z hlavy....}


function nactiSouradnice(var x,y:integer);
var Radek,Sloupec;
begin
Writeln('Zadejte souradnice[x y]');
Readln(Radek,sloupec);

x:= Radek;
y:= Sloupec;
end;


Pak by se mozna i vyplatilo vytvorit typ hrace....



type THrac = record
jmeno = string;
lode = array...
strelba = array .....
end;


Jsou to jen pripominky, na funkctnost nemaji vliv

Nahlásit jako SPAM
IP: 212.20.106.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Hra lodě — založil marpit

Hra lode (zacatecnik) — založil nuginy

Kontrolní cyklus lodě — založil rodka

Lode - kontrola vsech lodi — založil Vavat9

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý