gpt4 book ai didi

c++ - C++程序编译错误

转载 作者:行者123 更新时间:2023-12-02 11:09:11 26 4
gpt4 key购买 nike

我当时正在制作德州 flutter 克游戏,该游戏不是 flutter 克游戏的实际模拟,因此不要期望任何下注和弃牌。它纯粹是基于点的,问题是我在2天之内就做到了,而且没有时间“优化”它,而且我没有走面向对象的道路。清除所有基于语法的错误后,我将面临一个我无法理解的编译器错误。我尝试了所有修复方法,但似乎我不知道它的含义。因此,如果有人可以得出编译器输出的任何含义,请引用我做错的事情。

FULLCODE:http://pastebin.com/njdAzmrB

编译器输出:

    Undefined symbols for architecture x86_64:
"HANDDISTRO(int, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in poker1-0374f4.o
"fullhouse1(int, int)", referenced from:
_main in poker1-0374f4.o
"fullhouse2(int, int)", referenced from:
_main in poker1-0374f4.o
"fullhouse3(int, int)", referenced from:
_main in poker1-0374f4.o
"fullhouse4(int, int)", referenced from:
_main in poker1-0374f4.o
"ONDECKINDEX(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in poker1-0374f4.o
"RoyalFlush1(int, int, int)", referenced from:
_main in poker1-0374f4.o
"RoyalFlush2(int, int, int)", referenced from:
_main in poker1-0374f4.o
"RoyalFlush3(int, int, int)", referenced from:
_main in poker1-0374f4.o
"RoyalFlush4(int, int, int)", referenced from:
_main in poker1-0374f4.o
"fourofkind1(int, int)", referenced from:
_main in poker1-0374f4.o
"fourofkind2(int, int)", referenced from:
_main in poker1-0374f4.o
"fourofkind3(int, int)", referenced from:
_main in poker1-0374f4.o
"fourofkind4(int, int)", referenced from:
_main in poker1-0374f4.o
"threeofkind1(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse1(int*, int*) in poker1-0374f4.o
fourofkind1(int*, int*) in poker1-0374f4.o
fourofkind2(int*, int*) in poker1-0374f4.o
fourofkind3(int*, int*) in poker1-0374f4.o
fourofkind4(int*, int*) in poker1-0374f4.o
"threeofkind2(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse2(int*, int*) in poker1-0374f4.o
"threeofkind3(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse3(int*, int*) in poker1-0374f4.o
"threeofkind4(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse4(int*, int*) in poker1-0374f4.o
"straightflush1(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int)", referenced from:
_main in poker1-0374f4.o
"straightflush2(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int)", referenced from:
_main in poker1-0374f4.o
"straightflush3(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int)", referenced from:
_main in poker1-0374f4.o
"straightflush4(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int)", referenced from:
_main in poker1-0374f4.o
"ONDECK(int, int, int, int)", referenced from:
_main in poker1-0374f4.o
"flush1(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in poker1-0374f4.o
straightflush1(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"flush2(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in poker1-0374f4.o
straightflush2(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"flush3(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in poker1-0374f4.o
straightflush3(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"flush4(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in poker1-0374f4.o
straightflush4(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"SHUFFLE(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int, int, int, int, int, int, int, int, int, int, int, int)", referenced from:
_main in poker1-0374f4.o
"onepair1(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse1(int*, int*) in poker1-0374f4.o
fourofkind1(int*, int*) in poker1-0374f4.o
fourofkind2(int*, int*) in poker1-0374f4.o
fourofkind3(int*, int*) in poker1-0374f4.o
fourofkind4(int*, int*) in poker1-0374f4.o
"onepair2(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse2(int*, int*) in poker1-0374f4.o
"onepair3(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse3(int*, int*) in poker1-0374f4.o
"onepair4(int, int)", referenced from:
_main in poker1-0374f4.o
fullhouse4(int*, int*) in poker1-0374f4.o
"twopair1(int, int)", referenced from:
_main in poker1-0374f4.o
"twopair2(int, int)", referenced from:
_main in poker1-0374f4.o
"twopair3(int, int)", referenced from:
_main in poker1-0374f4.o
"twopair4(int, int)", referenced from:
_main in poker1-0374f4.o
"Straight1(int, int)", referenced from:
_main in poker1-0374f4.o
straightflush1(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"Straight2(int, int)", referenced from:
_main in poker1-0374f4.o
straightflush2(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"Straight3(int, int)", referenced from:
_main in poker1-0374f4.o
straightflush3(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
"Straight4(int, int)", referenced from:
_main in poker1-0374f4.o
straightflush4(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, int*) in poker1-0374f4.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

源代码:
int main(){
srand (time(NULL)); /* initialize random seed: */

int size1=5;
int size2=52;
int size3=2;
int score1, score2, score3, score4 = 0;
string winhand1, winhand2, winhand3, winhand4;

int hand1[size3];//hand or player1
string hand1index[2]; //index to monitor the suit
int hand2[size3];//hand or player2
string hand2index[2]; //index to monitor the suit
int hand3[size3];//hand or player3
string hand3index[2]; //index to monitor the suit
int hand4[size3];//hand or player4
string hand4index[2]; //index to monitor the suit
int deck[size2];//deck
string deckindex[52];//index to monitor the suit
int Ondeck[size1];//Cards on deck
string Ondeckindex[5]; //index to monitor the suit
int used[size2];//used index
string usedindex[52];//index to monitor the suit

/*
All Card's SUITS AND RANKS COMBINED !!!
INDEX WILL BE USED TO COMPARE SUITS !!!
0 1 2 3
h s c d
e p l i
a a u a
r d b m
t e s o
s s ^ n
^ ^ | d
| | | s
*/// | | | ^
int c2[4]={2,2,2,2};
int c3[4]={3,3,3,3};
int c4[4]={4,4,4,4};
int c5[4]={5,5,5,5};
int c6[4]={6,6,6,6};
int c7[4]={7,7,7,7};
int c8[4]={8,8,8,8};
int c9[4]={9,9,9,9};
int c10[4]={10,10,10,10};
int c11[4]={11,11,11,11}; //JACK
int c12[4]={12,12,12,12}; //QUEEN
int c13[4]={13,13,13,13}; //KING
int c14[4]={14,14,14,14}; //ACE

//HANDS
int RF[5] = {14, 13, 12, 11, 10}; //Royal Flush
//GAME BEGINS
while(true){
label1:
char choice;
cout << "####### #######" << endl;
cout << " # ###### # # ### ##### # # ###### # # ###### ##### " << endl;
cout << " # # # # # # # # # # # # # # # #" << endl;
cout << " # ##### ## # # # ###### ####### # # ### ###### ##### " << endl;
cout << " # # ## # # # # # # # # # # #" << endl;
cout << " # # # # # # # # # # # # # # #" << endl;
cout << " # ###### # # # # ##### # ###### # # ###### # #" << endl << endl;
cout << " HELLO TO TEXAS HOLD'EM POKER!\n";
cout << " Hello, this is a 4 player game\n";
cout << " No betting is implemented in this game\n";
cout << " Wining happens through a point driven system\n";
cout << " So, the higher the hands the higher the points\n";
cout << " HAVE FUN !!!\n";
cout << " \n";
cout << " \n";
cout << " Press 's' or 'S' to start\n";
cout << " OR\n";
cout << " Press 'q' or 'Q' to quit\n";
cin>>choice;
if(choice=='q'||choice=='Q') EXIT_SUCCESS;
else if(choice=='s'||choice=='S'){
int count=0;
cout << "Shuffling Cards...\n";
cout << "This takes a while...\n";
cout << "what do you think i'm a computer !\n";
SHUFFLE(deck[size2], deckindex[size1], used[size2], usedindex[size2], c2[4], c3[4], c4[4], c5[4], c6[4], c7[4], c8[4], c9[4], c10[4], c11[4], c12[4], c13[4], c14[4] );
while(count<1000) count++;
cout<<"OK!\n";
cout<<"Distributing cards for players...\n";
cout << "Give me a second...\n";
HANDDISTRO( hand1[size3], deck[size2], hand1index[size3], deckindex[size2], used[size2], hand2[size3], hand2index[size3], hand3[size3], hand3index[size3], hand4[size3], hand4index[size3]);
count=0;
while(count<1000) count++;
cout<<"OK!\n";
cout<<"PLAYER 1 has: \n";
for(int i=0; i<2; i++){
cout<<hand1[i]<<" "<<hand1index[i]<<"\n";
}
cout<<"PLAYER 2 has: \n";
for(int i=0; i<2; i++){
cout<<hand2[i]<<" "<<hand2index[i]<<"\n";
}
cout<<"PLAYER 3 has: \n";
for(int i=0; i<2; i++){
cout<<hand3[i]<<" "<<hand3index[i]<<"\n";
}
cout<<"PLAYER 4 has: \n";
for(int i=0; i<2; i++){
cout<<hand4[i]<<" "<<hand4index[i]<<"\n";
}
cout << "Distributing cards on deck...\n";
int fat = 5; //fat...
for(int i=0; i<fat; i++){
ONDECK(Ondeck[size1], used[size2], deck[size2], i);
}
for(int i=0; i<fat; i++){
ONDECKINDEX(Ondeckindex[size1], used[size2], i, deckindex[size2]);
}
cout << "DONE!\n";
cout << "Cards on deck are:\n";
for(int i=0; i<5; i++){
cout<<Ondeck[i]<<" "<<Ondeckindex<<"\n";
}
cout << "Checking hands...\n";
if(RoyalFlush1(hand1[size3], Ondeck[size1], RF[size1])==true){
score1=90;
winhand1="ROYALFLUSH";
}
else if(straightflush1(hand1index[2], Ondeckindex[5],hand1[2], Ondeck[5])==true){
score1=80;
winhand1="STRAIGHTFLUSH";
}
else if(fourofkind1(hand1[size3], Ondeck[size1])==true){
score1=70;
winhand1="FOUR OF A KIND";
}
else if(fullhouse1(hand1[2], Ondeck[5])==true){
score1=60;
winhand1="FULLHOUSE";
}
else if(flush1(hand1index[size3],Ondeckindex[size1])==true){
score1=50;
winhand1="FLUSH";
}
else if(Straight1(hand1[size3],Ondeck[size1])==true){
score1=40;
winhand1="STRAIGHT";
}
else if(threeofkind1(hand1[size3], Ondeck[size1])==true){
score1=30;
winhand1="THREE OF A KIND";
}
else if(twopair1(hand1[size3], Ondeck[size1])==true){
score1=20;
winhand1="TWO PAIR";
}
else if(onepair1(hand1[size3],Ondeck[size1])==true){
score1=10;
winhand1="ONE PAIR";
}
if(RoyalFlush2(hand2[size3], Ondeck[size1], RF[size1])==true){
score2=90;
winhand2="ROYALFLUSH";
}
else if(straightflush2(hand2index[2], Ondeckindex[5],hand2[2], Ondeck[5])==true){
score2=80;
winhand2="STRAIGHTFLUSH";
}
else if(fourofkind2(hand2[size3], Ondeck[size1])==true){
score2=70;
winhand2="FOUR OF A KIND";
}
else if(fullhouse2(hand2[2], Ondeck[5])==true){
score2=60;
winhand2="FULLHOUSE";
}
else if(flush2(hand2index[size3],Ondeckindex[size1])==true){
score2=50;
winhand2="FLUSH";
}
else if(Straight2(hand2[size3],Ondeck[size1])==true){
score2=40;
winhand2="STRAIGHT";
}
else if(threeofkind2(hand2[size3], Ondeck[size1])==true){
score2=30;
winhand2="THREE OF A KIND";
}
else if(twopair2(hand2[size3], Ondeck[size1])==true){
score2=20;
winhand2="TWO PAIR";
}
else if(onepair2(hand2[size3],Ondeck[size1])==true){
score2=10;
winhand2="ONEPAIR";
}
if(RoyalFlush3(hand3[size3], Ondeck[size1], RF[size1])==true){
score3=90;
winhand3="ROYALFLUSH";
}
else if(straightflush3(hand3index[2], Ondeckindex[5],hand3[2], Ondeck[5])==true){
score3=80;
winhand3="STRAIGHTFLUSH";
}
else if(fourofkind3(hand3[size3], Ondeck[size1])==true){
score3=70;
winhand3="FOUR OF A KIND";
}
else if(fullhouse3(hand3[2], Ondeck[5])==true){
score3=60;
winhand3="FULLHOUSE";
}
else if(flush3(hand3index[size3],Ondeckindex[size1])==true){
score3=50;
winhand3="FLUSH";
}
else if(Straight3(hand3[size3],Ondeck[size1])==true){
score3=40;
winhand3="STRAIGHT";
}
else if(threeofkind3(hand3[size3], Ondeck[size1])==true){
score3=30;
winhand3="THREE OF A KIND";
}
else if(twopair3(hand3[size3], Ondeck[size1])==true){
score3=20;
winhand3="TWO PAIR";
}
else if(onepair3(hand3[size3],Ondeck[size1])==true){
score3=10;
winhand3="ONE PAIR";
}
if(RoyalFlush4(hand4[size3], Ondeck[size1], RF[size1])==true){
score4=90;
winhand4="ROYALFLUSH";
}
else if(straightflush4(hand4index[2], Ondeckindex[5],hand4[2], Ondeck[5])==true){
score4=80;
winhand4="STRAIGHTFLUSH";
}
else if(fourofkind4(hand4[size3], Ondeck[size1])==true){
score4=70;
winhand4="FOUR OF A KIND";
}
else if(fullhouse4(hand4[2], Ondeck[5])==true){
score4=60;
winhand4="FULLHOUSE";
}
else if(flush4(hand4index[size3],Ondeckindex[size1])==true){
score4=50;
winhand4="FLUSH";
}
else if(Straight4(hand4[size3],Ondeck[size1])==true){
score4=40;
winhand4="STRAIGHT";
}
else if(threeofkind4(hand4[size3], Ondeck[size1])==true){
score4=30;
winhand4="THREE OF A KIND";
}
else if(twopair4(hand4[size3], Ondeck[size1])==true){
score4=20;
winhand4="TWO PAIR";
}
else if(onepair4(hand4[size3],Ondeck[size1])==true){
score4=10;
winhand4="ONE PAIR";
}

if(score1>score2 && score1>score3 && score1>score4){
cout<<"Player 1 wins with a hand of "<<winhand1<<"\n";
cout<<"CONGRATULATIONS!\n";
EXIT_SUCCESS;
}
if(score2>score1 && score2>score3 && score2>score4){
cout<<"Player 2 wins with a hand of "<<winhand2<<"\n";
cout<<"CONGRATULATIONS!\n";
EXIT_SUCCESS;
}
if(score3>score1 && score3>score2 && score3>score4){
cout<<"Player 3 wins with a hand of "<<winhand3<<"\n";
cout<<"CONGRATULATIONS!\n";
EXIT_SUCCESS;
}
if(score4>score1 && score4>score2 && score4>score1){
cout<<"Player 4 wins with a hand of "<<winhand4<<"\n";
cout<<"CONGRATULATIONS!\n";
EXIT_SUCCESS;
}
}
else {
cout<<"WRONG INPUT!\n";
goto label1;
}
}
} //closing main

最佳答案

这是一个链接器错误消息,而不是编译器错误消息。它告诉您,找不到HANDDISTRO()的实现。

这些非常不同:

void HANDDISTRO(int, int, string, string,
int, int, string,
int, string,
int , string);

这需要 intstring
void HANDDISTRO(int hand1[], int deck[], string hand1index[], string deckindex[],
int used[], int hand2[], string hand2index[],
int hand3[], string hand3index[],
int hand4[], string hand4index[])

这需要 int数组和 string数组。当然 int的数组和形式与 int不同。

关于c++ - C++程序编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com