diff --git a/.gitignore b/.gitignore index 848bece..86533ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /x64 -/.vs \ No newline at end of file +/.vs +/.vscode \ No newline at end of file diff --git a/BlackJackQT.vcxproj b/BlackJackQT.vcxproj index 11b5b15..e98689b 100644 --- a/BlackJackQT.vcxproj +++ b/BlackJackQT.vcxproj @@ -83,6 +83,8 @@ + + @@ -92,6 +94,7 @@ + @@ -99,8 +102,12 @@ + + + + diff --git a/BlackJackQT.vcxproj.filters b/BlackJackQT.vcxproj.filters index 976fbae..fcd9944 100644 --- a/BlackJackQT.vcxproj.filters +++ b/BlackJackQT.vcxproj.filters @@ -49,6 +49,12 @@ Source Files + + Source Files + + + Source Files + @@ -57,6 +63,9 @@ Header Files + + Header Files + @@ -70,5 +79,13 @@ Form Files + + Form Files + + + + + Resource Files + \ No newline at end of file diff --git a/BlackJackQT.vcxproj.user b/BlackJackQT.vcxproj.user index 3fdbff0..d4e859b 100644 --- a/BlackJackQT.vcxproj.user +++ b/BlackJackQT.vcxproj.user @@ -2,9 +2,9 @@ - 2023-04-22T12:39:33.0148438Z + 2023-04-22T21:04:43.5072620Z - 2023-04-22T12:39:33.1426520Z + 2023-04-22T21:04:43.6152564Z \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0527685 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,75 @@ +cmake_minimum_required(VERSION 3.5) + +project(BlackJackQT VERSION 0.1 LANGUAGES CXX) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) + +set(PROJECT_SOURCES + main.cpp + mainwindow.cpp + mainwindow.h + mainwindow.ui + login.ui + login.h + deck.h + deck.cpp + bets.h + bets.cpp + login.cpp + hands.h + MainWindow.qrc + settings.cpp + settings.h + settings.ui + ManageUser.cpp + +) + +if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + qt_add_executable(BlackJackQT + MANUAL_FINALIZATION + ${PROJECT_SOURCES} + ) +# Define target properties for Android with Qt 6 as: +# set_property(TARGET BlackJackQT APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR +# ${CMAKE_CURRENT_SOURCE_DIR}/android) +# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation +else() + if(ANDROID) + add_library(BlackJackQT SHARED + ${PROJECT_SOURCES} + ) +# Define properties for Android with Qt 5 after find_package() calls as: +# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") + else() + add_executable(BlackJackQT + ${PROJECT_SOURCES} + ) + endif() +endif() + +target_link_libraries(BlackJackQT PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) + +set_target_properties(BlackJackQT PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE +) + +install(TARGETS BlackJackQT + BUNDLE DESTINATION . + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +if(QT_VERSION_MAJOR EQUAL 6) + qt_finalize_executable(BlackJackQT) +endif() diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user new file mode 100644 index 0000000..e67d697 --- /dev/null +++ b/CMakeLists.txt.user @@ -0,0 +1,416 @@ + + + + + + EnvironmentId + {20e25f3f-cfae-478e-b572-da7f1c36f11e} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 6 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop Qt 6.5.0 MinGW 64-bit + Desktop Qt 6.5.0 MinGW 64-bit + qt.qt6.650.win64_mingw_kit + 0 + 0 + 0 + + Debug + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Debug +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{buildDir}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + 0 + C:\Users\javier\Documents\code\cpp\build-BlackJackQT-Desktop_Qt_6_5_0_MinGW_64_bit-Debug + + + + + all + + false + + true + Build + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + Build + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + + Release + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Release +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{buildDir}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + C:\Users\javier\Documents\code\cpp\build-BlackJackQT-Desktop_Qt_6_5_0_MinGW_64_bit-Release + + + + + all + + false + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + CMakeProjectManager.CMakeBuildConfiguration + + + RelWithDebInfo + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{buildDir}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + C:\Users\javier\Documents\code\cpp\build-BlackJackQT-Desktop_Qt_6_5_0_MinGW_64_bit-RelWithDebInfo + + + + + all + + false + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release with Debug Information + CMakeProjectManager.CMakeBuildConfiguration + + + RelWithDebInfo + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{buildDir}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + 0 + C:\Users\javier\Documents\code\cpp\build-BlackJackQT-Desktop_Qt_6_5_0_MinGW_64_bit-Profile + + + + + all + + false + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Profile + CMakeProjectManager.CMakeBuildConfiguration + + + MinSizeRel + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=MinSizeRel +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{buildDir}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + C:\Users\javier\Documents\code\cpp\build-BlackJackQT-Desktop_Qt_6_5_0_MinGW_64_bit-MinSizeRel + + + + + all + + false + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Minimum Size Release + CMakeProjectManager.CMakeBuildConfiguration + + 5 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + BlackJackQT + CMakeProjectManager.CMakeRunConfiguration.BlackJackQT + BlackJackQT + false + true + true + false + true + C:/Users/javier/Documents/code/cpp/build-BlackJackQT-Desktop_Qt_6_5_0_MinGW_64_bit-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/MainWindow.qrc b/MainWindow.qrc index 807c7f9..9990a16 100644 --- a/MainWindow.qrc +++ b/MainWindow.qrc @@ -1,8 +1,9 @@ res/table.jpg + res/gear.png - + deck/10C.png deck/10D.png diff --git a/ManageUser.cpp b/ManageUser.cpp new file mode 100644 index 0000000..879feeb --- /dev/null +++ b/ManageUser.cpp @@ -0,0 +1,9 @@ +#include +#include + + +/* +std::vector users = { + {"javi",1} +}; +*/ diff --git a/README.MD b/README.MD index b264abf..2856c4b 100644 --- a/README.MD +++ b/README.MD @@ -5,3 +5,4 @@ Blackjack game made with qt framework save users implement bets + settings dialog \ No newline at end of file diff --git a/deck/10C.png b/deck/10C.png index f9ade6d..aa57bd7 100644 Binary files a/deck/10C.png and b/deck/10C.png differ diff --git a/deck/10D.png b/deck/10D.png index a9de67e..f8a35fe 100644 Binary files a/deck/10D.png and b/deck/10D.png differ diff --git a/deck/10H.png b/deck/10H.png index df551b0..52314c0 100644 Binary files a/deck/10H.png and b/deck/10H.png differ diff --git a/deck/10S.png b/deck/10S.png index 22141df..9a3845d 100644 Binary files a/deck/10S.png and b/deck/10S.png differ diff --git a/deck/1C.png b/deck/1C.png index 396c158..7966465 100644 Binary files a/deck/1C.png and b/deck/1C.png differ diff --git a/deck/1D.png b/deck/1D.png index d702a39..1dbe8d0 100644 Binary files a/deck/1D.png and b/deck/1D.png differ diff --git a/deck/1H.png b/deck/1H.png index 435fc14..410f44e 100644 Binary files a/deck/1H.png and b/deck/1H.png differ diff --git a/deck/1S.png b/deck/1S.png index f07f67d..270082e 100644 Binary files a/deck/1S.png and b/deck/1S.png differ diff --git a/deck/2C.png b/deck/2C.png index 413b0da..004c4bb 100644 Binary files a/deck/2C.png and b/deck/2C.png differ diff --git a/deck/2D.png b/deck/2D.png index f966e48..f2e1160 100644 Binary files a/deck/2D.png and b/deck/2D.png differ diff --git a/deck/2H.png b/deck/2H.png index 345744e..3f1d8dd 100644 Binary files a/deck/2H.png and b/deck/2H.png differ diff --git a/deck/2S.png b/deck/2S.png index a0de145..b98bac4 100644 Binary files a/deck/2S.png and b/deck/2S.png differ diff --git a/deck/3C.png b/deck/3C.png index f8b8183..7543952 100644 Binary files a/deck/3C.png and b/deck/3C.png differ diff --git a/deck/3D.png b/deck/3D.png index cee21f3..86253e0 100644 Binary files a/deck/3D.png and b/deck/3D.png differ diff --git a/deck/3H.png b/deck/3H.png index 8494e1c..3e8ad80 100644 Binary files a/deck/3H.png and b/deck/3H.png differ diff --git a/deck/3S.png b/deck/3S.png index 78e3b20..2ce5fa3 100644 Binary files a/deck/3S.png and b/deck/3S.png differ diff --git a/deck/4C.png b/deck/4C.png index 8938459..0ab9510 100644 Binary files a/deck/4C.png and b/deck/4C.png differ diff --git a/deck/4D.png b/deck/4D.png index d9ae5be..432867f 100644 Binary files a/deck/4D.png and b/deck/4D.png differ diff --git a/deck/4H.png b/deck/4H.png index 41a4488..7ea0baf 100644 Binary files a/deck/4H.png and b/deck/4H.png differ diff --git a/deck/4S.png b/deck/4S.png index 70bc9cc..8162cc3 100644 Binary files a/deck/4S.png and b/deck/4S.png differ diff --git a/deck/5C.png b/deck/5C.png index a7f49be..8051c0e 100644 Binary files a/deck/5C.png and b/deck/5C.png differ diff --git a/deck/5D.png b/deck/5D.png index cff0617..c41640c 100644 Binary files a/deck/5D.png and b/deck/5D.png differ diff --git a/deck/5H.png b/deck/5H.png index 1efcbf3..8b040f4 100644 Binary files a/deck/5H.png and b/deck/5H.png differ diff --git a/deck/5S.png b/deck/5S.png index e708806..0cb4110 100644 Binary files a/deck/5S.png and b/deck/5S.png differ diff --git a/deck/6C.png b/deck/6C.png index d8382d3..4d12cd1 100644 Binary files a/deck/6C.png and b/deck/6C.png differ diff --git a/deck/6D.png b/deck/6D.png index 7ba40e9..c8c7106 100644 Binary files a/deck/6D.png and b/deck/6D.png differ diff --git a/deck/6H.png b/deck/6H.png index 93a84f8..1440ec8 100644 Binary files a/deck/6H.png and b/deck/6H.png differ diff --git a/deck/6S.png b/deck/6S.png index 874162b..da7d738 100644 Binary files a/deck/6S.png and b/deck/6S.png differ diff --git a/deck/7C.png b/deck/7C.png index f6a9653..e71bfba 100644 Binary files a/deck/7C.png and b/deck/7C.png differ diff --git a/deck/7D.png b/deck/7D.png index 6c4393d..c77daff 100644 Binary files a/deck/7D.png and b/deck/7D.png differ diff --git a/deck/7H.png b/deck/7H.png index d4a59ff..7d506a2 100644 Binary files a/deck/7H.png and b/deck/7H.png differ diff --git a/deck/7S.png b/deck/7S.png index 895f85c..885a7c3 100644 Binary files a/deck/7S.png and b/deck/7S.png differ diff --git a/deck/8C.png b/deck/8C.png index bc87bf0..86a84a5 100644 Binary files a/deck/8C.png and b/deck/8C.png differ diff --git a/deck/8D.png b/deck/8D.png index 38c5695..2fc5a3d 100644 Binary files a/deck/8D.png and b/deck/8D.png differ diff --git a/deck/8H.png b/deck/8H.png index c2812aa..759873c 100644 Binary files a/deck/8H.png and b/deck/8H.png differ diff --git a/deck/8S.png b/deck/8S.png index 0277cc6..3b4e523 100644 Binary files a/deck/8S.png and b/deck/8S.png differ diff --git a/deck/9C.png b/deck/9C.png index d81b2f2..eb2d47e 100644 Binary files a/deck/9C.png and b/deck/9C.png differ diff --git a/deck/9D.png b/deck/9D.png index e0d3d05..a96c73d 100644 Binary files a/deck/9D.png and b/deck/9D.png differ diff --git a/deck/9H.png b/deck/9H.png index 7b679e1..557d0a9 100644 Binary files a/deck/9H.png and b/deck/9H.png differ diff --git a/deck/9S.png b/deck/9S.png index f58493e..e800624 100644 Binary files a/deck/9S.png and b/deck/9S.png differ diff --git a/deck/JC.png b/deck/JC.png index 16418e4..62f67cf 100644 Binary files a/deck/JC.png and b/deck/JC.png differ diff --git a/deck/JD.png b/deck/JD.png index 05b0389..6478933 100644 Binary files a/deck/JD.png and b/deck/JD.png differ diff --git a/deck/JH.png b/deck/JH.png index 259421c..30b74eb 100644 Binary files a/deck/JH.png and b/deck/JH.png differ diff --git a/deck/JS.png b/deck/JS.png index 6e0554d..06c1340 100644 Binary files a/deck/JS.png and b/deck/JS.png differ diff --git a/deck/KC.png b/deck/KC.png index 70c4ee5..eb21d56 100644 Binary files a/deck/KC.png and b/deck/KC.png differ diff --git a/deck/KD.png b/deck/KD.png index 95a3b8f..f3e940d 100644 Binary files a/deck/KD.png and b/deck/KD.png differ diff --git a/deck/KH.png b/deck/KH.png index 0defcbb..5b5ce30 100644 Binary files a/deck/KH.png and b/deck/KH.png differ diff --git a/deck/KS.png b/deck/KS.png index 43b8e19..2a9bc5d 100644 Binary files a/deck/KS.png and b/deck/KS.png differ diff --git a/deck/QC.png b/deck/QC.png index 6f74177..ef3552c 100644 Binary files a/deck/QC.png and b/deck/QC.png differ diff --git a/deck/QD.png b/deck/QD.png index 85c443f..b4d41ca 100644 Binary files a/deck/QD.png and b/deck/QD.png differ diff --git a/deck/QH.png b/deck/QH.png index ba8e1e4..f62b655 100644 Binary files a/deck/QH.png and b/deck/QH.png differ diff --git a/deck/QS.png b/deck/QS.png index a6ef69f..119778b 100644 Binary files a/deck/QS.png and b/deck/QS.png differ diff --git a/deck/aces.png b/deck/aces.png index 58d0e46..2aa525e 100644 Binary files a/deck/aces.png and b/deck/aces.png differ diff --git a/deck/gray_back.png b/deck/gray_back.png index 0b40ae3..f99c45a 100644 Binary files a/deck/gray_back.png and b/deck/gray_back.png differ diff --git a/mainwindow.cpp b/mainwindow.cpp index 2ac1a3c..a2f2fbe 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -12,6 +12,8 @@ void delay(int millisecondsToWait) QCoreApplication::processEvents(QEventLoop::AllEvents, 100); } } + + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { @@ -22,8 +24,11 @@ MainWindow::MainWindow(QWidget *parent) ui->label_name->setText("Name: " + name); ui->label_money->setText("Money: " + money + " $"); ui->frame2->hide(); + ui->widget_status->hide(); + ui->settings->setStyleSheet("QPushButton { qproperty-icon: url(:/res/res/gear.png); }"); + setWindowIcon(QIcon((":/deck/aces.png"))); - // full screen + // full screen // QMainWindow::showFullScreen(); } void MainWindow::newgamestart() @@ -113,7 +118,7 @@ void MainWindow::start_round() ui->player_num->show(); ui->dealer_num->show(); // dealer second hand - + QPixmap backcard(":/deck/gray_back.png"); std::string dcard2 = newdeck.card(); dhand.push_back(getvalue(":/deck/" + dcard2)); QPixmap dhand2((":/deck/" + dcard2).c_str()); @@ -123,32 +128,35 @@ void MainWindow::start_round() QPixmap pix((":/deck/" + dcard).c_str()); dhand.push_back(getvalue(":/deck/" + dcard)); ui->hand1_d->setPixmap(pix.scaled(100, 100, Qt::KeepAspectRatio)); + ui->dealer_num->setText(std::to_string(dhand[1]).c_str()); std::string pcard = newdeck.card(); pcard = newdeck.card(); std::string pcard2 = newdeck.card(); + QPixmap fcard((":/deck/" + pcard).c_str()); QPixmap scard((":/deck/" + pcard2).c_str()); + + phand.push_back(getvalue(":/deck/" + pcard)); phand.push_back(getvalue(":/deck/" + pcard2)); + ui->hand1_p->setPixmap(fcard.scaled(100, 100, Qt::KeepAspectRatio)); ui->hand2_p->setPixmap(scard.scaled(100, 100, Qt::KeepAspectRatio)); ui->player_num->setText(std::to_string(sum(phand)).c_str()); + if (sum(phand) == 21 && sum(dhand) != 21) { - QMessageBox::information(this, tr("YOU WIN"), tr("Congratulations")); + CustomMessageBox("Win", "Congratulations"); newgamestart(); } else if (sum(phand) == 21 && sum(dhand) == 21) { - QMessageBox::information(this, tr("TIE"), tr("PUSH BACK")); - newgamestart(); - } - else if ((phand[0] == 1 && phand[1] == 10) || (phand[1] == 1 && phand[0] == 10)) - { - QMessageBox::information(this, tr("Blackjack"), tr("You won")); + ui->hand2_d->show(); + CustomMessageBox("Tie", "Money Pushed"); newgamestart(); } + } void MainWindow::openmenu() @@ -187,13 +195,14 @@ void MainWindow::on_Bhit_clicked() delay(1000); if (sum(phand) > 21) { - QMessageBox::information(this, tr("Busted you passed"), tr("good luck next time")); + CustomMessageBox("Lose", "Too many"); newgamestart(); return; } else if (sum(phand) == 21) { - QMessageBox::information(this, tr("Black Jack"), tr("You win")); + ui->hand2_d->show(); + CustomMessageBox("Black Jack", "You win"); newgamestart(); return; } @@ -207,88 +216,98 @@ void MainWindow::on_Bstand_clicked() { ui->shows->hide(); ui->frame2->hide(); - ui->hand2_d->show(); + ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); if (sum(dhand) == 16 && sum(phand) == 16) { - QMessageBox::information(this, tr("Tie"), tr("money pushed")); + CustomMessageBox("Tie", "Money Pushed"); newgamestart(); return; } - if (sum(dhand) < 17) + + if (sum(dhand) > sum(phand)) { + CustomMessageBox("Lose", "Dealer have higher value"); + newgamestart(); + return; + } + + while (sum(dhand) < 17) { - while (true) + delay(700); + if (ui->hand3_d->pixmap(Qt::ReturnByValue).isNull()) { - delay(700); - if (ui->hand3_d->pixmap(Qt::ReturnByValue).isNull()) - { - std::string more = newdeck.card(); - dhand.push_back(getvalue(":/deck/" + more)); - QPixmap hand3((":/deck/" + more).c_str()); - ui->hand3_d->setPixmap(hand3.scaled(100, 100, Qt::KeepAspectRatio)); - ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); - } - else if (ui->hand4_d->pixmap(Qt::ReturnByValue).isNull()) - { - std::string more = newdeck.card(); - dhand.push_back(getvalue(":/deck/" + more)); - QPixmap hand4((":/deck/" + more).c_str()); - ui->hand4_d->setPixmap(hand4.scaled(100, 100, Qt::KeepAspectRatio)); - ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); - } - else if (ui->hand5_d->pixmap(Qt::ReturnByValue).isNull()) - { - std::string more = newdeck.card(); - dhand.push_back(getvalue(":/deck/" + more)); - QPixmap hand5((":/deck/" + more).c_str()); - ui->hand5_d->setPixmap(hand5.scaled(100, 100, Qt::KeepAspectRatio)); - ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); - } - else if (ui->hand6_d->pixmap(Qt::ReturnByValue).isNull()) - { - std::string more = newdeck.card(); - dhand.push_back(getvalue(":/deck/" + more)); - QPixmap hand5((":/deck/" + more).c_str()); - ui->hand6_d->setPixmap(hand5.scaled(100, 100, Qt::KeepAspectRatio)); - ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); - } - if (sum(dhand) <= 17 && sum(phand) <= 21 && sum(dhand) < sum(phand)) - { - QMessageBox::information(this, tr("You have higher cards"), tr("good job")); - break; - } - if (sum(dhand) >= 22) - { - QMessageBox::information(this, tr("dealer bust you win"), tr("good job")); - break; - } - else if (sum(dhand) > sum(phand)) - { - QMessageBox::information(this, tr("Dealer have higher value"), tr("good luck next time")); - break; - } - else if (sum(dhand) == sum(phand)) - { - QMessageBox::information(this, tr("Tie"), tr("money pushed")); - break; - } + std::string more = newdeck.card(); + dhand.push_back(getvalue(":/deck/" + more)); + QPixmap hand3((":/deck/" + more).c_str()); + ui->hand3_d->setPixmap(hand3.scaled(100, 100, Qt::KeepAspectRatio)); + ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); + ui->hand3_d->show(); + continue; } + else if (ui->hand4_d->pixmap(Qt::ReturnByValue).isNull()) + { + std::string more = newdeck.card(); + dhand.push_back(getvalue(":/deck/" + more)); + QPixmap hand4((":/deck/" + more).c_str()); + ui->hand4_d->setPixmap(hand4.scaled(100, 100, Qt::KeepAspectRatio)); + ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); + ui->hand4_d->show(); + continue; + } + else if (ui->hand5_d->pixmap(Qt::ReturnByValue).isNull()) + { + std::string more = newdeck.card(); + dhand.push_back(getvalue(":/deck/" + more)); + QPixmap hand5((":/deck/" + more).c_str()); + ui->hand5_d->setPixmap(hand5.scaled(100, 100, Qt::KeepAspectRatio)); + ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); + ui->hand5_d->show(); + continue; + } + else if (ui->hand6_d->pixmap(Qt::ReturnByValue).isNull()) + { + std::string more = newdeck.card(); + dhand.push_back(getvalue(":/deck/" + more)); + QPixmap hand5((":/deck/" + more).c_str()); + ui->hand6_d->setPixmap(hand5.scaled(100, 100, Qt::KeepAspectRatio)); + ui->dealer_num->setText(std::to_string(sum(dhand)).c_str()); + ui->hand6_d->show(); + continue; + } + + } + if (sum(dhand) < 17 && sum(phand) <= 21 && sum(dhand) < sum(phand)) + { + CustomMessageBox("Win", "You have higher cards"); + + } + else if (sum(dhand) >= 22) + { + CustomMessageBox("Win", "dealer bust"); + + } + else if (sum(dhand) == sum(phand)) + { + CustomMessageBox("Tie", "Money Pushed"); + } else if (sum(dhand) > sum(phand) && sum(phand) < 21) { - QMessageBox::information(this, tr("dealer wins"), tr("dealer have higher value")); + CustomMessageBox("Lose", "dealer have higher cards"); } else if (sum(phand) > sum(dhand)) { - QMessageBox::information(this, tr("You wins"), tr("congratulations")); + CustomMessageBox("Win", "you have higher cards"); } else if (sum(phand) == sum(dhand)) { - QMessageBox::information(this, tr("Tie"), tr("money pushed")); + CustomMessageBox("Tie", "Money Pushed"); } newgamestart(); } + + void MainWindow::CustomMessageBox(QString title, QString body) { @@ -297,6 +316,13 @@ void MainWindow::CustomMessageBox(QString title, QString body) ui->widget_status->show(); ui->frame_status_label_title->setText(title); ui->frame_status_label_body->setText(body); - delay(1000); + delay(2000); ui->widget_status->hide(); -} \ No newline at end of file + +} + +void MainWindow::on_settings_clicked() +{ + settings window = new settings(); + window.exec(); +} diff --git a/mainwindow.h b/mainwindow.h index 63e705f..1028c20 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -6,6 +6,7 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include "deck.h" +#include "settings.h" #include #include #include @@ -32,6 +33,7 @@ private slots: void on_Bhit_clicked(); void on_Bstand_clicked(); void CustomMessageBox(QString title, QString body); + void on_settings_clicked(); private: Ui::MainWindow *ui; diff --git a/mainwindow.ui b/mainwindow.ui index 9f49ba5..d59880d 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -78,7 +78,7 @@ - + text-align: center @@ -102,6 +102,29 @@ 23 + + + color: rgb(232, 230, 227); + background-color: rgb(0, 98, 204); + border-color: rgb(0, 86, 179); + + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + padding: .375rem .75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: .25rem; + transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; + + PLAY @@ -112,10 +135,10 @@ - 320 - 270 - 351 - 80 + 400 + 430 + 171 + 41 @@ -127,40 +150,83 @@ - 40 - 30 - 75 - 23 + 20 + 10 + 31 + 31 + + + 12 + + + + background-color:#1549FF; +border-style: solid; +border-color: black; +border-width: 0px; +border-radius: 10px; + + - DOUBLE + X2 - 150 - 30 - 75 - 23 + 70 + 10 + 31 + 31 + + + 15 + + + + Qt::LeftToRight + + + background-color: #00D333; +border-style: solid; +border-color: black; +border-width: 0px; +border-radius: 10px; + - HIT + - 250 - 30 - 75 - 23 + 120 + 10 + 31 + 31 + + + 15 + + + + background-color: red; +border-style: solid; +border-color: black; +border-width: 0px; +border-radius: 10px; + - STAND + + + + true @@ -193,8 +259,8 @@ - 390 - 10 + 370 + 20 341 91 @@ -207,8 +273,8 @@ - - + + @@ -228,8 +294,8 @@ - - + + @@ -247,12 +313,17 @@ - 470 - 170 + 490 + 120 51 31 + + + 20 + + @@ -260,12 +331,17 @@ - 460 - 450 + 470 + 300 61 - 21 + 31 + + + 20 + + @@ -281,60 +357,6 @@ - - - - 400 - 340 - 321 - 91 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false @@ -347,10 +369,16 @@ 141 + + false + + + background:rgba(56, 94, 203, 0.6); + - 60 + 50 10 111 41 @@ -361,6 +389,9 @@ 20 + + background-color:none; + TITLE @@ -388,6 +419,10 @@ 15 + + background-color:none; + + BODY @@ -396,6 +431,155 @@ + + + + 930 + 10 + 21 + 24 + + + + + + + true + + + + + + 410 + 260 + 221 + 171 + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 20 + 80 + 65 + 90 + + + + false + + + + + + + + + + + + 70 + 80 + 65 + 90 + + + + false + + + + + + + + + + + + 100 + 60 + 65 + 90 + + + + false + + + + + + + + + + + + 120 + 40 + 65 + 90 + + + + false + + + + + + + + + + + + 150 + 20 + 65 + 90 + + + + false + + + + + + + + + + + + 170 + 0 + 65 + 90 + + + + false + + + + + + + + + table_image frame2 shows @@ -405,8 +589,9 @@ dealer_num player_num gridLayoutWidget_2 - gridLayoutWidget_3 widget_status + settings + frame diff --git a/res/gear.png b/res/gear.png new file mode 100644 index 0000000..56951af Binary files /dev/null and b/res/gear.png differ diff --git a/settings.cpp b/settings.cpp new file mode 100644 index 0000000..c76f822 --- /dev/null +++ b/settings.cpp @@ -0,0 +1,14 @@ +#include "settings.h" + +settings::settings(QWidget *parent) + : QDialog(parent) +{ + setWindowIcon(QIcon((":/res/res/gear.png"))); + ui.setupUi(this); + +} + +settings::~settings() +{ + +} diff --git a/settings.h b/settings.h new file mode 100644 index 0000000..8a9dd83 --- /dev/null +++ b/settings.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include "ui_settings.h" + +class settings : public QDialog +{ + Q_OBJECT + +public: + settings(QWidget *parent = nullptr); + ~settings(); + +private: + Ui::settingsClass ui; +}; diff --git a/settings.ui b/settings.ui new file mode 100644 index 0000000..e7dc4f3 --- /dev/null +++ b/settings.ui @@ -0,0 +1,75 @@ + + + settingsClass + + + Qt::NonModal + + + + 0 + 0 + 600 + 400 + + + + settings + + + + + 30 + 40 + 160 + 18 + + + + Qt::Horizontal + + + + + + 30 + 20 + 49 + 16 + + + + Sonidos + + + + + + 330 + 30 + 75 + 24 + + + + FullScreen + + + + + + 430 + 30 + 75 + 24 + + + + Normal Size + + + + + + +