Verfügbare Informationen zu "Spiel-Idee"
Qualität des Beitrags: Beteiligte Poster: vpascal - Dragorad Forum: Freeprogs.iphpbb.com Forenbeschreibung: Der Ort zum Austauschen selbst Programmierter Programme! aus dem Unterforum: Off Topic Antworten: 16 Forum gestartet am: Mittwoch 04.04.2007 Sprache: deutsch Link zum Originaltopic: Spiel-Idee Letzte Antwort: vor 15 Jahren, 11 Monaten, 13 Tagen, 2 Stunden, 18 Minuten
Alle Beiträge und Antworten zu "Spiel-Idee"
Re: Spiel-Idee
vpascal - 10.04.2007, 20:30Spiel-Idee
Ich hätte ne Idee.... Ich fange an, und jeder der genügend kenntnisse hat um ein Spiel zu programmieren macht mit... Das ist von mir nur ein Test!!!!!!! Bitte bescheid sagen ob's geht. Ich hab leider kein TP, denn das geht nur mit TP:
Code: program Spieletest;
uses crt, graph;
VAR treiber, modus: Integer;
begin;
DetectGraph (treiber, modus);
InitGraph (treiber, modus, 'C:\Turbo\BGI\');{<----ZUM BEISPIEL!!!----<<<}
circle (200, 300, 40);
while readkey = 'd' do
begin
clrscr;
circle (210, 300, 40);
end;
{------------------------------------------------}
while readkey = 'a' do
begin
clrscr;
circle (200, 300, 40);
end;
{------------------------------------------------}
while readkey = 'w' do
begin
clrscr;
circle (200, 310);
end;
{------------------------------------------------}
while readkey = 's' do
begin
clrscr;
circle (200, 300);
end;
{------------------------------------------------}
closegraph;
readkey;
end.
Ich weiss das das ein behämmertes Beispiel ist!!! Wenn man die taste 'd' drückt, geht ein kreis nach rechts, und so weiter...
Re: Spiel-Idee
vpascal - 10.04.2007, 21:01
doch, ich hab jetzt Tp aber das Spiel ist kacke. Ist ja nur ne Demonstration, kein richtiges Spiel. Bitte um viele, viele Verbesserungsvorschläge!!!
Re: Spiel-Idee
Dragorad - 10.04.2007, 22:04
Hab's mal soweit überarbeitet, dass man den Kreis in jede Richtung bewegen kann. Eine Geschwindigkeitskontrolle folgt ...
Code: program Spieletest;
uses crt,graph;
VAR treiber,modus,x,y:Integer;
begin DetectGraph(treiber,modus);
InitGraph(treiber,modus,'C:\Turbo\BGI\');{<----ZUM BEISPIEL!!!----<<<}
x:=200;
y:=300;
circle(x,y,40);
repeat
while readkey='d' do
begin
setcolor(black);
circle(x,y,40);
x:=x+1;
setcolor(white);
circle(x,y,40);
end;
while readkey='a' do
begin
setcolor(black);
circle(x,y,40);
x:=x-1;
setcolor(white);
circle(x,y,40);
end;
while readkey='w' do
begin
setcolor(black);
circle(x,y,40);
y:=y-1;
setcolor(white);
circle(x,y,40);
end;
while readkey='s' do
begin
setcolor(black);
circle(x,y,40);
y:=y+1;
setcolor(white);
circle(x,y,40);
end;
until (readkey<>'w') and (readkey<>'a') and (readkey<>'s') and (readkey<>'d');
closegraph;
end.
Re: Spiel-Idee
vpascal - 11.04.2007, 15:41
Cool! Vielen dank!
Re: Spiel-Idee
Dragorad - 11.04.2007, 19:12
Hier die Version mit der Geschwindigkeit (ist aber noch nicht ganz ausgefeilt), außerdem kann der Kreis nicht mehr über'n Bildschirmrand hinaus verschwinden (aber nur wenn v=1). Habe auch zwei Units dazugemacht, wegen Vereinfachung (kann man aber auch in eine zusammenschmeißen).
PS: die udata muss als uneu gespeichert werden (oder in der ugraph die uneu durch udata ersetzen)
Code: program Spieletest;
uses crt,graph,ugraph;
VAR treiber,modus:integer;
r,v,x,y:integer;
{----------------------------------------------------------------------------}
begin DetectGraph(treiber,modus);
InitGraph(treiber,modus,'BGI\');
x:=320;
y:=240;
r:=10;
v:=1;
circle(x,y,r);
{------------------------------------------------------------------}
line(0,450,640,450);
schreib(10,460,'Dies ist eine Kugelsimulation. Bitte Geben Sie die Geschwindigkeit ein:');
readln(v);
{------------------------------------------------------------------}
repeat
while readkey='d' do
begin
setcolor(black);
circle(x,y,r);
if x<629 then x:=x+v
else x:=x;
setcolor(white);
circle(x,y,r);
end;
while readkey='a' do
begin
setcolor(black);
circle(x,y,r);
if x>11 then x:=x-v
else x:=x;
setcolor(white);
circle(x,y,r);
end;
while readkey='w' do
begin
setcolor(black);
circle(x,y,r);
if y>11 then y:=y-v
else y:=y;
setcolor(white);
circle(x,y,r);
end;
while readkey='s' do
begin
setcolor(black);
circle(x,y,r);
if y<439 then y:=y+v
else y:=y;
setcolor(white);
circle(x,y,r);
end;
until (readkey<>'w') and (readkey<>'a') and (readkey<>'s') and (readkey<>'d');
closegraph;
end.
Code: unit ugraph;
{----------------------------------------------------------------------------}
interface
uses crt,graph,uneu;
procedure schreib(x,y:integer;text:string);
procedure vg(x:integer);
procedure hg(x:integer);
{----------------------------------------------------------------------------}
implementation
procedure schreib(x,y:integer;text:string);
begin
settextstyle(1,0,1);
outtextxy(x,y,text);
end;
procedure vg(x:integer);
begin
setcolor(x);
if (x<0) or (x>15) then
begin
fehler;
halt;
end;
end;
procedure hg(x:integer);
begin
setbkcolor(x);
if (x<0) or (x>7) then
begin
fehler;
halt;
end;
end;
end.
Code: unit udata;
{----------------------------------------------------------------------------}
interface
uses crt;
procedure pinn(x,y:integer);
procedure writexy(x,y:byte;text:string);
procedure writexynr(x,y:byte;zahl:integer);
procedure openwindow(xl,yl,xr,yr:integer);
procedure openwindowende;
procedure programmende;
procedure stringlesen(var lesstr:string;maxlen:byte);
procedure fehler;
procedure laden;
{----------------------------------------------------------------------------}
implementation
procedure pinn(x,y:integer);
var richtig:boolean;
a:char;
k:integer;
wort:string;
begin
clrscr;
textcolor(white);
repeat
clrscr;
wort:='';
writexy(x,y,'PIN-Nummer:');
for k:=1 to 4 do
begin
a:=readkey;
writexy(x+11+k,y,'*');
wort:=wort+a;
end;
richtig:=wort='2927';
if richtig then
begin
textcolor(red+blink);
writexy(x+17,y,'OK');
delay(3000);
end
else
begin
writexy(x+17,y,'Fehleingabe');
delay(1000);
end;
textcolor(white);
until richtig;
textcolor(white);
end;
procedure writexy(x,y:byte;text:string);
begin
gotoxy(x,y);
write(text);
end;
procedure writexynr(x,y:byte;zahl:integer);
begin
gotoxy(x,y);
write(zahl);
end;
procedure openwindow(xl,yl,xr,yr:integer);
type zaehler=array[1..4] of byte;
var zahl:zaehler;
begin
writexy(xl,yl,'É');
writexy(xl,yr,'È');
writexy(xr,yl,'»');
writexy(xr,yr,'¼');
for zahl[1]:=xl+1 to xr-1 do writexy(zahl[1],yl,'Í');
for zahl[2]:=xl+1 to xr-1 do writexy(zahl[2],yr,'Í');
for zahl[3]:=yl+1 to yr-1 do writexy(xl,zahl[3],'º');
for zahl[4]:=yl+1 to yr-1 do writexy(xr,zahl[4],'º');
window(xl+1,yl+1,xr-1,yr-1);
end;
procedure openwindowende;
type zaehler=array[1..4] of byte;
var zahl:zaehler;
x,y:integer;
begin
x:=30;y:=8;
writexy(x,y,'É');
writexy(x,y+4,'È');
writexy(x+20,y,'»');
writexy(x+20,y+4,'¼');
for zahl[1]:=x+1 to x+19 do writexy(zahl[1],y,'Í');
for zahl[2]:=x+1 to x+19 do writexy(zahl[2],y+4,'Í');
for zahl[3]:=y+1 to y+3 do writexy(x,zahl[3],'º');
for zahl[4]:=y+1 to y+3 do writexy(x+20,zahl[4],'º');
window(x+1,y+1,x+19,y+3);
end;
procedure programmende;
begin
openwindowende;
clrscr;
writexy(2,2,' Wirklich beenden?');
writexy(2,4,' Ja Nein');
end;
procedure stringlesen(var lesstr:string;maxlen:byte);
const ret=#13;
var ch:char;
i,x,y:byte;
begin
x:=wherex;
y:=wherey;
lesstr:='';
repeat
gotoxy(x,y);
write(lesstr);
for i:=length(lesstr)+1 to maxlen do write('_');
gotoxy(x+length(lesstr),y);
ch:=readkey;
if (length(lesstr)<maxlen) and (ch<>ret) then lesstr:=lesstr+ch;
until ch=ret;
writeln;
end;
procedure fehler;
begin
sound(440);
delay(250);
nosound;
end;
procedure laden;
var vg,hg,x:integer;
begin
vg:=15;hg:=0;
textcolor(vg);
textbackground(hg);
clrscr;
writexy(30,14,'Daten werden geladen ...');
for x:=11 to 30 do
begin
textcolor(red);
writexy(x,12,'²');
delay(250);
end;
for x:=31 to 50 do
begin
textcolor(yellow);
writexy(x,12,'²');
delay(250);
end;
for x:= 51 to 70 do
begin
textcolor(green);
writexy(x,12,'²');
delay(250);
end;
textcolor(15);
end;
end.
Re: Spiel-Idee
vpascal - 11.04.2007, 20:17
Cool Danke, aber wie macht man Gegner? die sich frei bewegen und auch angreifen können? Das dürfte sehr schwierig sein, aber mit Pascal nicht unmöglich, denn Gegner gab es auch mit BASIC.
Re: Spiel-Idee
Dragorad - 11.04.2007, 20:19
Werd' mich mal ransetzen. Die Geschwindigkeit nehm' ich erstmal wieder raus.
Re: Spiel-Idee
vpascal - 11.04.2007, 20:27
wie kann man units mit tp tp-freundlich machen? Mit VP muss man die nur ausführen aber bei tp?
Re: Spiel-Idee
Dragorad - 11.04.2007, 21:07
äh, wie meinst du "tp-freundlich"? Wie man sie einbindet oder wie man sie erstellt?
Die .tpu-Datei musss im Verzeichnis von TP sein, sonst funzt's net.
Re: Spiel-Idee
vpascal - 13.04.2007, 10:00
Muss man die unit nur compilieren???
Re: Spiel-Idee
Dragorad - 13.04.2007, 22:03
Ganz genau. Es muss außerdem so eingestellt sein, wie man bei der Erstellung einer .exe das einstellt.
Re: Spiel-Idee
vpascal - 14.04.2007, 08:50
achso, ok. Wie kann man den gegner machen? while readkey ='s' do circle (???,???,??); circle (???,???,??) oder so?
das wenn man eine bewegung macht dder gegner auch eine macht???
Re: Spiel-Idee
Dragorad - 14.04.2007, 08:57
Ich hab' angefangen, einen Multiplayermodus zu erstellen, dass man mit WASD den Spieler steuert und ein zweiter mit PLÖÄ den Gegner (klappt aber noch nicht ganz richtig). Eine Möglichkeit wäre dann noch eine Art rundenbasierendes Spiel (erst macht der Speier eine best. Anzahl von Schritten, dann der Gegner, dann der Spieler,...).
Re: Spiel-Idee
vpascal - 14.04.2007, 13:04
Achso, das wäre gut. Aber ich will wissen wie man KI's macht... geht das mit Pascal???
Re: Spiel-Idee
Dragorad - 14.04.2007, 22:24
Kann man sicherlich Über'n Zufall machen, oder mit Wahrscheinlichkeitsberechnungen - muss ich mal ausprobieren.
Re: Spiel-Idee
vpascal - 15.04.2007, 11:40
aha
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Freeprogs.iphpbb.com
Ähnliche Beiträge wie "Spiel-Idee"
WM Total (Schweiz spiel in gefahr) - Angel (Sonntag 18.06.2006)
fragen zum spiel - Der Arier (Dienstag 18.04.2006)
Das BB4U Sperrung Spiel - GenrePöpel (Mittwoch 03.05.2006)
Spiel gegen Langeweile - Todesengelchen (Mittwoch 16.02.2005)
Filmzitate Spiel - Yorî (Samstag 24.03.2007)
Frage - Antwort Spiel - Ashurek (Dienstag 06.03.2007)
6. Spiel - hillary (Sonntag 19.10.2008)
Spiel 11 - reflink (Sonntag 16.01.2005)
Das Filmzitate-Spiel - Johannes (Sonntag 06.01.2008)
Will ja net meckern, aber meine Idee ist... - Feuertänzer (Sonntag 14.10.2007)
