BCC#85 - Clicker / Buttonmasher

Übersicht Sonstiges Projekte

Neue Antwort erstellen

SpionAtom

Betreff: BCC#85 - Clicker / Buttonmasher

BeitragDi, Aug 18, 2015 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
user posted image

BCC #85 - Clicker / Buttonmasher

Herzlich willkommen zum BlitzCodeCompo #85 mit niedriger Schwierigkeitshürde.

Aufgabe
Programmiert ein Spiel, bei dem es darum geht, mit möglichst vielen Klicks / Tastenanschlägen ein bestimmtes Ziel zu erreichen.
Klar darf man das ganze mit Geschicklichkeitseinlagen, Zielgenauigkeit, RPG, Glück, oder sonstigen Elementen aufpeppen.
Die wesentliche Spielmechanik sollte aber Clicken / Drücken sein.
Ebensfalls verlange ich einen Gewinn-Status, es muss also möglich sein - anders als bei so Endlosspielen wie Tetris - zu gewinnen.

Beispiel
Als Beispiel sei nur Clicker Heroes genannt.

Regeln
  • Erlaubte Sprachen: BlitzBasic, Blitz3D, BlitzPlus, BlitzMax und Monkey, und FreeBasic jeweils in der Grundinstallation
  • Codelimit: Niemand braucht Codelimits
  • Resourcen-Limit: Niemand braucht Resourcenlimits


Abgabetermin
Der BCC läuft gut 4 Wochen und ein paar zusätzliche Stunden, nämlich genau bis zum
Sonntag, 13.09.2014 23:59.
Abgabe hier im Forum, oder als PM an mich inklusive Windows-EXE.

Viel Spass, viel Glück und viel Motivation!

(P.S. Den Text habe ich weitestgehend von HC geklaut)

Edit: Sorry, ich vergaß aufgrund der ganzen Kopiererei, die Freebasicer in den Wettbewerb einzuladen. Seid dabei!
Ebenso verlange ich eine Windowskompilat
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
  • Zuletzt bearbeitet von SpionAtom am Fr, Sep 18, 2015 15:02, insgesamt 2-mal bearbeitet

Holzchopf

Meisterpacker

BeitragDi, Aug 18, 2015 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Yay, es geht weiter! Very Happy

Sehr gutes Thema. Wir werden die Maus- und Tastaturindustrie ankurbeln Mr. Green
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Eingeproggt

BeitragDi, Aug 18, 2015 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Erster Razz

Features:
-) Sehr schnell!
-) Selbsterklärend
-) Konfigurierbare Steuerung
-) Wählbarer Schwierigkeitsgrad
-) Monitor-schonend Laughing (oder anders gesagt: schwache Graphik)
-) Ressourcenschonend (oder anders gesagt: keine externe Ressourcen)
-) OpenSource:

Code: [AUSKLAPPEN]
Graphics 1024,768,0,2
SetBuffer BackBuffer()

Const STATE_MENU = 0
Const STATE_PLAY = 1

.scancodes1
Data "ESC",1,2,3,4,5,6,7,8,9,0,"?","`","Backspace"
Data "Tab","q","w","e","r","t","z","u","i","o","p","ü","+","Return"
Data "Strg Left","a","s","d","f","g","h","j","k","l","ö","ä","^","Shift Left","#"
Data "y","x","c","v","b","n","m",",",".","-","Shift Right","*"
Data "Alt Left","Space","Capslock","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10"
Data "NumLock","Roll","7 (NumBlock)","8 (NumBlock)","9 (NumBlock)","# (NumBlock)","4 (NumBlock)"
Data "5 (NumBlock)","6 (NumBlock)","+ (NumBlock)","1 (NumBlock)","2 (NumBlock)","3 (NumBlock)","0 (NumBlock)",", (NumBlock)","<"
Restore scancodes1
Dim scancodes$(212)
For i=1 To 83
   Read scancodes$(i)
Next

.scancodes2
Data 86,"<"
Data 87,"F11"
Data 88,"F12"
Data 153,"Next Track (Media)"
Data 156,"Return (NumBlock)"
Data 157,"Ctrl Right"
Data 160,"Mute (Media)"
Data 162,"Play/Pause (Media)"
Data 164,"Stop (Media)"
Data 174,"Volume - (Media)"
Data 176,"Volume + (Media)"
Data 178,"Home (Internet)"
Data 181,"/ (NumBlock)"
Data 183,"Print"
Data 184,"Alt Right"
Data 197,"Pause"
Data 199,"Pos1"
Data 200,"Cursor Up"
Data 201,"PgUp"
Data 203,"Cursor Left"
Data 205,"Cursor Right"
Data 207,"End"
Data 208,"Cursor Down"
Data 209,"PgDown"
Data 210,"Insert"
Data 211,"Del"
Restore scancodes2
Local index = 0
For i=1 To 26
   Read index
   Read scancodes$(index)
Next

Global timer = CreateTimer(50)

Global last_key = False

Global control_key1 = 203
Global control_key2 = 205
Global control_key1_txt$ = scancodes$(control_key1)
Global control_key2_txt$ = scancodes$(control_key2)
Global control_key1_hit, control_key2_hit
Global control_mx, control_my, control_mhit

Global program_state = STATE_MENU
Global game_start_time = 0

Global game_progress# = 0
Global game_difficulty# = 0.1
Global game_won_time = 0
Global game_pressed_keys = 0

Repeat
   updateControls()
   
   If program_state = STATE_MENU Then
      
      If Button(10,10,"Start game",200) Then
         program_state = STATE_PLAY
         game_start_time = MilliSecs()
         game_progress = 0
         game_won_time = 0
         game_pressed_keys = 0
         Delay 1
      EndIf
      
      If Button(10,40,"Set up keys",200) Then
         control_key1 = getControlKey("Hit the first key on your keyboard")
         control_key2 = getControlKey("Hit the second key on your keyboard")
         control_key1_txt$ = scancodes$(control_key1)
         control_key2_txt$ = scancodes$(control_key2)
      EndIf
      Text 240,40,"Currently: ["+control_key1_txt$+"] and ["+control_key2_txt$+"]"
      
      If Button(10,70,"-",20) Then
         game_difficulty# = game_difficulty# - 0.02
         If game_difficulty# < 0.005 Then game_difficulty# = 0
      EndIf
      Text 40,70,"Difficulty: "+((game_difficulty#) * 500) + "%"
      If Button(190,70,"+",20) Then
         game_difficulty# = game_difficulty# + 0.02
         If game_difficulty# > 0.2 Then game_difficulty# = 0.2
      EndIf
      
      If Button(10,100,"Quit game",200) Then
         Exit
      EndIf
      
   ElseIf program_state = STATE_PLAY Then
      
      If control_key1_hit Then
         game_pressed_keys = game_pressed_keys + 1
         If last_key Then
            last_key = False
            game_progress# = game_progress + 1
         EndIf
      EndIf
      If control_key2_hit Then
         game_pressed_keys = game_pressed_keys + 1
         If Not last_key Then
            last_key = True
            game_progress# = game_progress + 1
         EndIf
      EndIf
      
      If game_progress >= 100 Then
         If game_won_time = 0 Then
            game_won_time = MilliSecs()
         EndIf
         Text 10,70,"You mastered this game in "+((game_won_time - game_start_time) / 1000.0)+"sec!"
      Else
         game_progress = game_progress - game_difficulty#
         If game_progress < 0 Then game_progress = 0
      EndIf
      
      Text 10,10,"Hit the Keys ["+control_key1_txt$+"] and ["+control_key2_txt$+"] alternating"
      Text 10,30,(MilliSecs() - game_start_time) / 1000.0
      Text 10,50,Int(game_progress)+" / 100 Points"
      Text 10,90,"APM: "+Int(game_pressed_keys / ( (MilliSecs() - game_start_time) / 60000.0))
      
      If KeyHit(1) Then
         program_state = STATE_MENU
      EndIf
   EndIf
   
   
   Flip 0:Cls
   WaitTimer timer
Forever

End

Function Button(x,y,txt$="",w=150,h=20)
   Color 180,180,180
   Rect x,y,w,h,0
   Color 255,255,255
   If control_mx > x And control_mx < x + w And control_my > y And control_my < y + h Then
      Rect x,y,w,h,0
      If control_mhit Then
         Return True
      EndIf
   EndIf
   Text x + w/2, y + h/2, txt$, 1, 1
   Return False
End Function

Function updateControls()
   control_mx = MouseX()
   control_my = MouseY()
   control_mhit = MouseHit(1)
   control_key1_hit = KeyHit(control_key1)
   control_key2_hit = KeyHit(control_key2)
End Function

Function getControlKey(prompt$)
   Cls
   Text 10,10,prompt$
   Flip 0
   FlushKeys()
   Repeat
      For i=2 To 212
         If KeyHit(i) Then
            Return i
         EndIf
      Next
      Delay 10
   Forever
   FlushMouse()
End Function
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

SpionAtom

Betreff: EXE

BeitragMi, Aug 19, 2015 10:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein regelkonformer Beitrag, Eingeproggt Wink
Ich würde dich bitten noch eine Exe beizulegen, die Regel ist just hinzugekommen (weil ich sie vergessen hatte).
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

SchattenMordors

BeitragSa, Aug 29, 2015 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mein Beitrag, genannt MashFight.

Features:
-Grafik UND Soundeffekte
-KI, die ihre Schwierigkeit nach einigen Spielen automatisch an das Können des Gegners anpasst

Steuerung:
Pfeiltasten(20*links für Blocken, 20*rechts für Angriff, 20*unten für Ducken, 20*oben für Sprung)

Regeln:
Ein Spieler kämpft gegen die KI. Dabei gewinnt, wer den Gegner durch Angriffe und Blocken aus dem Ring treibt. Dazu ist es nötig, ununterbrochen die Tastatur zu bearbeiten.

Das Spiel:
Obacht Virustotal erkennt "Win.Trojan.Vbiframe-38" in der exe --- Xeres
https://www.blitzforum.de/upload/file.php?id=13043
Sauron lebt!

Eingeproggt

BeitragSo, Aug 30, 2015 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sieht nach einer mehr als würdigen Konkurrenz aus Smile
Leider läuft es bei mir nicht?
Die Exe sagt, sie braucht eine Java-Runtime?

Und ich muss natürlich noch wie SpionAtom richtig angemerkt hat mein Gesamtpaket mit Exe nachreichen:
https://www.blitzforum.de/upload/file.php?id=13044

Hoffentlich macht noch jemand mit. Wir werden ja alle älter, aber früher war Ende August "Hochbetrieb" weil alle Ferien hatten Wink Sowohl das Thema als auch die (nicht vorhandenen) Limits machen eine Teilnahme ja recht einfach.

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Xeres

Moderator

BeitragSo, Aug 30, 2015 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Download von SchattenMordors erkennt Virustotal "Win.Trojan.Vbiframe-38"
Bitte achtet darauf, von wem ihr Dateien ausführt! Wir führen hier Standartmäßig keine Sicherheitsprüfungen durch!
Jemand mit einem Beitrag sollte immer mit Vorsicht behandelt werden. Wenn außerdem der Quellcode eine Funktion zum Rekursiven löschen von Verzeichnissen enthält...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

SpionAtom

Betreff: Halbzeit

BeitragMo, Aug 31, 2015 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ha llo!
Ha lbzeit, Freunde!
Ha ltet euch ran!
Ha bt ein Auge auf eure Exe-Dateien und prüft besser noch einmal, ob sie ordnungsgemäß laufen!
Ha ut noch ein paar Beiträge raus!
Ha ha!
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Midimaster

BeitragMo, Sep 07, 2015 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Nachdem heute bei uns das Wetter so bescheiden ist, hatte ich richtig Lust auch einen Beitrag einzureichen. Es ist so eine Art "ich packe in meinen Koffer..."-Spiel.

Aber seht selbst...
user posted image
Die "RememberCode. Exe" läuft ohne weitere Dateien zu benötigen. Wer stattdessen das Listing ins BlitzMax kopieren will braucht die Datei "Verdana.ttf" im im gleichen Verzeichnis wie die BMX-Datei.

Hier findet Ihr die Exe-Datei:

www.midimaster.de/BlitzScreens/RememberCode.Exe


Hier das Listing:
BlitzMax: [AUSKLAPPEN]
SuperStrict
AppTitle="Remember And Repeat The Code " + "©" + " Midimaster"
Graphics 600,400

Global Tick:TTimer=CreateTimer(60)
SeedRnd MilliSecs()
Global Code$=" ", Zufall$="", Wrong$=" ", Da%=1, BestWin%, LastWin%
Global StartZeit%=MilliSecs()-5*1000, WrongZeit%=StartZeit, AlsHilfe%=True

Incbin "Verdana.ttf"

Global Verdana:TImageFont, Klein:TImageFont
Verdana=LoadImageFont("Incbin::Verdana.ttf",36)
Klein=LoadImageFont("Incbin::Verdana.ttf",18)

SetImageFont Verdana
SetBlend AlphaBlend


Repeat
Cls
ShowClock
ShowString
ShowWin
If Len(Code)>14
TextFenster SiegerText()
Restart()
ElseIf AlsHilfe=True
TextFenster HilfeText()
Restart()

ElseIf Da=0
ZufallBuchstabe
ElseIf Wrong<>""
Restart
Else
TastenChecken
EndIf
Flip 0
WaitTimer Tick
Until KeyHit(KEY_ESCAPE)




Function ZufallBuchstabe()
Zufall=Chr(Rand(26)+64)
Code=Code+Zufall
Da=1
End Function



Function Restart()
If MouseDown(1)
LastWin=Len(Code)-1
Code=""
Da=0
Wrong=""
FlushKeys()
Zufall=""
StartZeit=MilliSecs()-5*1000
AlsHilfe=False
Repeat
Until MouseDown(1)=0
EndIf
End Function





Function TastenChecken()
Local Key$=Upper(Chr(GetChar()))
If key=Chr(0) Then Return
If Key=Mid(Code,Da,1)
Da=Da+1
If Da>Len(Code) Da=0
Else
Wrong=Key
WrongZeit=MilliSecs()
If LastWin>BestWin
BestWin=LastWin
EndIf
EndIf
End Function




Function ShowClock()
Local x%=200, y%=120, size#=80, von#, sekunden#
SetColor 0,255,255
For Local i%=210 To 210+330 Step 6
If i Mod 30=0
von=size-20
Else
von=size-8
EndIf
DrawLine x+Sin(i)*von, y+Cos(i)*von, x+Sin(i)*size, y+Cos(i)*size
Next
SetColor 111,111,111
If Wrong=""
sekunden=(MilliSecs()-StartZeit)*6/1000+180
Else
sekunden=(WrongZeit-StartZeit)*6/1000+180
If Int(MilliSecs()/1000) Mod 2=0
DrawMiddle "Click",x,y-20
Else
DrawMiddle "Start",x,y-20
EndIf
EndIf
SetColor 255,0,0
DrawLine x, y, x+Sin(sekunden)*size, y+Cos(sekunden)*size
End Function




Function DrawMiddle(t$,x%,y%)
DrawText t,x-TextWidth(t)/2,y
End Function




Function DrawRight(t$,x%,y%)
DrawText t,x-TextWidth(t),y
End Function



Function ShowString()
Local i%, x%=0, y%=250
SetColor 1,222,1
For i=1 To 19
If i>=da
SetColor 222,222,222
EndIf
DrawMiddle ".",x+i*30,y+15
Next
If Wrong=""
For i=1 To Len(Code)-1
DrawMiddle "*",x+i*30,y
Next
DrawMiddle Zufall,x+i*30,y
Else
For i=1 To Len(Code)-1
DrawMiddle Mid(Code,i,1),x+i*30,y+100
Next
DrawMiddle Zufall,x+i*30,y+100
For i=1 To da-1
DrawMiddle Mid(Code,i,1),x+i*30,y
Next
SetColor 255,0,0
DrawMiddle Wrong,x+i*30,y
EndIf
End Function




Function ShowWin()
Local i%, x%=500, y%=30
SetColor 111,111,111

DrawRight "Current:",x,y
DrawRight " Last:",x,y+40
DrawRight " Best:",x,y+80
SetColor 222,222,222
DrawText Len(Code)-1,x+40,y
DrawText LastWin,x+40,y+40
DrawText BestWin,x+40,y+80
End Function



Function TextFenster(help$)
Local Zeile%, HeadLine$
SetColor 0,222,222
DrawRect 25,25,550,350
SetColor 111,111,111
DrawRect 30,30,540,340

Local BisHier%=Instr(Help,"|")
HeadLine=Trim(Left(Help, BisHier-1))
Help=Mid(Help,BisHier+1)


SetColor 1,1,1
DrawMiddle HeadLine,301,31
SetColor 222,222,222
DrawMiddle HeadLine,300,30
SetImageFont Klein

SetColor 1,1,1
DrawText "© Midimaster Software Peter Wolkersdorfer",151,331
SetColor 255,255,255
DrawText "© Midimaster Software Peter Wolkersdorfer",150,330
Repeat
zeile=zeile+1
BisHier=Instr(help,"|")
SetColor 1,1,1
DrawText Trim(Left(Help, BisHier-1)),41,81+Zeile*22
Help=Mid(Help,BisHier+1)
Until Instr(help,"|")=0
SetImageFont Verdana

End Function




Function HilfeText$()
Local t$="Anleitung|Ziel des Spiels ist es, sich einen möglichst langen Code | zu merken. Der Code besteht zunächst aus nur einem | "
t=t + "Buchstaben und wächst jede Runde an. Nur der jeweils | neueste Buchstabe wird angezeigt. "
t=t + "In jeder Runde mußt | Du den bisherigen Code wiederholen. Schafft Du es | fehlerfrei wird ein neuer Buchstabe hinzugefügt."
t=t + " Wenn | Du einen Fehler machst, beginnt das Spiel von vorne.| | Erreichst Du 15 Zeichen hast Du das Spiel bezwungen.|"
Return t
End Function



Function SiegerText$()
Local t$="Gewonnen|Gratulation, Du hast Das Spiel bezwungen und Dir in | einer Minute einen Code mit einer"
t= t+ " Länge von 15 Zeichen| merken können. ||Besuche nun die Midimaster Homepage und hole Dir |dort "
t= t+ "kostenlos das Spiel 'Gitarre gegen Fußballer'!|| www.midimaster.de|| "
Return t
End Function

Holzchopf

Meisterpacker

BeitragSo, Sep 13, 2015 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin fertig. Wortwörtlich!

Mein Beitrag gibt's hier:

Deathclick herunterladen (bcc85-Deathclick.zip, 1'606KiB)

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

count-doku

BeitragSo, Sep 13, 2015 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmh wie sieht das jetzt mit dem Beitrag von SchattenMordors aus?

Ich kann den Code nicht ausführen dabei kommt bei mir ein Fehler.
Die Exe-Datei wirkt mir dank 4MB Größe und Virusalarm etwas komisch.

Hat irgendwer den Code zum laufen gekriegt?


lg,
count-doku

SpionAtom

Betreff: Spiel läuft

BeitragSo, Sep 13, 2015 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe den Code mit B+ zum Laufen bekommen.
@ SchattenMordors Ich würde dich bitten, eine Exe abzugeben, bei der der Virenscanner keinen Alarm schlägt.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Krumu1201

Betreff: Beitrag zum BCC 85

BeitragSo, Sep 13, 2015 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mein Beitrag:

www.blitzforum.de/upload/file.php?id=13061

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group