Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Hazard


Rekomendowane odpowiedzi

Opublikowano

Hej. Jak mogę zrobić tak, by od kwoty odejmowało 1zł, gdy przegram, a dodawało 1zł, gdy wygram?

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Loser = GUICreate("Loser", 269, 138, 192, 124)
$Liczba = GUICtrlCreateInput("Wybierz liczbę od 1 do 10 i sprawdź czy wygrałes!", 8, 8, 249, 21)
$Losuj = GUICtrlCreateButton("Losuj liczbę!", 8, 40, 249, 41, $WS_GROUP)
$kwota = 10
$Label1 = GUICtrlCreateLabel("Posiadasz "&$kwota&" złotych.", 40, 96, 196, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Losuj
		$y = Random(1,10,1)
		$x = GUICtrlRead($Liczba)
		If $x = $y Then
			$s = MsgBox(0,"TRUE!","Wygrałes!")
		Else
			MsgBox(0, "FALSE!", "Dupa blada!")
		EndIf
		If $y = $s Then $kwota -1 Then
		EndIf
EndSwitch
WEnd

mpc.png

Opublikowano
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;=======================
Global $kwota = 100 ;Dajmy na to plusikowe 100 złotych ;d
;=======================
#Region ### START Koda GUI section ### Form=
$Loser = GUICreate("Loser", 269, 138, 192, 124)
$Liczba = GUICtrlCreateInput("Wybierz liczbę od 1 do 10 i sprawdź czy wygrałes!", 8, 8, 249, 21)
$Losuj = GUICtrlCreateButton("Losuj liczbę!", 8, 40, 249, 41, $WS_GROUP)
$kwota = 10
$Label1 = GUICtrlCreateLabel("Posiadasz "&$kwota&" złotych.", 40, 96, 196, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
               Case $GUI_EVENT_CLOSE
                       Exit
               Case $Losuj
                       $y = Random(1,10,1)
                       $x = GUICtrlRead($Liczba)
                       If $x = $y Then
                               $kwota += 1  ;(Lub $kwota = $kwota + 1)
                               $s = MsgBox(0,"TRUE!","Wygrałes!")
                       Else
                               $kwota -= 1 ;(Lub $kwota = $kwota - 1)
                               MsgBox(0, "FALSE!", "Dupa blada!")
                       EndIf
                       If $y = $s Then $kwota -1 Then
                       EndIf
       EndSwitch
WEnd

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Hehee This is my sweet, secret. Podpowiem, że na takiej stronce www, na którą nie mogę trafić raz drugi :<

 

@Edit

 

To śmiga cacuśnie:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;=======================
Global $kwota = 100 ;Dajmy na to plusikowe 100 złotych ;d
Global $match = True
Global $inform = False
;=======================
#Region ### START Koda GUI section ### Form=
$Loser = GUICreate("Loser", 269, 138, 192, 124)
$Liczba = GUICtrlCreateInput("Wybierz liczbę od 1 do 10 i sprawdź czy wygrałes!", 8, 8, 249, 21)
$Losuj = GUICtrlCreateButton("Losuj liczbę!", 8, 40, 249, 41, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Posiadasz "&$kwota&" złotych.", 40, 96, 196, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
               Case $GUI_EVENT_CLOSE
                       Exit
				Case $Losuj
		If $match = True Then
                       $y = Round(Random(1,10,1))
                       $x = GUICtrlRead($Liczba)
                       If $x = $y Then
                               $kwota = $kwota + 1  ;(Lub $kwota = $kwota + 1)
                               $s = MsgBox(0,"TRUE!","Wygrałes!")
			GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                       Else
                               $kwota = $kwota -  1 ;(Lub $kwota = $kwota - 1)
                               MsgBox(0, "FALSE!", "Dupa blada!")
			GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
		EndIf
		EndIF
	EndSwitch
	If $kwota = 0 And $inform = False Then
		MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
		$match = False
		$inform = True
	EndIf
WEnd

 

Dodałem Round do Randoma bo inaczej szansa na trafienie wynosiła jakieś 0.00000000000000000000000000000000000000000000000000000000000000001%

 

@Edit2

Masz jeszcze funkcję sprawdzającą czy czasem masz jeszcze kasę na grę.

 

@Edit3

Teraz działa tak jak powinno.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Nie prosiłem o gotowca, ale o pomoc. Teraz 3/4 rzeczy nie rozumiem. Nawet tego guiCtrlsetdata które jest w poradniku 4ggr. :) (jak zle skróciłem to przepraszam, ale jestem na mobilnym)

mpc.png

Opublikowano

Jeśli flaga Randoma (czyli trzeci argument), jest na '1', to zwraca tylko liczby całkowite, więc Round() wtedy już niepotrzebny.

 

- - - -

 

@Manderigon:

Oh come on! Może nie jest nalepiej napisany, ale to z powodu dłużyzn... Nie mów, że tak niejasno :(

Ta sygnatura jest pusta.

Opublikowano

Spróbujemy jeszcze raz, może coś zrozumiem. :)

 

P.S - Nie zamykajcie tematu, bo jeszcze będe miał parę pytań, na które na pewno odpowiedzą mi eksperci tacy jak hfauha, 4ggr lub Fii. ;)

 

Pzdr.

 

@EDIT Można zrobić tak, aby był jakiś % szansy na jakąś rzecz?

mpc.png

Opublikowano

Hahaha, mnie napisał jako 1. :D

 

Możesz zrobić tak:

 

If Random() < 0.1 then; 10% szans

If Random() < 0.2 then; 20% szans

If Random() < 0.3 then; 30% szans

itd.

 

Opublikowano

@autor: Nie Fii tylko Fli, eF eL iii ;)

 

Global $kwota = 100 ;Dajmy na to plusikowe 100 złotych ;d
Global $match = True
Global $inform = False

 

$kwota - ile masz kasy, zmienna globalna, czyli każda funkcja probgramu może z niej korzystać.

 

$match = True, czyli (pl.)$mecz = Prawda, inaczej True tutaj oznacza zezwolenie na grę. Jeśli masz 0 złotych na koncie program w tym miejscu:

If $kwota = 0 And $inform = False Then
                       MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
                       $match = False;<================================================
                       $inform = True

Zmienia wartość na fałsz, co uniemożliwia dalszą grę, bo nie masz za co grać ;] Natomiast sprawdzanie, czy jest za co grać odbywa się tutaj, na samym początku losowania

Case $Losuj
                       If $match = True Then;<===============================================
                       $y = Round(Random(1,10,1))

 

$inform = False - zmienna zachowująca wartość informacji o braku kasy. Jeśli złotówki spadną do zera, to program ustawi $match na False (czyli uniemożliwi grę) i zmieni $inform na True, dzięki czemu będzie wiedział, że już o tym poinformował:

                If $kwota = 0 And >>>$inform = False<<< Then
                       MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
                       $match = False
                       $inform = True;<====================================
               EndIf

 

Program działa w pętli, więc gdyby nie ta zmienna to leciałoby msgbox za msgboxem, że nie masz kasy i program by się zwiesił, zresztą sam spróbuj wycofać $inform z obiegu a się przekonasz :)

 

 

Myślę, że wszelakie zawiłości rozwiałem.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Jakoś nie widzę tego plusa ;d

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Dlaczego tu mogę mieć kasę na minusie? o.O

 

 

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\Programy\AutoIt\AutoIt3\Icons\au3.ico
#AutoIt3Wrapper_outfile=Hazard.exe
#AutoIt3Wrapper_Run_Obfuscator=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;=======================
Global $kwota = 100 ;Dajmy na to plusikowe 100 złotych ;d
Global $match = True
Global $inform = False
;=======================
#Region ### START Koda GUI section ### Form=
$Loser = GUICreate("Loser", 269, 153, 192, 124)
$Liczba = GUICtrlCreateInput("Wybierz liczbę od 1 do 10 i sprawdź czy wygrałes!", 8, 8, 249, 21)
$Losuj = GUICtrlCreateButton("Losuj liczbę!", 8, 40, 249, 41, $WS_GROUP)
$Bunt = GUICtrlCreateButton("Bunt!",8,83,249,41)
$Label1 = GUICtrlCreateLabel("Posiadasz "&$kwota&" złotych.", 40, 123, 196, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
               Case $GUI_EVENT_CLOSE
                       Exit
					Case $Losuj
                       If $match = True Then
                       $y = Round(Random(1,10,1))
                       $x = GUICtrlRead($Liczba)
                       If $x = $y Then
                               $kwota = $kwota + 1  ;(Lub $kwota = $kwota + 1)
                               $s = MsgBox(0,"TRUE!","Wygrałes!")
                               GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                       Else
                               $kwota = $kwota -  1 ;(Lub $kwota = $kwota - 1)
                               MsgBox(0, "FALSE!", "Dupa blada!")
                               GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
						EndIf
					EndIf
							 If $kwota = 0 And $inform = False Then
                       MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
                       $match = False
                       $inform = True
						EndIf
			Case $Bunt
				If Random() < 0.5 Then
					$kwota = $kwota  + 15
					GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
					MsgBox(0,"","Bunt udany! Udało ci się odzyskać 15zł!")
				Else
					$kwota = $kwota - 20
					GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
					MsgBox(0,"","Nie udało ci się zbuntować! Tracisz 20zł!")
				EndIf
			EndSwitch
					 If $kwota = 0 And $inform = False Then
                       MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
                       $match = False
                       $inform = True
						EndIf
WEnd

 

mpc.png

Opublikowano

 

 

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_icon=D:\Programy\AutoIt\AutoIt3\Icons\au3.ico

#AutoIt3Wrapper_outfile=Hazard.exe

#AutoIt3Wrapper_Run_Obfuscator=y

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <ButtonConstants.au3>

#include <EditConstants.au3>

#include <GUIConstantsEx.au3>

#include <StaticConstants.au3>

#include <WindowsConstants.au3>

;=======================

Global $kwota = 100 ;Dajmy na to plusikowe 100 złotych ;d

;=======================

#Region ### START Koda GUI section ### Form=

$Loser = GUICreate("Loser", 269, 153, 192, 124)

$Liczba = GUICtrlCreateInput("Wybierz liczbę od 1 do 10 i sprawdź czy wygrałes!", 8, 8, 249, 21)

$Losuj = GUICtrlCreateButton("Losuj liczbę!", 8, 40, 249, 41, $WS_GROUP)

$Bunt = GUICtrlCreateButton("Bunt!",8,83,249,41)

$Label1 = GUICtrlCreateLabel("Posiadasz "&$kwota&" złotych.", 40, 123, 196, 28)

GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

 

While 1

$nMsg = GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

Exit

Case $Losuj

If $kwota <= 0 Then

MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")

Else

$y = Round(Random(1,10,1))

$x = GUICtrlRead($Liczba)

If $x = $y Then

$kwota = $kwota + 1 ;(Lub $kwota = $kwota + 1)

$s = MsgBox(0,"TRUE!","Wygrałes!")

GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")

Else

$kwota = $kwota - 1 ;(Lub $kwota = $kwota - 1)

MsgBox(0, "FALSE!", "Dupa blada!")

GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")

EndIf

EndIf

Case $Bunt

If $kwota <= 0 Then

MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")

Else

If Random() < 0.5 Then

$kwota = $kwota + 15

GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")

MsgBox(0,"","Bunt udany! Udało ci się odzyskać 15zł!")

Else

$kwota = $kwota - 20

GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")

MsgBox(0,"","Nie udało ci się zbuntować! Tracisz 20zł!")

EndIf

EndIf

EndSwitch

WEnd

 

 

Opublikowano

@JestemHackiem źle, jeśli będzie miał zero to i tak da radę zagrać :]

 

a teraz prawidłowo:

If $kwota <= 0 Anf $inform = False Then

@UP nie wolno zapomnieć o $inform bo program się zablokuje!

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

@up pomyłka

Było

If $kwota <= 0 Anf $inform = False Then

A powwinno

If $kwota <= 0 And $inform = False Then

Opublikowano

Zauważyłem tą literówkę. :)

 

Ok. Macie pomysły, co jeszcze mogę zrobić jako osoba niedoświadczona?

 

Pzdr.

 

@EDIT

 

Tutaj też mi coś nie gra. :P Chcę, aby bo zbliżeniu się do bankructwa, pokazywało MsgBox'a i zwiększało szansę do iluśtam %.

 

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;=======================
Global $kwota = 100;Dajmy na to plusikowe 100 złotych 
Global $match = True
Global $inform = False
;=======================
#Region ### START Koda GUI section ### Form=
$Loser = GUICreate("Loser", 269, 153, 192, 124)
$Liczba = GUICtrlCreateInput("Wybierz liczbę od 1 do 10 i sprawdź czy wygrałes!", 8, 8, 249, 21)
$Losuj = GUICtrlCreateButton("Losuj liczbę!", 8, 40, 249, 41, $WS_GROUP)
$Bunt = GUICtrlCreateButton("Bunt!",8,83,249,41)
$Label1 = GUICtrlCreateLabel("Posiadasz "&$kwota&" złotych.", 40, 123, 196, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
              Case $GUI_EVENT_CLOSE
                      Exit
                                              Case $Losuj
                      If $match = True Then
                      $y = Round(Random(1,10,1))
                      $x = GUICtrlRead($Liczba)
                      If $x = $y Then
                              $kwota = $kwota + 1  ;(Lub $kwota = $kwota + 1)
                              MsgBox(0,"TRUE!","Wygrałes!")
                              GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                      Else
                              $kwota = $kwota -  1 ;(Lub $kwota = $kwota - 1)
                              MsgBox(0, "FALSE!", "Dupa blada!")
                              GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                                                      EndIf
                                              EndIf
                                                               If $kwota = 0 And $inform = False Then
                      MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
                      $match = False
                      $inform = True
                                                      EndIf
                              Case $Bunt
                                      If Random() < 0.4 Then
                                              $kwota = $kwota  + 15
                                              GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                                              MsgBox(0,"","Bunt udany! Udało ci się odzyskać 15zł!")
                                      Else
                                              $kwota = $kwota - 20
                                              GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                                              MsgBox(0,"","Nie udało ci się zbuntować! Tracisz 20zł!")
                                      EndIf
                              EndSwitch
     If $kwota <= 0 And $inform = False Then
                      MsgBox(16, "Error", "Niestety nie masz kasiory na dalsza gre!")
                      $match = False
                      $inform = True
				   Exit
			   EndIf
			   If $kwota = 25 And $inform = True Then
				   GUICtrlSetData($label1,"Posiadasz "&$kwota&" złotych.")
				   MsgBox(0,"UWAGA!","Zblizasz się do bankructwa! Szansa na wygraną rosnie do 65%!")
				   If Random() < 0.65 Then
                                              $kwota = $kwota  + 15
                                              GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                                              MsgBox(0,"","Bunt udany! Udało ci się odzyskać 15zł!")
                                      Else
                                              $kwota = $kwota - 20
                                              GUICtrlSetData($label1, "Posiadasz "&$kwota&" złotych.")
                                              MsgBox(0,"","Nie udało ci się zbuntować! Tracisz 20zł!")
									   EndIf
								   EndIf
WEnd

 

mpc.png

Opublikowano

Weź szanse na trafienie ustaw pod jakąś zmienną i po prostu ją zmieniaj.

Ale to:

If $kwota = 25 And $inform = True Then

bardzo rzadko kiedy będziesz miał równo 25, więc jakieś szerszy warunek by pasował.

roomy.png

Wczoraj do ciebie nie należy. Jutro niepewne... Tylko dziś jest twoje.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...