Seite 1 von 3
PureGolf
Verfasst: 18.03.2006 15:43
von Stefan
Hallo
Die Regeln sind die gleichen wie
hier
außer, dass Befehle wie RunProgram(),WinExec_(),CreateProcess_(),ShellExecute_(),ShellExecuteEx_(),... nicht erlaubt sind.
1693Code: Alles auswählen
Structure Player
x.l
y.l
dir.l
EndStructure
Procedure Check(Result)
If Result=0
MessageRequester("ERROR","Can't init screen!",#MB_ICONERROR)
End
EndIf
ProcedureReturn Result
EndProcedure
Check(InitSprite())
Check(InitKeyboard())
hWnd=Check(OpenWindow(1,0,0,640,480,"Snake",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget))
Check(CreateGadgetList(hWnd))
Check(OpenWindowedScreen(hWnd,0,0,640,480,0,0,0))
SetFrameRate(30)
RandomSeed(6)
For count=0 To 200
DisplayRGBFilter(Random(640),Random(480),10,10,Random(128)+127,Random(128)+127,Random(128)+127)
Next
P1.Player
P1\x=160
P1\y=240
P1\dir=1
P2.Player
P2\x=480
P2\y=240
P2\dir=2
Repeat
Select P1\dir
Case 1
P1\y-1
Case 2
P1\y+1
Case 3
P1\x-1
Case 4
P1\x+1
EndSelect
Select P2\dir
Case 1
P2\y-1
Case 2
P2\y+1
Case 3
P2\x-1
Case 4
P2\x+1
EndSelect
If P1\x<0 Or P1\x>639 Or P1\y<0 Or P1\y>479:Loser=1:EndIf
If P2\x<0 Or P2\x>639 Or P2\y<0 Or P2\y>479:Loser=2:EndIf
StartDrawing(ScreenOutput())
If Loser=0
If Point(P1\x,P1\y)<>0:Loser=1:EndIf
If Point(P2\x,P2\y)<>0:Loser=2:EndIf
Plot(P1\x,P1\y,#Yellow)
Plot(P2\x,P2\y,#Red)
If Point(P2\x+1,P2\y) And P2\dir=4:P2\dir=1:EndIf
If Point(P2\x-1,P2\y) And P2\dir=3:P2\dir=2:EndIf
If Point(P2\x,P2\y-1) And P2\dir=1:P2\dir=3:EndIf
If Point(P2\x,P2\y+1) And P2\dir=2:P2\dir=4:EndIf
EndIf
StopDrawing()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up):P1\dir=1:EndIf
If KeyboardPushed(#PB_Key_Down):P1\dir=2:EndIf
If KeyboardPushed(#PB_Key_Left):P1\dir=3:EndIf
If KeyboardPushed(#PB_Key_Right):P1\dir=4:EndIf
FlipBuffers()
If Loser
Select Loser
Case 1
MessageRequester("Info","Der Computer hat gewonnen.",#MB_ICONINFORMATION)
Case 2
MessageRequester("Info","Sie haben gewonnen.",#MB_ICONINFORMATION)
EndSelect
End
EndIf
Until WindowEvent()=#PB_Event_CloseWindow
Verfasst: 18.03.2006 16:42
von zigapeda
1540
Code: Alles auswählen
Structure Player
x.l
y.l
dir.l
EndStructure
Procedure Check(Result)
If Result=0
MessageRequester("ERROR","Can't init screen!",16)
End
EndIf
ProcedureReturn Result
EndProcedure
Check(InitSprite())
Check(InitKeyboard())
hWnd=Check(OpenWindow(1,0,0,640,480,"Snake",13107200|1|13238272))
Check(CreateGadgetList(hWnd))
Check(OpenWindowedScreen(hWnd,0,0,640,480,0,0,0))
SetFrameRate(30)
RandomSeed(6)
For count=0 To 200
DisplayRGBFilter(Random(640),Random(480),10,10,Random(128)+127,Random(128)+127,Random(128)+127)
Next
P1.Player
P1\x=160
P1\y=240
P1\dir=1
P2.Player
P2\x=480
P2\y=240
P2\dir=2
Repeat
Select P1\dir
Case 1
P1\y-1
Case 2
P1\y+1
Case 3
P1\x-1
Case 4
P1\x+1
EndSelect
Select P2\dir
Case 1
P2\y-1
Case 2
P2\y+1
Case 3
P2\x-1
Case 4
P2\x+1
EndSelect
If P1\x<0 Or P1\x>639 Or P1\y<0 Or P1\y>479:Loser=1:EndIf
If P2\x<0 Or P2\x>639 Or P2\y<0 Or P2\y>479:Loser=2:EndIf
StartDrawing(ScreenOutput())
If Loser=0
If Point(P1\x,P1\y)<>0:Loser=1:EndIf
If Point(P2\x,P2\y)<>0:Loser=2:EndIf
Plot(P1\x,P1\y,#Yellow)
Plot(P2\x,P2\y,#Red)
If Point(P2\x+1,P2\y) And P2\dir=4:P2\dir=1:EndIf
If Point(P2\x-1,P2\y) And P2\dir=3:P2\dir=2:EndIf
If Point(P2\x,P2\y-1) And P2\dir=1:P2\dir=3:EndIf
If Point(P2\x,P2\y+1) And P2\dir=2:P2\dir=4:EndIf
EndIf
StopDrawing()
ExamineKeyboard()
If KeyboardPushed(200):P1\dir=1:EndIf
If KeyboardPushed(208):P1\dir=2:EndIf
If KeyboardPushed(203):P1\dir=3:EndIf
If KeyboardPushed(205):P1\dir=4:EndIf
FlipBuffers()
If Loser
Select Loser
Case 1
MessageRequester("Info","Der Computer hat gewonnen.",64)
Case 2
MessageRequester("Info","Sie haben gewonnen.",64)
EndSelect
End
EndIf
Until WindowEvent()=16
[Edit]noch ne frage, in den regeln steht PB3.8 ich hab entweder PB3.94 oder eine der PB4 betas welche darf/soll ich jetzt genau verwenden?[/Edit]
Verfasst: 18.03.2006 17:01
von Stefan
Ah ja, PB 4 natürlich.

Verfasst: 18.03.2006 17:22
von zigapeda
1374
[Edit]
1363[/Edit]
[Edit2]
1339[/Edit2]
Code: Alles auswählen
Structure T
x.l
y.l
i.l
EndStructure
Macro R
Random(
EndMacro
Macro K
KeyboardPushed(
EndMacro
Macro M
MessageRequester("
EndMacro
Macro P
Point(
EndMacro
Procedure C(S)
If S
ProcedureReturn S
EndIf
M ERROR","Can't init screen!",16)
End
EndProcedure
C(InitSprite()&InitKeyboard())
h=C(OpenWindow(1,0,0,640,480,"Snake",13107200|1|13238272))
C(OpenWindowedScreen(h,0,0,640,480,0,0,0))
SetFrameRate(30)
RandomSeed(6)
For c=0 To 200
DisplayRGBFilter(R 640),R 480),10,10,R 128)+127,R 128)+127,R 128)+127)
Next
P1.T
P1\x=160
P1\y=240
P1\i=1
P2.T
P2\x=480
P2\y=240
P2\i=2
Repeat
Select P1\i
Case 1
P1\y-1
Case 2
P1\y+1
Case 3
P1\x-1
Case 4
P1\x+1
EndSelect
Select P2\i
Case 1
P2\y-1
Case 2
P2\y+1
Case 3
P2\x-1
Case 4
P2\x+1
EndSelect
If P1\x<0 Or P1\x>639 Or P1\y<0 Or P1\y>479:L=1:EndIf
If P2\x<0 Or P2\x>639 Or P2\y<0 Or P2\y>479:L=2:EndIf
StartDrawing(ScreenOutput())
If L=0
If P P1\x,P1\y)<>0:L=1:EndIf
If P P2\x,P2\y)<>0:L=2:EndIf
Plot(P1\x,P1\y,65535)
Plot(P2\x,P2\y,255)
If P P2\x+1,P2\y) And P2\i=4:P2\i=1:EndIf
If P P2\x-1,P2\y) And P2\i=3:P2\i=2:EndIf
If P P2\x,P2\y-1) And P2\i=1:P2\i=3:EndIf
If P P2\x,P2\y+1) And P2\i=2:P2\i=4:EndIf
EndIf
StopDrawing()
ExamineKeyboard()
If K 200):P1\i=1:EndIf
If K 208):P1\i=2:EndIf
If K 203):P1\i=3:EndIf
If K 205):P1\i=4:EndIf
FlipBuffers()
If L
Select L
Case 1
M Info","Der Computer hat gewonnen.",64)
Case 2
M Info","Sie haben gewonnen.",64)
EndSelect
End
EndIf
Until WindowEvent()=16
Verfasst: 18.03.2006 17:41
von Franky
Edit:1224 Btw: Spiel ich hier alleine? O_o
Code: Alles auswählen
Structure I
x.l
y.l
d.l
EndStructure
Macro E
EndIf
EndMacro
Macro Z
Case
EndMacro
Macro K(f)
KeyboardPushed(#PB_Key_#f)
EndMacro
Macro V
MessageRequester("Info","
EndMacro
Macro C(f)
j=f
If j=0
MessageRequester("ERROR","Can't init screen!",#MB_ICONERROR)
End
E
EndMacro
Macro P
Point(
EndMacro
Macro R
Random(
EndMacro
a=640
b=480
C(InitSprite())
C(InitKeyboard())
C(OpenWindow(1,0,0,a,b,"Snake",13238273))
C(OpenWindowedScreen(j,0,0,a,b,0,0,0))
SetFrameRate(30)
RandomSeed(6)
For count=0 To 200
DisplayRGBFilter(R a),R b),10,10,R 128)+127,R 128)+127,R 128)+127)
Next
h.i
h\x=160
h\y=240
h\d=1
g.i
g\x=b
g\y=240
g\d=2
t:
With h
Select \d
Z 1
\y-1
Z 2
\y+1
Z 3
\x-1
Z 4
\x+1
EndSelect
If \x<0 Or \x=>a Or \y<0 Or h\y=>b
L=1
E
ExamineKeyboard()
If K(Up)
\d=1
E
If K(Down)
\d=2
E
If K(Left)
\d=3
E
If K(Right)
\d=4
E
StartDrawing(ScreenOutput())
If L=0
If P \x,\y)
L=1
E
Plot(\x,\y,#Yellow)
EndWith
With g
If \x<0 Or \x=>a Or \y<0 Or \y=>b
L=2
E
Select \d
Z 1
\y-1
Z 2
\y+1
Z 3
\x-1
Z 4
\x+1
EndSelect
If P \x,\y)
L=2
E
Plot(\x,\y,#Red)
If P \x+1,\y) And \d=4
\d=1
E
If P \x-1,\y) And \d=3
\d=2
E
If P \x,\y-1) And \d=1
\d=3
E
If P \x,\y+1) And \d=2
\d=4
E
EndWith
E
StopDrawing()
FlipBuffers()
If WindowEvent()=16 Or L
Select L
Z 1
V Der Computer hat gewonnen.",#MB_ICONINFORMATION)
Z 2
V Sie haben gewonnen.",#MB_ICONINFORMATION)
EndSelect
End
E
Goto t
Verfasst: 18.03.2006 18:37
von zigapeda
Franky hat geschrieben:Edit:1224 Btw: Spiel ich hier alleine? O_o
Nein ich spiel auch mit^^
1158
[Edit]
1155[/Edit]
Code: Alles auswählen
Structure I
x.l
y.l
d.l
EndStructure
Macro E
EndIf
EndMacro
Macro Z
Case
EndMacro
Macro K(f)
KeyboardPushed(f)
EndMacro
Macro V
MessageRequester("Info","
EndMacro
Macro C(f)
j=f
If j=0
MessageRequester("ERROR","Can't init screen!",16)
End
E
EndMacro
Macro P
Point(
EndMacro
Macro R
Random(
EndMacro
a=640
b=480
C(InitSprite()&InitKeyboard())
C(OpenWindow(1,0,0,a,b,"Snake",13238273))
C(OpenWindowedScreen(j,0,0,a,b,0,0,0))
SetFrameRate(30)
RandomSeed(6)
For c=0 To 200
DisplayRGBFilter(R a),R b),10,10,R 128)+127,R 128)+127,R 128)+127)
Next
g.i
g\x=b
g\y=240
g\d=2
h.i
With h
\x=160
\y=240
\d=1
t:
Select \d
Z 1
\y-1
Z 2
\y+1
Z 3
\x-1
Z 4
\x+1
EndSelect
If \x<0 Or \x=>a Or \y<0 Or h\y=>b
L=1
E
ExamineKeyboard()
If K(200)
\d=1
E
If K(208)
\d=2
E
If K(203)
\d=3
E
If K(205)
\d=4
E
StartDrawing(ScreenOutput())
If L=0
If P \x,\y)
L=1
E
Plot(\x,\y,65535)
EndWith
With g
If \x<0 Or \x=>a Or \y<0 Or \y=>b
L=2
E
Select \d
Z 1
\y-1
Z 2
\y+1
Z 3
\x-1
Z 4
\x+1
EndSelect
If P \x,\y)
L=2
E
Plot(\x,\y,255)
If P \x+1,\y) And \d=4
\d=1
E
If P \x-1,\y) And \d=3
\d=2
E
If P \x,\y-1) And \d=1
\d=3
E
If P \x,\y+1) And \d=2
\d=4
E
EndWith
E
StopDrawing()
FlipBuffers()
If WindowEvent()=16 Or L
Select L
Z 1
V Der Computer hat gewonnen.",64)
Z 2
V Sie haben gewonnen.",64)
EndSelect
End
E
Goto t
Verfasst: 18.03.2006 19:24
von Kaeru Gaman
ja toll, leute... und worum gehts? was ist überhaupt thema?
was machen die programme?
wo ist die aufgabenstellung?
tz.. tz.. tz..
Verfasst: 18.03.2006 19:27
von Franky
1126
Edit: 1115
->Edit: 1098
Code: Alles auswählen
Structure I
x.l
y.l
d.l
EndStructure
Macro W(j)
If \x<0 Or \x=>a Or \y<0 Or h\y=>b
L=j
E
Select \d
Z 1
\y-1
Z 2
\y+1
Z 3
\x-1
Z 4
\x+1
EndSelect
EndMacro
Macro E
EndIf
EndMacro
Macro Z
Case
EndMacro
Macro K(f)
KeyboardPushed(f)
EndMacro
Macro V
MessageRequester("Info","
EndMacro
Macro C(f)
j=f
If j=0
MessageRequester("ERROR","Can't init screen!",16)
End
E
EndMacro
Macro P
Point(
EndMacro
Macro R
Random(
EndMacro
a=640
b=480
C(InitSprite()&InitKeyboard())
C(OpenWindow(1,0,0,a,b,"Snake",13238273))
C(OpenWindowedScreen(j,0,0,a,b,0,0,0))
SetFrameRate(30)
RandomSeed(6)
For c=0 To 200
DisplayRGBFilter(R a),R b),10,10,R 128)+127,R 128)+127,R 128)+127)
Next
g.i
g\x=b
g\y=240
g\d=2
h.i
With h
\x=160
\y=240
\d=1
t:
W(1)
ExamineKeyboard()
If K(200)
\d=1
E
If K(208)
\d=2
E
If K(203)
\d=3
E
If K(205)
\d=4
E
StartDrawing(ScreenOutput())
If L=0
If P \x,\y)
L=1
E
Plot(\x,\y,65535)
EndWith
With g
W(2)
If P \x,\y)
L=2
E
Plot(\x,\y,255)
If P \x+1,\y) And \d=4
\d=1
E
If P \x-1,\y) And \d=3
\d=2
E
If P \x,\y-1) And \d=1
\d=3
E
If P \x,\y+1) And \d=2
\d=4
E
EndWith
E
StopDrawing()
FlipBuffers()
If WindowEvent()=16 Or L
Select L
Z 1
V Der Computer hat gewonnen.",64)
Z 2
V Sie haben gewonnen.",64)
EndSelect
End
E
Goto t
@Kaeru: siehe erster post und testen

Verfasst: 18.03.2006 19:45
von Sylvia
Ich mache auch mit...aber erst, wenns um die Feinarbeit geht und ich
mindestens 2 meiner Gehirnzellen damit belasten muss
Ausserdem sieht mir das ganze noch zu übersichtlich aus...

Verfasst: 18.03.2006 19:54
von Kaeru Gaman
Franky hat geschrieben:@Kaeru: siehe erster post und testen

haha!
das geht nicht, weil ich noch 3.94 hab...
ich meine.. hallo?
bei nem wettbewerb gehört ne aufgabenstellung hin, oder?