Constantin
 
 
  Anmeldungsdatum: 31.08.2007 Beiträge: 36
 
  | 
		
			
				 Verfasst am: 01.03.2008, 19:52    Titel: [Win] [Game] Pong | 
				     | 
			 
			
				
  | 
			 
			
				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
 
 | 	 
  | 
			 
		  |