Hi
Go to player 2 Mode and refer help.lua file for game code
My querry is how to get two card values matched.Eg. player 1 throws card 10 of Club and Player 2 throws card 10 of Spade. I want to check whether these two cards are of same no. 10 ( may be on any suit) or not.
Also, player one has 26 n palyer 2 has 26 cards each. When button is pressed player 1 throws top most card from his 26 cards and left with 25 cards and then player two does same.
After values are matched for both cards thrown , deal is over .Again player one n player two (left with 25 cards after first deal)repeat same steps again and again till all cards are exhausted.
local composer = require( "composer" ) local scene = composer.newScene() local widget = require( "widget" ) local utility = require( "utility" ) local myData = require( "mydata" ) local halfW = display.contentWidth \* 0.5 local halfH = display.contentHeight \* 0.5 local function handleLevelSelect( event ) if ( "ended" == event.phase ) then -- set the current level to the ID of the selected level myData.settings.currentLevel = event.target.id composer.removeScene( "game", false ) composer.gotoScene( "game", { effect = "crossFade", time = 333 } ) end end local cardsGroup = display.newGroup() local cards = {} local cardsImages = { "assets/images/cards/s1.png","assets/images/cards/s2.png","assets/images/cards/s3.png","assets/images/cards/s4.png","assets/images/cards/s5.png","assets/images/cards/s6.png","assets/images/cards/s7.png","assets/images/cards/s8.png","assets/images/cards/s9.png","assets/images/cards/s10.png","assets/images/cards/s11.png","assets/images/cards/s12.png","assets/images/cards/s13.png", "assets/images/cards/h1.png","assets/images/cards/h2.png","assets/images/cards/h3.png","assets/images/cards/h4.png","assets/images/cards/h5.png","assets/images/cards/h6.png","assets/images/cards/h7.png","assets/images/cards/h8.png","assets/images/cards/h9.png","assets/images/cards/h10.png","assets/images/cards/h11.png","assets/images/cards/h12.png","assets/images/cards/h13.png", "assets/images/cards/c1.png","assets/images/cards/c2.png","assets/images/cards/c3.png","assets/images/cards/c4.png","assets/images/cards/c5.png","assets/images/cards/c6.png","assets/images/cards/c7.png","assets/images/cards/c8.png","assets/images/cards/c9.png","assets/images/cards/c10.png","assets/images/cards/c11.png","assets/images/cards/c12.png","assets/images/cards/c13.png", "assets/images/cards/d1.png","assets/images/cards/d2.png","assets/images/cards/d3.png","assets/images/cards/d4.png","assets/images/cards/d5.png","assets/images/cards/d6.png","assets/images/cards/d7.png","assets/images/cards/d8.png","assets/images/cards/d9.png","assets/images/cards/d10.png","assets/images/cards/d11.png","assets/images/cards/d12.png","assets/images/cards/d13.png" } local indexes = { {name="SA",symbol="spade",value=14},{name="S2",symbol="spade",value=2},{name="S3",symbol="spade",value=3},{name="S4",symbol="spade",value=4}, {name="S5",symbol="spade",value=5},{name="S6",symbol="spade",value=6},{name="S7",symbol="spade",value=7},{name="S8",symbol="spade",value=8}, {name="S9",symbol="spade",value=9},{name="S10",symbol="spade",value=10},{name="SJ",symbol="spade",value=11},{name="SQ",symbol="spade",value=12},{name="SK",symbol="spade",value=13}, {name="HA",symbol="heart",value=14},{name= "H2",symbol="heart",value=2},{name= "H3",symbol="heart",value=3},{name= "H4",symbol="heart",value=4}, {name="H5",symbol="heart",value=5},{name="H6",symbol="heart",value=6},{name= "H7",symbol="heart",value=7},{name= "H8",symbol="heart",value=8}, {name="H9",symbol="heart",value=9},{name="H10",symbol="heart",value=10},{name= "HJ",symbol="heart",value=11},{name= "HQ",symbol="heart",value=12},{name= "HK",symbol="heart",value=13}, {name="CA",symbol="club",value=14},{name= "C2",symbol="club",value=2},{name= "C3",symbol="club",value=3},{name= "C4",symbol="club",value=4}, {name="C5",symbol="club",value=5},{name= "C6",symbol="club",value=6},{name= "C7",symbol="club",value=7},{name= "C8",symbol="club",value=8}, {name="C9",symbol="club",value=9},{name= "C10",symbol="club",value=10},{name= "CJ",symbol="club",value=11},{name= "CQ",symbol="club",value=12},{name= "CK",symbol="club",value=13}, {name="DA",symbol="diamond",value=14},{name= "D2",symbol="diamond",value=2},{name= "D3",symbol="diamond",value=3}, {name="D4",symbol="diamond",value=4}, {name="D5",symbol="diamond",value=5},{name= "D6",symbol="diamond",value=6},{name= "D7",symbol="diamond",value=7},{name= "D8",symbol="diamond",value=8}, {name="D9",symbol="diamond",value=9},{name= "D10",symbol="diamond",value=10},{name= "DJ",symbol="diamond",value=11},{name= "DQ",symbol="diamond",value=12},{name= "DK",symbol="diamond",value=13} } local function handleHomeButtonEventFn( event ) if ( "ended" == event.phase ) then print("handleHomeButtonEventFn Tap Working Properly") for i=#cardsImages,1,-1 do display.remove( cards[i] ) cards[i] = nil -- Set reference again to nill end print("ScreenObjects Deletion Working Properly") composer.removeScene( "help", false ) composer.gotoScene( "menu", { effect = "crossFade", time = 200 } ) end end local function cleanCardsMoveFn() print("\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*") end -- Start the composer event handlers -- function scene:create( event ) local sceneGroup = self.view local background = display.newRect( 0, 0, 570, 360 ) background.x = display.contentCenterX background.y = display.contentCenterY sceneGroup:insert( background ) local gameTitle = display.newText("Duki Pe Duki", 100, 32, native.systemFontBold, 30 ) gameTitle.x = display.contentCenterX gameTitle.y = 20 gameTitle:setFillColor( 0 ) transition.to(gameTitle,{time = 3000,delay=300,xScale = 1.1,yScale = 1.1,transition=easing.inOutElastic,iterations = -1}) sceneGroup:insert( gameTitle ) local gameScreenFirstHalfTitle = display.newText("PLAYER 1", 100, 32, native.systemFontBold,16 ) gameScreenFirstHalfTitle.x = display.contentCenterX-300 gameScreenFirstHalfTitle.y = display.contentCenterY-90 gameScreenFirstHalfTitle:setFillColor( 0 ) transition.to(gameScreenFirstHalfTitle,{ time=750,x=display.contentCenterX-175,display.contentCenterY-90 } ) -- gameScreenFirstHalfTitle:addEventListener( "tap", selectCardFn ) sceneGroup:insert( gameScreenFirstHalfTitle ) local gameScreenFirstHalf = display.newRect( 0, 0, 40, 40 ) gameScreenFirstHalf.x = display.contentCenterX-175 gameScreenFirstHalf.y = display.contentCenterY-130 gameScreenFirstHalf.strokeWidth = 2 gameScreenFirstHalf.alpha = 0 gameScreenFirstHalf:setFillColor( 0 ) gameScreenFirstHalf:setStrokeColor( 0) transition.to(gameScreenFirstHalf,{ time=3000,alpha=1.0,x = display.contentCenterX-175,y = display.contentCenterY-130 } ) sceneGroup:insert(gameScreenFirstHalf) local gameScreenSecondHalfTitle = display.newText("PLAYER 2", 100, 32, native.systemFontBold,16 ) gameScreenSecondHalfTitle.x = display.contentCenterX+300 gameScreenSecondHalfTitle.y = display.contentCenterY-90 gameScreenSecondHalfTitle:setFillColor( 0 ) -- gameScreenSecondHalfTitle:addEventListener( "tap", selectCardFn ) transition.to(gameScreenSecondHalfTitle,{ time=750,x=display.contentCenterX+175,display.contentCenterY-90 } ) sceneGroup:insert( gameScreenSecondHalfTitle ) local gameScreenSecondHalf = display.newRect( 0, 0, 40, 40) gameScreenSecondHalf.x = display.contentCenterX+180 gameScreenSecondHalf.y = display.contentCenterY-130 gameScreenSecondHalf.strokeWidth = 2 gameScreenSecondHalf:setFillColor( 0 ) gameScreenSecondHalf:setStrokeColor( 0) gameScreenSecondHalf.alpha = 0 transition.to(gameScreenSecondHalf,{ time=3000,alpha=1.0,x = display.contentCenterX+175,y = display.contentCenterY-130 } ) -- sceneGroup:insert(gameScreenFirstHalf) sceneGroup:insert(gameScreenSecondHalf) local function player1Move() print("Player 1 Move ") -- frontObjectButton1:removeEventListener( "tap", player1Move,1) --print(cardsImages[52]) -- print(cardsImages[27]) for i = #cardsImages, 27 , -1 do -- frontObjectButton1:removeEventListener( "tap", player1Move,1) local cardA= transition.to(cards[29],{time=600,y=display.contentCenterY-5,x=display.contentCenterX,width=120 ,height=150}) -- print("First Player Move".." = "..i) end end local function player2Move() print("Player 2 Move ") for i = 26, 1 , -1 do -- frontObjectButton1:removeEventListener( "tap", player1Move,1) local cardB= transition.to(cards[2],{time=600,y=display.contentCenterY+35,x=display.contentCenterX,width=120 ,height=150}) -- print("First Player Move".." = "..i) end end --[[local cardA,cardB val1 = cardA[1].val val2 = cardB[2].val if val1 == val2 then print("genius") end --]] local function frontObjectBtn(event) --print("Front Button Object Placed") print( "object tapped = "..tostring(event.target) ) local frontObjectButton1 = display.newRect( display.contentCenterX-175,display.contentCenterY, 50, 40 ) frontObjectButton1.alpha = 0.8 frontObjectButton1:setFillColor( 0.5 ) frontObjectButton1.name = "Front Object 1" frontObjectButton1:addEventListener( "tap", player1Move,1) --sceneGroup:insert(frontObjectButton1) local frontObjectButton2 = display.newRect( display.contentCenterX+175,display.contentCenterY, 50, 40 ) frontObjectButton2.alpha = 0.8 frontObjectButton2:setFillColor( 0.5 ) frontObjectButton2.name = "Front Object 2" frontObjectButton2:addEventListener( "tap", player2Move,1) --sceneGroup:insert(frontObjectButton2) return true end --Splitting Main Card Deck local function splitCardsDeck() cards[52]:removeEventListener( "tap", splitCardsDeck,1) for i = #cardsImages, 27 , -1 do transition.to(cards[i],{time=600,y=display.contentCenterY+20,x=display.contentCenterX-170,width=110 ,height=130}) print("First Player 26 Cards From Deck".." = "..i) end for j = 26, 1 , -1 do transition.to(cards[j],{time=600,y=display.contentCenterY+20,x=display.contentCenterX+170,width=110 ,height=130}) print("Second Player 26 Cards From Deck".." = "..j) end timer.performWithDelay(1200,frontObjectBtn,1) end --Shuffle Function math.randomseed( os.time() ) local function shuffleTable( t ) local iterations = #t local j for i = iterations, 2, -1 do cards[i] = display.newImageRect( cardsImages[math.random(1,#cardsImages)], 40, 40 ) cards[i].x = display.contentCenterX cards[i].y = display.contentCenterY-500 j = math.random (i) t[i], t[j] = t[j], t[i] transition.to(cards[i],{time=2200,y=display.contentCenterY,x=display.contentCenterX,width=90 ,height=120}) print(i.." "..t[i].." "..t[j]) end cards[52]:addEventListener( "tap", splitCardsDeck ) end shuffleTable( cardsImages ) --[[local currentIndex = 1 local function cardsImages( num, deck ) for i = currentIndex, num do print("currentIndex"..i) end currentIndex = currentIndex + num end -- Deal 6 cards to a player cardsImages( 52, cardsImages ) --]] local homeButton = widget.newButton({ id = "button1", label = "Home", width = 100, height = 30, onEvent = handleHomeButtonEventFn }) homeButton.x = display.contentCenterX homeButton.y = display.contentHeight - 10 sceneGroup:insert( homeButton ) end function scene:show( event ) local sceneGroup = self.view params = event.params if event.phase == "did" then end end function scene:hide( event ) local sceneGroup = self.view if event.phase == "will" then end end function scene:destroy( event ) local sceneGroup = self.view end --------------------------------------------------------------------------------- -- END OF YOUR IMPLEMENTATION --------------------------------------------------------------------------------- scene:addEventListener( "create", scene ) scene:addEventListener( "show", scene ) scene:addEventListener( "hide", scene ) scene:addEventListener( "destroy", scene ) return scene