ProgCards

Übersicht Sonstiges Projekte

Neue Antwort erstellen

Kryan

Betreff: ProgCards

BeitragSa, Dez 18, 2004 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wahrscheinlich kennt ihr solche Sammelkartenspiele wie "Pokémon" oder Ähnliches.
Nun versuche ich es gerade als Pc-Spiel umzusetzen, nur statt Monstern gibt es Programmierbefehle.
Damit es funktionieren kann baue ich den Compiler von BlitzBasic 3d Demo ein.

Nun erstmal der Code:BlitzBasic: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
canvas1=CreateCanvas
SeedRnd MilliSecs()
Global anzahlkarten=760
Dim Card$(anzahlkarten,5);Name des Befehls,Beschreibung,Parameter,Rückgabewert,Beispiel,Zahl der vorhanden Karten
rf=ReadFile(\"wortschatz.txt\")
For i=1 To anzahlkarten
Card(i,0)=ReadLine(rf)
Next
Dim Prog$(100,100)
geld=30
tag=Rand(1,28)
monat=Rand(1,12)
geburtstag=Rand(1,28)
geburtsmonat=Rand(1,12)
Global xp=1,yp=1
Global nom
Repeat
Cls
mh=MouseHit(1)
If menu Then If Button(1,60,0,0,\"Zurück\") Then menu=0

Select menu
Case 0
Text 200,1,geld+\" Euro\"
If Button(1,80,0,0,\"Karten kaufen\") Then menu=1
If Button(1,100,0,0,\"Karten anschauen\") Then
menu=2
Repeat
nom=nom+1
If nom>anzahlkarten-1 Then nom=1
Until Card(nom,5) Or CountCards()=0
End If
If Button(1,120,0,0,\"Programmieren\") Then menu=3
If tag<10 Then
If monat<10 Then
Text 1,1,\"0\"+tag+\".0\"+monat+\".04\"
Else
Text 1,1,\"0\"+tag+\".\"+monat+\".04\"
End If
Else
If monat<10 Then
Text 1,1,\"\"+tag+\".0\"+monat+\".04\"
Else
Text 1,1,\"\"+tag+\".\"+monat+\".04\"
End If
End If
If tag=geburtstag And monat=geburtsmonat Then
Text 1,41,\"50 Euro Geburtstagsgeld bekommen\"
End If
If tag=24 And monat=12 Then
Text 1,41,\"50 Euro Weihnachtsgeld bekommen\"
End If
If day Mod 7 = 1 Then
Text 1,21,\"3 Euro Taschengeld bekommen\"
End If
If tm<MilliSecs()-1000 Then
tm=MilliSecs()
tag=tag+1
day=day+1
If day Mod 7 = 1 Then geld=geld+3
If tag=geburtstag And monat=genurtsmonat Then geld=geld+50
If tag=24 And monat=12 Then geld=geld+50
Select monat
Case 1
If tag=32 Then tag=1:monat=2
Case 2
If tag=29 Then tag=1:monat=3
Case 3
If tag=32 Then tag=1:monat=4
Case 4
If tag=31 Then tag=1:monat=5
Case 5
If tag=32 Then tag=1:monat=6
Case 6
If tag=31 Then tag=1:monat=7
Case 7
If tag=32 Then tag=1:monat=8
Case 8
If tag=32 Then tag=1:monat=9
Case 9
If tag=31 Then tag=1:monat=10
Case 10
If tag=32 Then tag=1:monat=11
Case 11
If tag=31 Then tag=1:monat=12
Case 12
If tag=32 Then tag=1:monat=1
End Select
End If

Case 1
Text 200,1,geld+\" Euro\"
Text 120,100,\"Starterdecks\"
If mh And Button(120,120,100,90,\"Basis(15 EUR)\") And geld>14 Then
geld=geld-15
AddCard(\"Cls\")
AddCard(\"Print\",2)
AddCard(\"If\",4)
AddCard(\"Select\",2)
AddCard(\"Else\",2)
AddCard(\"Case\",4)
AddCard(\"For\",3)
AddCard(\"Next\",3)
AddCard(\"Exit\",2)
AddCard(\"Step\")
AddCard(\"Write\")
AddCard(\"ClsColor\")
End If
If mh And Button(230,120,100,90,\"Image(18 EUR)\") And geld>17 Then
geld=geld-18
End If
Text 120,100,\"Starterdecks\"
Case 2
If Card(nom,5) Then ShowCard 100,1,nom
If mh And Button(1,80,0,0,\"Voriger\") And nom>0 Then
Repeat
nom=nom-1
If nom<1 Then nom=anzahlkarten
Until Card(nom,5) Or CountCards()=0
End If
If mh And Button(1,100,0,0,\"Nächster\") Then
Repeat
nom=nom+1
If nom>anzahlkarten-1 Then nom=1
Until Card(nom,5) Or CountCards()=0
End If
Case 3
Programming()
End Select
Flip
Until KeyHit(1)

Function ShowCard(x,y,cardid)
Rect x,y,x+319,y+479,0
Text x+3,y+3,\"->Name des Befehls:\"
Text x+3,y+3+FontHeight(),Card(cardid,0)
Text x+3,y+3+FontHeight()*3,\"->Beschreibung:\"
addy=Write(x+3,y+3+FontHeight()*4,Card(cardid,1))
Text x+3,y+3+FontHeight()*2+addy,\"->Parameter:\"
addy=Write(x+3,y+3+addy+FontHeight()*3,Card(cardid,2))
Text x+3,y+3+FontHeight()*2+addy,\"->Rückgabewert:\"
addy=Write(x+3,y+3+addy+FontHeight()*3,Card(cardid,3))
Text x+3,y+3+FontHeight()*2+addy,\"->Beispiel:\"
addy=Write(x+3,y+3+addy+FontHeight()*3,Card(cardid,4))
Text x+3,y+3+FontHeight()*2+addy,\"->Anzahl bisher:\"
addy=Write(x+3,y+3+addy+FontHeight()*3,Int(Card(cardid,5)))
End Function
Function Write(x,y,satz$)
xpos=x
ypos=y
satz$=Replace(satz$,\"'\",Chr$(34))
For i=1 To Len(satz$)
zeichen$=Mid$(satz$,i,1)
If zeichen$=\"#\" Then
ypos=ypos+FontHeight()
xpos=x
Else
Text xpos,ypos,zeichen$
xpos=xpos+FontWidth()
End If
Next
Return ypos
End Function
Function Programming()
key=GetKey()
If key=>32 And xp>0 And yp>0 And xp<100 And yp<100 Then
For i=99 To xp Step -1
Prog(i+1,yp)=Prog(i,yp)
Next
Prog(xp,yp)=Chr$(key):xp=xp+1
ElseIf key=13 And yp<100 Then
yp=yp+1
xp=1
ElseIf key=8 And xp>1 Then
For i=xp+1 To 99
Prog(i-1,yp)=Prog(i,yp)
Next
Prog(xp-1,yp)=\"\"
xp=xp-1
ElseIf KeyHit(211) Then
For i=xp+1 To 99
Prog(i-1,yp)=Prog(i,yp)
Next
End If
If KeyHit(200) And yp>1 Then yp=yp-1
If KeyHit(203) And xp>1 Then xp=xp-1
If KeyHit(205) And xp<100 Then xp=xp+1
If KeyHit(208) And yp<100 Then yp=yp+1
For x=1 To 100
For y=1 To 100
Text x*FontWidth()+100,y*FontHeight(),Prog(x,y)
Next
Next
Text xp*FontWidth()+100,yp*FontHeight(),\"_\"
End Function
Function Button(x,y,w,h,Text$)
If h < FontHeight() Then h = FontHeight()
If w < StringWidth(Text$) Then w = StringWidth(Text$)

Color 255,255,255
If MouseOver(x,y,w,h) And MouseDown(1) Then Color 100,100,100
Rect x,y,w,h,1
Color 100,100,100
If MouseOver(x,y,w,h) And MouseDown(1) Then Color 255,255,255
Rect x+1, y+1, w-1, h-1,1
Color 198,198,198
If MouseOver(x,y,w,h) Then
Color 100,150,150 ; MouseOver Highlight
If MouseDown(1) Then Color 150,150,100 ; PushDown Highlight
EndIf
Rect x+1, y+1, w-2, h-2,1
Color 0,0,0
Text x + w/2 - (StringWidth(Text$)/2), y + h/2 - (FontHeight()/2), Text$
Color 255,255,255
If MouseOver(x,y,w,h) And MouseDown(1) Then Return 1
End Function
Function MouseOver(x,y,w,h)
If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then Return True
End Function
Function AddCard(name$,anzahl%=1)
Card(CardIdentity(name$),5)=Int(Card(CardIdentity(name$),5))+anzahl%
End Function
Function CardIdentity(name$)
For i=1 To anzahlkarten
If Card(i,0)=name$ Then Return i
Next
End Function
Function CountCards()
i=0
For j=1 To anzahlkarten
i=i+Card(i,5)
Next
Return i+1
End Function
[/code]
Zudem suche ich noch eine Person. <- Egal was für Fähigkeiten
Wenn jemand Lust hätte, dann könnte er mich ansprechen.
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

noir

BeitragSa, Dez 18, 2004 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Question Rolling Eyes Question

hee?

was willst du eigentlich machen?

einen spiele bei dem man mit bb-befehlen kämpft, wie mit irgendwelchen kindersammelkarten Twisted Evil ?

oder willst du ein programm schreiben bei dem man sich aus einzelnen karten ein programmcode zusammenspielen kann, denn man dann mit dem compiler in ein funktionsfähiges programm umsetzt?

- is beides eine Evil or Very Mad -Idee, oder erklärs ma genauer

Kryan

BeitragSa, Dez 18, 2004 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab mirs so gedacht:

wenn es fertig sein soll, soll es ein Internetspiel sein.
Da kann man zu Contests gehen, Karten kaufen,Karten tauschen, mit Freunden um die Wette proggen.
Das letztere soll so aussehen:
Abwechselnd werden Karten gezogen und wer zu erst ein Programm mit diesen Befehlskarten geschrieben hat, gewinnt.

Naja, hoffentlich hat jemand Lust Sad
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

noir

BeitragSa, Dez 18, 2004 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
und soll das programm dann auch wirkliche gehen ?
oder simulierst du es?

auch wenn dann dabei so viel raukommt:

pc:
and the winner is: Kryan


Winner-Code:

cls
clscolor 255,0,0
color 0,0,0
print "Winner"
end
Laughing

Kryan

BeitragSa, Dez 18, 2004 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, es soll richtig compilierrt werden - eine Art Simulation, halt wie beim BB-Editor
ah, genau, du hast mich auf etwas aufmerksam gemacht:
der computer denkt sich aufgaben aus, z.b.:

Gebe die Zahlen von 1 bis 100 aus
und wenn die Ausgabe dann

1
2
3
...

ist, dann ist man der Sieger - und das halt zu zweit
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Bigmichi

BeitragSa, Dez 18, 2004 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ich fidne die Idee garnicht so schlecht nur ich bin gespantn wie du es schaffen wilslt ds du kontrolliers ob die aufgabe gelöst ist ? den es gibt ja 1 Mio. Möglichkeiten zahlen von 1 bis 100 z.B auszugeben ....
 

noir

BeitragSa, Dez 18, 2004 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie legst du fest was richtig ist, es gibt beim programmieren theoretisch unendlich viele möglichkeiten um ein problem zu lösen.

du hast z.b folgende möglichkeiten

print 1
print 3
print 4
print 5
print ...

oder

for i = 1 to 100
print i
next

.....


wie soll der computer entscheiden ob es richtig is. oder geht es nur nach zeit und die anderen spieler müssen bestätigen das der code funktioniert?

es gibt ja auch zu den vielen möglichkeiten noch ganz verschiedene schreibweisen........ ???

außerdem brauch dann jeder spiele eine bb vollversion, denn bei der bbdemo kann man den compiler noch nicht extern auffrufen.
???????

Kryan

BeitragSa, Dez 18, 2004 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, da entdecke ich auch gerade das problem
naja, dann mach ich halt nur contests (mit vielen leuten) wo es dann auch eine jury geben wird, die alles beaufsichtigt und ausführt
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

noir

BeitragSa, Dez 18, 2004 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
des wäre vielleicht ganz lustig, aber da musst du dir schon viele und auch schwierige aufgaben ausdenken.

viel spass Wink
 

Kado

BeitragSa, Dez 18, 2004 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hier kommt mir eine fehler :S
BlitzBasic: [AUSKLAPPEN]

Card(i,0)=ReadLine(rf)


also das is am anfang das das strem does not exist

maximilian

BeitragSa, Dez 18, 2004 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Lol, ReadLine geht schlecht wenn keine Datei vorhanden ist -> logisch oder?

LordChaos
Variety is the spice of life. One day ignore people, next day annoy them.
 

noir

BeitragSo, Dez 19, 2004 0:20
Antworten mit Zitat
Benutzer-Profile anzeigen
er hat doch nur so ungefähr zeigen wollen, was er sich vorstellt, ich denke nicht das dies ein funktionsfähiger code sein sollte, außerdem wird er dieses projekt so wiso nicht so weiterführen, hab ihn davon überzeugt Wink

joachim_neu

BeitragSo, Dez 19, 2004 3:51
Antworten mit Zitat
Benutzer-Profile anzeigen
es geht, wenn du einen buffer zw. die bildschirmausgabe klemmst, und dann schaust, was da drinne is
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

Kryan

BeitragSo, Dez 19, 2004 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
das geht aber, wenn man die datei <wortschatz.txt> hat
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

noir

BeitragSo, Dez 19, 2004 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
na.....kado Wink
darauf hättest du auch kommen können *g
 

denial

BeitragSo, Dez 19, 2004 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Nette Idee. Mit Compiler und kompilieren hat das hier allerdings wenig zu tun, wenn ich das Vorhaben hier richtig verstanden hab.

EDIT: Ah jetzt hab ichs kapiert. Du nutzt den B3D-Democompiler. Naja auch nett. Confused

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group