• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Project raised exception class EAccessViolation with message 'Access violation at address in module"

Object Storage Arubacloud
0 głosów
327 wizyt
pytanie zadane 19 maja 2020 w C i C++ przez kacper17 Nowicjusz (120 p.)

// Unit1.cpp
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "wojna.h"
#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------



const  int N=52,M=156;

 int IloscTaliiKart,IloscGraczy; // WPROWADZAMY ILOSC GRACZY 2 LUB 3       ORAZ ILOMA TALIAMI BEDZIEMY GRAC(brak limitu talii,dziala na kazdej liczbie,
 bool x=true,xx=true,xxx=true; // zmienne bool do petli
    // start
Karta *talia=new Karta[52*IloscTaliiKart];// dynamiczna tablica na okreslona przez gracza ilosc talii
    char *figura[13]= {"2","3","4","5","6","7","8","9","10","walet","dama","krol","as"};
    char *kolor[4]= {"trefl","karo","kier","pik"};
    int numer_rundy=1,licznik_gracza1=0,licznik_gracza2=0,licznik_gracza3=0; // zmienne do zliczania rund i liczby kart w talii  gracza
 Karta a1;
 Lista *gracz1 = new Lista; // glowa list
    Lista *gracz2 = new Lista;
    Lista *gracz3 = new Lista;
    Lista  *koniec1, *koniec2,*koniec3; // ogon listy
    Lista *TaliaGracza1 = gracz1;
    Lista *TaliaGracza2 = gracz2; //zmienne do wyswietlenia kart testowo
    Lista *TaliaGracza3 = gracz3;

void __fastcall TForm1::PIloscTalii1Click(TObject *Sender)
{
IloscTaliiKart=1;
IloscTalii -> Visible=false;
PIloscTalii1 ->Visible=false;
PIloscTalii2 ->Visible=false;
PIloscTalii3 ->Visible=false;
PIloscTalii4 ->Visible=false;
PIloscTalii5 ->Visible=false;
a1.zlozTalie(talia,figura,kolor,IloscTaliiKart); // wywołanie tego powoduje błąd
    
}



// wojna.h 
class Lista;

class Karta
{
public:
    char *figura;
    char *kolor;
    int war;

  void zlozTalie(Karta *wTalia, char *wFigura[],char *wKolor[],int iloscTaliiKart); // skladamy talie, sami wybierazmy ilosc talii

    void tasujNA3(Karta Z[],int ilosc_talii); // tasowanie kart

   void wypiszTALIE(Lista *w); // wypisanie zawartoscii talii

    void usunZPoczatku(Lista *&glowa); // usuwanie z kart z glowy

    void wyswietl(Karta *wTalia,int iloscTaliiKart);// wyswietlanie talii

    void rozdajNA2 (Lista* gracz1, Lista* gracz2, Karta talia[], Lista* & koniec1, Lista* & koniec2,int iloscTaliiKart); // rozdanie kart na 2 graczy

    void rozdajNA3modulo1(Lista* gracz1, Lista* gracz2,Lista* gracz3, Karta talia[], Lista* & koniec1, Lista* & koniec2,Lista * & koniec3,int iloscTaliiKart ); // rozdanie na 3 graczy

    void zwyciestwo_gracza1_2graczy(Lista*  gracz1, Lista* gracz2, Lista* & koniec1, Lista* & koniec2); //zwyciestwa poszczegolnych graczy

    void zwyciestwo_gracza2_2graczy(Lista*  gracz1, Lista* gracz2, Lista* & koniec1, Lista* & koniec2);

    void zwyciestwo_gracza1_3graczy(Lista*  gracz1, Lista* gracz2,Lista*  gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);

    void zwyciestwo_gracza2_3graczy(Lista*  gracz1, Lista* gracz2,Lista*  gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);

    void zwyciestwo_gracza3_3graczy(Lista*  gracz1, Lista*  gracz2,Lista*  gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);

    void wojna_2graczy(Lista* & gracz1, Lista* & gracz2, Lista* & koniec1, Lista* & koniec2); // wojny poszczeglnych graczy

    void wojna_2graczy_iloscgraczy3(Lista* & gracz1, Lista* & gracz2,Lista* & gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);

    void wojna_3graczy(Lista* & gracz1, Lista* & gracz2,Lista* & gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);

};

class Lista
{
public:
    Karta karty;
    Lista *nastepna;





};
//wojna.cpp
#include"wojna.h"

#include <cstdlib>
#include <iostream>
#include <time.h>
#include <ctime>
#include <windows.h>
//
//
//

using namespace std;
 void Karta::zlozTalie(Karta *wTalia, char *wFigura[],char *wKolor[],int iloscTaliiKart)
{
    for(int i=0; i<52*iloscTaliiKart; i++) // na 52 zmienic
    {
        wTalia[i].figura=wFigura[i%13];
        wTalia[i].war= i%13;
        wTalia[i].kolor=wKolor[i/13];
    }
}


void Karta::wypiszTALIE(Lista *w)
{
    while(w!=NULL)
    {
        cout << w->karty.figura << "\n";
        w = w->nastepna;
    }
    cout << endl;
} 

Witam,
zaczynam swoją przygodę z builderem c++ , napisałem w codeblocksie działającą grę w karty i zaczynam ją przenosić na wersję graficzną.Natomiast mam problem już na samym starcie, gdyż nie mogę złożyć talii poprzez funkcje z innych plików, co skutkuje zawsze jakimś błędem.
Dziękuję za pomoc i pozdrawiam.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 471 wizyt
pytanie zadane 27 czerwca 2019 w C i C++ przez TracerYT Początkujący (440 p.)
+1 głos
0 odpowiedzi 243 wizyt
pytanie zadane 11 lutego 2019 w C i C++ przez Paweł123 Nałogowiec (33,500 p.)
0 głosów
1 odpowiedź 170 wizyt

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...