Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[Win] [Game] Pong

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Constantin



Anmeldungsdatum: 31.08.2007
Beiträge: 36

BeitragVerfasst am: 01.03.2008, 20:52    Titel: [Win] [Game] Pong Antworten mit Zitat

Hi,

ich hab ein primitives Pong-Spiel programmiert und bin gespannt, was ihr davon haltet. Der Gegner ist eine KI, die nicht leicht zu besiegen ist.
Der Schwierigkeitsgrad ist "cpu_racket_speed".

Bin mir nicht sicher, ob es auf Linux geht, habs noch nicht getestet.

Bitte keine Blöden Kommtentare, wenn ich die Variablen etwas umständlich benutze.


Achtet darauf, dass es im Vollbildschirmmodus ausgeführt wird und dass
man Escape drücken muss, um es zu beenden.

Viel spaß beim spielen.

Downloadlink als Win-RAR Datei:
http://rapidshare.de/files/38897366/pong.rar.html

---
Code:

#define player_1 "Player"
#define player_2 "CPU"

screen 19, 32, 2, 1
screenset 0,1
randomize timer

sleep 1000

dim shared as integer mx, my, old_my

dim shared as integer racket_pos, racket_length
racket_length = 50

dim shared as double cpu_racket_pos, cpu_racket_length, cpu_racket_speed
cpu_racket_pos = 280
cpu_racket_length = 50
cpu_racket_speed = 25'Schwierigkeitsgrad

dim shared as integer ball_pos_x, ball_pos_y
dim shared as double ball_velocity_x, ball_velocity_y
ball_pos_x = 400
ball_pos_y = 300
ball_velocity_x = 15
ball_velocity_y = 6

dim shared as integer radius
radius = 5

dim shared as integer zufall

dim shared as integer score_player, score_cpu

'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
setmouse 50, 300
do
    color &hFFFFFF
   
    old_my = my
    getmouse mx, my
    setmouse 50, my, 0
   
    'Berechnen
    racket_pos = my
   
    ball_pos_x += ball_velocity_x
    ball_pos_y += ball_velocity_y
   
    ball_velocity_x *= 1.00125
    ball_velocity_y *= 1.00075
   
    if ball_pos_y > cpu_racket_pos then
        if ball_velocity_x > 0 then
            cpu_racket_pos += cpu_racket_speed
            zufall = rnd *4
        else
           
            select case zufall
            case 0
                cpu_racket_pos -= cpu_racket_speed / 4
            case 1
                cpu_racket_pos -= cpu_racket_speed / 5
            case 2
                cpu_racket_pos += cpu_racket_speed / 2
            case 3
                cpu_racket_pos += cpu_racket_speed
            case 4
                cpu_racket_pos += cpu_racket_speed / 3
            end select
        end if
    end if
    if ball_pos_y < cpu_racket_pos then
        if ball_velocity_x > 0 then
            cpu_racket_pos -= cpu_racket_speed
            zufall = rnd *4
        else
           
            select case zufall
            case 0
                cpu_racket_pos += cpu_racket_speed / 4
            case 1
                cpu_racket_pos += cpu_racket_speed / 5
            case 2
                cpu_racket_pos -= cpu_racket_speed / 2
            case 3
                cpu_racket_pos -= cpu_racket_speed
            case 4
                cpu_racket_pos -= cpu_racket_speed / 3
            end select
        end if
    end if
   
    if ball_pos_x < 55 then
        if ball_pos_y < racket_pos+racket_length then
            if ball_pos_y > racket_pos-racket_length then
                ball_velocity_x = ball_velocity_x * (-1)
            end if
        end if
    end if
    if ball_pos_x < 0 then
            score_cpu += 1
            ball_pos_x = 400
            ball_pos_y = 300
            ball_velocity_x = 15
            ball_velocity_y = 6
            cls
            color &hFF0000
            ? ,,,score_player ;" : "; score_cpu
            screencopy
            sleep 1000
    end if
    if ball_pos_x > 750 then
        if ball_pos_y < cpu_racket_pos+cpu_racket_length then
            if ball_pos_y > cpu_racket_pos-cpu_racket_length then
                ball_velocity_x = ball_velocity_x * (-1)
            end if
        end if
    end if
    if ball_pos_x > 800 then
            score_player += 1
            ball_pos_x = 400
            ball_pos_y = 300
            ball_velocity_x = 15
            ball_velocity_y = 6
            cls
            color &h00FF00
            ? ,,,score_player ;" : "; score_cpu
            screencopy
            sleep 1000
    end if
   
    if ball_pos_y < 0 then
        ball_velocity_y = ball_velocity_y * (-1)
    end if
    if ball_pos_y > 600 then
        ball_velocity_y = ball_velocity_y * (-0.95)
    end if
   
    '  Zeichnen
    line(50,racket_pos-racket_length)-(50, racket_pos+racket_length)
    line(51,racket_pos-racket_length)-(51, racket_pos+racket_length)
    line(52,racket_pos-racket_length)-(52, racket_pos+racket_length)
   
    line(750,cpu_racket_pos-cpu_racket_length)-(750, cpu_racket_pos+cpu_racket_length)
    line(749,cpu_racket_pos-cpu_racket_length)-(749, cpu_racket_pos+cpu_racket_length)
    line(748,cpu_racket_pos-cpu_racket_length)-(748, cpu_racket_pos+cpu_racket_length)
    circle(ball_pos_x, ball_pos_y), radius,,,,,F
   
    locate 1, 40
    ? score_player; " : " ;score_cpu
   
    screensync
    screencopy
   
    cls
loop until multikey(&h01)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

'end
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz