<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DubbelBlog &#187; basic</title>
	<atom:link href="http://www.haukeluebbers.de/tag/basic/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.haukeluebbers.de</link>
	<description>Webworker.</description>
	<lastBuildDate>Sun, 25 Jul 2010 16:38:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Chatbot &#8220;BILL&#8221; fertiggestellt</title>
		<link>http://www.haukeluebbers.de/2009/03/chatbot-bill-fertiggestellt/</link>
		<comments>http://www.haukeluebbers.de/2009/03/chatbot-bill-fertiggestellt/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 09:53:58 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Künstliche Intelligenz]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[chatterbox]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[leibniz]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://www.haukeluebbers.de/?p=147</guid>
		<description><![CDATA[Nun ja, was heißt fertig: So ein Projekt kann man vermutlich nie fertigstellen. Doch nun ist die Version 0.4 unter www.chatbot.haukeluebbers.de erreichbar. Natürlich noch schnell vor dem Einsendeschluss bei der Chatterbox Challenge angemeldet, und ab nach Italien, wo ich eine Woche im Rahmen eines Schüleraustausches weilte.Mehr als diese Ankündigung sollte dieser Artikel eigentlich nicht werden, [...]]]></description>
			<content:encoded><![CDATA[<p>Nun ja, was heißt fertig: So ein Projekt kann man vermutlich nie fertigstellen. Doch nun ist die Version 0.4 unter <a href="http://chatbot.haukeluebbers.de" target="_blank">www.chatbot.haukeluebbers.de</a> erreichbar. Natürlich noch schnell vor dem Einsendeschluss bei der <a href="http://www.chatterboxchallenge.com/" target="_blank">Chatterbox Challenge</a> angemeldet, und ab nach Italien, wo ich eine Woche im Rahmen eines Schüleraustausches weilte.<span id="more-147"></span>Mehr als diese Ankündigung sollte dieser Artikel eigentlich nicht werden, doch vielleicht fragen sich ja einige, was ich nun mache:</p>
<p>Meine To-Do Liste für die Osterferien sieht so aus:</p>
<p>1. Ein kleines PHP-OOP-System basteln, mit dem ich z.B. MySQL-Befehle und Designangaben effektiver programmieren kann</p>
<p>2. Endlich die Version 2.0 des TI-BASIC Tutorials beginnen. Mein Ziel ist es diese bis zum Ende der Ferien in zwei Wochen fertig gestellt zu haben.</p>
<p>Ansonsten nehme ich mit einigen Freunden an der <a href="http://www.intel-leibniz-challenge.de/" target="_blank">Intel-Leibniz-Challenge</a> (schon wieder so ein Wettbewerb -.- ^^) 2009 teil, bei der wir (wie immer) die Aufgaben rund um Programmierung und Physik wie immer am letzten Tag bearbeiten. <img src='http://www.haukeluebbers.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2009/03/chatbot-bill-fertiggestellt/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pingpong Multiplayer für TI-TRs</title>
		<link>http://www.haukeluebbers.de/2008/12/pingpong-multiplayer-fur-ti-trs/</link>
		<comments>http://www.haukeluebbers.de/2008/12/pingpong-multiplayer-fur-ti-trs/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:23:20 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[83plus]]></category>
		<category><![CDATA[84]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[multiplayer]]></category>
		<category><![CDATA[pingpong]]></category>
		<category><![CDATA[plus]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=29</guid>
		<description><![CDATA[Heute hab ich ein simples kleines Spiel programmiert. Hier der Quellcode plus die Erklärungen in [...] Heute war in beim BurgerKing essen. Und während ich geduldig auf meinen Hambuger + 2 Cheeseburger + 0,4 Cola wartete kam ich auf die Idee ein kleines Spiel für den TR zu programmieren. Um es zu spielen benötigt man [...]]]></description>
			<content:encoded><![CDATA[<p>Heute hab ich ein simples kleines Spiel programmiert. Hier der Quellcode plus die Erklärungen in [...]<br />
<span id="more-29"></span><br />
Heute war in beim BurgerKing essen. Und während ich geduldig auf meinen Hambuger + 2 Cheeseburger + 0,4 Cola wartete kam ich auf die Idee ein kleines Spiel für den TR zu programmieren.</p>
<p>Um es zu spielen benötigt man 2 Personen. Man legt den Taschenrechner zwischen sich.<br />
Der eine kontrolliert seine Wand mit der 9 und 3, der andere mit der 7 und der 1.</p>
<pre class="brush: delphi;">PROGRAM:PINGO
ClrHome
Disp &quot;Pingo&quot;
Disp &quot;CODE BY DUBBEL&quot;
ClrHome
[hier evt. noch weitere Informationen und Anleitung ausgeben lassen]
0-&gt;A [Geschwindigkeit mit der sich der Ball nach oben/unten bewegt]
1-&gt;B [Geschwindigkeit mit der sich der Ball nach rechts/links bewegt]
5-&gt;C [Position des Balles auf der Y-Achse]
8-&gt;D [Position des Balles auf der X-Achse]
4-&gt;E [Position der oberen Wand auf der Y-Achse]
5-&gt;F [Position der unteren Wand auf der Y-Achse]
Pause

Lbl A
If (B=1):Then [wenn der rechte Spieler dran ist (Ball bewegt sich nach rechts)]
If (G=74):Then [wenn die 9 gedrückt wurde]
If (E &gt; 1):Then [Kollisionsabfrage]
E-1-&gt;E:F-1-&gt;F
End
End
If (G=94):Then [wenn die 3 gedrückt wurde]
If (F &lt; 8):Then [Kollisionsabfrage]
E+1-&gt;E:F+1-&gt;F
End
End
End
If (B=-1):Then [Wiederholung nur eben für die beiden anderen Tasten]
If (G=72):Then
If (E&gt;2):Then
E-1-&gt;E:F-1-&gt;F
End
End
If (G=92):Then
If (F&lt;7):Then
E+1-&gt;E:F+1-&gt;F
End
End
End
ClrHome
Output(E,16,&quot;O&quot;) [Rechte Wände]
Output(F,16,&quot;O&quot;)
Output(E,1,&quot;O&quot;)
Output(F,1,&quot;O&quot;)
Output(1,1,&quot;----------------&quot;) [Begrenzung oben/unten]
Output(8,1,&quot;----------------&quot;)
If (C=E and (D=15 or D=2)):Then
B*-1-&gt;B:1-&gt;A [kollision mit Wänden]
End
If (C=F and (D=15 or D=2)):Then
B*-1-&gt;B:1-&gt;A
End
If (C=2 or C=7):Then
A*-1-&gt;A [Kollision mit Wänden oben/unten]
[A*-1-&gt;A stand hier nocheinmal - muss entfernt werden]
End

If (D=16 or D=1):Then
Output(4,4,&quot;GAME OVER&quot;)
If(D=16):Then
Output(6,7,&quot;LINKS&quot;)
Else
Output(6,6,&quot;RECHTS&quot;)
End
Output(7,3,&quot;HAT GEWONNEN&quot;)
PAUSE
prgmPINGO
End
Output(1,D,&quot;I&quot;)
Output(1,D,&quot;I&quot;)
Output(C,D,&quot;+&quot;)
C+A-&gt;C:D+B-&gt;D [Update Positionen - hier vor vorher ein Fehler]
Output(C,D,&quot;*&quot;)
getKey-&gt;G [Tastendrücke werden abgefangen]
Goto A</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/pingpong-multiplayer-fur-ti-trs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TI BASIC Tutorial 4</title>
		<link>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-4/</link>
		<comments>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-4/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:16:37 +0000</pubDate>
		<dc:creator>Dubbel</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[TI-BASIC]]></category>
		<category><![CDATA[+]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[lernen]]></category>
		<category><![CDATA[plus]]></category>
		<category><![CDATA[programmieren]]></category>
		<category><![CDATA[spiel]]></category>
		<category><![CDATA[ti]]></category>
		<category><![CDATA[ti84]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.haukeluebbers.de/?p=20</guid>
		<description><![CDATA[Nach langem Warten und unzähligen verzweifelten Fanmails [/ironie] hier nun der 4 und letzte Teil des Tutorials. Laut meinem Plan müsste nun die erste Eingabe kommen (Ich habe allerdings bemerkt, dass auch schon im letzten Tutorial ein Input reingerutscht ist, hab ich wohl übersehen ^^). In der Theorie sieht die so aus: Input &#34;Eingabe:&#34;,A In [...]]]></description>
			<content:encoded><![CDATA[<p>Nach langem Warten und unzähligen verzweifelten Fanmails [/ironie] hier nun der 4 und letzte Teil des Tutorials.<br />
<span id="more-20"></span><br />
Laut meinem Plan müsste nun die erste Eingabe kommen (Ich habe allerdings bemerkt, dass auch schon im letzten Tutorial ein Input reingerutscht ist, hab ich wohl übersehen ^^).</p>
<p>In der Theorie sieht die so aus:</p>
<pre class="brush: delphi;">Input &quot;Eingabe:&quot;,A</pre>
<p>In diesem Beispiel würde nun das, was der User eingibt, in der Variable A gespeichert. Mit dieser Variable kann man dann machen was man will, zum Beispiel sie ausgeben.</p>
<p>Wir werden nun mal einen kleinen Additionierer schreiben, also ein Taschenrechner, der nur Plus rechnen kann.</p>
<pre class="brush: delphi;">
ClrHome
Disp &quot;ADDITIONIERER&quot;
Input &quot;VARIABLE A:&quot;,A
Input &quot;VARIABLE B:&quot;,B
Disp &quot;SUMME:&quot;
Disp A+B</pre>
<p>Doch hier muss der User seine Eingabe ja immer mit ENTER bestätigen: Für ein actionreiches Spiel reicht es also nicht.</p>
<p>Dafür gibts die Funktion</p>
<pre class="brush: delphi;">getKey-&gt;A</pre>
<p>(A ist natürlich nur eine Variable)<br />
Wenn wir nun schreiben:</p>
<pre class="brush: delphi;">Lbl A:
getKey-&gt;A
If (A &gt; 0)
Disp A
Goto A</pre>
<p>Die if-Verzweigung muss hier rein, da sonst die ganze Zeit 0 ausgegeben würde, denn wenn keine Taste gedrückt wurde, ist der Wert von getKey 0.</p>
<p>Wenn man nun verschiedene Tasten drückt kann man die Zahlencodes für sie sehen.<br />
Die Pfeiltasten haben z.B. für oben 25, für rechts 26, für links 24 und für unten 34. 34?<br />
Ja richtig gelesen, denn der Code für die Tasten berechnet sich folgendermaßen:<br />
Die erste Zahl ist die Zeile und die zweite ist die Spalte in der die Taste steht.<br />
Y= ist ja die erste Taste ganz oben. Logischerweise hat sie den Code 11. WINDOW 12, 2nd 21 usw.<br />
Da die Unten-Pfeiltaste zur dritten Zeile gerechnet wird, hat sie den Wert 34.<br />
Diese Eingabemöglichkeit wird auch in dem Spiel von mir ganz unten verwendet.</p>
<p>Noch was zum Schluss:<br />
Wenn ihr, während ihr im Editor seid, auf<br />
PRGM->EXEC geht, eins auswählt und ENTER drückt, wird dieses Programm dann gestartet, wenn euer Programm bei diesem Befehl (prgmNAMEDESPRGMS) ankommt. Natürlich nur wenn dieses Programm auf dem Taschenrechner auch existiert.</p>
<p>Ganz zum Schluss veröffentliche ich hier nochmal den Quellcode für eines meiner Spiele: ein kleiner Snake Klon, mit KI und ohne Schwanz:</p>
<pre class="brush: delphi;">ClrHome
Output(3,5,&quot;SNAKE&quot;)
Output(4,3,&quot;PRESS ENTER&quot;)
Output(8,2,&quot;CODE BY DUBBEL&quot;)
6-&gt;X
5-&gt;Y
5-&gt;B
7-&gt;D
15-&gt;E
0-&gt;P
7-&gt;N
5-&gt;O
P ause
Output(1,1,&quot;++++++++++++++++&quot;)
Output(2,1,&quot;+              +&quot;)
Output(3,1,&quot;+              +&quot;)
Output(4,1,&quot;+              +&quot;)
Output(5,1,&quot;+              +&quot;)
Output(6,1,&quot;+              +&quot;)
Output(7,1,&quot;+              +&quot;)
Output(8,1,&quot;++++++++++++++++&quot;)
Output(N,O,&quot;*&quot;)

Lbl A:
0-&gt;C
0-&gt;G
getKey-&gt;A
If(A=26)
Then
Output(Y,X,&quot; &quot;)
1-&gt;B
X+1-&gt;X
1-&gt;C
End
If(A=24)
Then
Output(Y,X,&quot; &quot;)
2-&gt;B
X-1-&gt;X
1-&gt;C
End
If(A=25)
Then
Output(Y,X,&quot; &quot;)
3-&gt;B
Y-1-&gt;Y
1-&gt;C
End
If(A=34)
Then
Output(Y,X,&quot; &quot;)
4-&gt;B
Y+1-&gt;Y
1-&gt;C
End

If(C=0):Then
Output(Y,X, &quot; &quot;)

If(B=1):Then
X+1-&gt;X:End
If(B=2):Then
X-1-&gt;X:End
If(B=3):Then
Y-1-&gt;Y:End
If(B=4):Then
Y+1-&gt;Y:End
End

Output(D,E,&quot; &quot;)
If(Q=1):Then
If(Y&gt;D):Then
D +1-&gt;D:1-&gt;G:End
If(Y&gt;D):Then
D -1-&gt;D:1-&gt;G:End
If (G=0):Then
If(X&gt;E):Then
E+1-&gt;E:End
If(X&lt;E):Then
E-1-&gt;E:End
End:0-&gt;Q
Else
1-&gt;Q:End
Output(D,E,&quot;+&quot;)
If((Y=D and X=E) or (Y&lt;2) or (Y&gt;7) or (X&lt;2) or (x&gt;15)):Then
ClrHome
Output(1,5,&quot;GAME OVER!&quot;)
Output(2,9,P)
Output(3,7,&quot;PUNKTE&quot;);
Output(4,4,&quot;PRESS ENTER&quot;)
Output(6,5,&quot;VISIT:&quot;)
Output(7,7,&quot;WWW.&quot;)
Output(8,1,&quot;HAUKELUEBBERS.DE&quot;)
Pause
prgmSNAKE
Else
Output(Y,X,&quot;O&quot;)
End
P +1-&gt;P
If(N=Y and 0=X):Then
P +100-&gt;P
randInt(2,7)-&gt;N
randInt(2,14)-&gt;O
End
Output(N,O,&quot;*&quot;)

Output(1,7,P)
Wurzel_aus(113.1337^5)
453.45/45.5^2
66/66^5*3
Goto A</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.haukeluebbers.de/2008/12/ti-basic-tutorial-4/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
	</channel>
</rss>
