No video

How to make a Tic-Tac-Toe app in Android Studio | Part 6

  Рет қаралды 9,665

Practical Coding

Practical Coding

Күн бұрын

This is the last video in the Tic-Tac-Toe series and in this video, we will be adding in the winning line that connects the markers of the player that won.
We will be covering some of the core functions and techniques used for app development in Android Studio. This tutorial is designed for beginners trying to get started in app development with Android devices being the primary target.
Android Studio is a great platform for creating apps that can be deployed on the google play store. If you're new to the series, I'd go and check out the Android Studio Playlist. There you will be able to see how to create basic apps so you can become a developer.
Join the Discord Server!!!
/ discord
Check out the Android development playlist for more videos like this!
• Android App Developmen...
#androidstudio #appdevelopment #PracticalCoding

Пікірлер: 112
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Hey everyone! If you're running into issues with the tie game case drawing in the winning line, that's from a small mistake I made. I forgot to reset the winType array in the resetGame method for the GameLogic class. To fix the issue, you only have to do one of two things. The first and easiest way would be going into the winnerCheck method in the GameLogic class and at the end of the method, there should be an if statement. In the portion where we define what to do in the case of a tie game, we should probably return false there because there really is no winner. If you do that, you don't have to reset the winType array. You would just have to change the return statement from returning true to returning false. The other way to fix this would be to reset the values of the winType array in the resetGame method. Again, this is all in the GameLogic class. If you make your way to the reset method, all you would have to do is add in this line of code winType = new int[] {-1, -1, -1}; And that should fix the issue. I personally like changing the return statement because I think that makes more sense when you're reading the code but whichever one works. Special thanks to ​ @Faw012 for pointing this out
@razanshrestha9651
@razanshrestha9651 3 жыл бұрын
bro in my app in players turn there shows 2nd player name only even in players 1 turn
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@razanshrestha9651 Could you put your project on GitHub so I can take a look at your code?
@itsme-zw3ug
@itsme-zw3ug 3 жыл бұрын
Hi, once again awesome video, thank you so much! I noticed this issue but I resolved it through adding a boolean value isDraw in gamelogic.java , then changed it to true in the isDraw in the else if(boardfilled == 9) part of the Winnercheck method. Then added I believe it's called a setter method: public boolean isDrawgme(){ return isDraw; } Then changed the if statement in the onDraw method in TicTacToeBoard.java to if (game.isDrawgme()){ return; } else if (winningLine){ paint.setColor(winningLineColor); drawWinningLine(canvas); } Is this just horribly inefficient?
@technicalsamyak
@technicalsamyak 2 жыл бұрын
Awesome!!! ;)
@xailer1073
@xailer1073 2 жыл бұрын
Hi, you need to reset wineType to default values
@Asifkabeer
@Asifkabeer 3 жыл бұрын
Thank you so much. I just finished a Kotlin course and want to dive in to Android studio. Watching this really helped me grasp what it would it take to make actual apps. Thanks.
@PracticalCoding
@PracticalCoding 3 жыл бұрын
happy to hear you liked the videos! It's always good to know my videos are helping people out
@megantiong8706
@megantiong8706 3 жыл бұрын
Thanks for this series!!!
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Glad you liked them!
@polsoft6380
@polsoft6380 3 жыл бұрын
have you finished it ?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@polsoft6380 Yeah that's everything
@user-mc1fk6pq4u
@user-mc1fk6pq4u Жыл бұрын
i enjoyed every minute and it was so much helpful and great explaining, keep it up , thanks for the edit for the wining line mistake.
@otabekollomurodov4543
@otabekollomurodov4543 2 жыл бұрын
Finally I have done also tie method too !!!! Thank you brother!
@allienguyen34
@allienguyen34 2 жыл бұрын
Thank you so much for your efforts and dedication! Your lessons are really intuitive and I have learned a lot from your videos. You are basically my savior 😭😭
@ProGamer2017
@ProGamer2017 2 жыл бұрын
Thank you
@anushkadas78
@anushkadas78 2 жыл бұрын
Thank you so much for this wonderful series! I learned so much :)
@aaronrodz30
@aaronrodz30 3 жыл бұрын
Wow this series was just great🔥🔥😄Thanx for the tutorials... It really helped me with my project.
@PracticalCoding
@PracticalCoding 3 жыл бұрын
glad to hear it!
@jakubjacek9332
@jakubjacek9332 3 жыл бұрын
Hello! Is it possible for You to make some simple application in Android studio that use database and showing how to add some image and other basic stuff...? I love Your tutorials, You explained the topic very well Greetings from Poland! ;)
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah that's something I can start working on! Thanks for the video idea and I'm glad you're liking the videos
@cececuttino
@cececuttino 3 жыл бұрын
Create a diary app with a password.. showing some of the entries
@Dieno_Tv
@Dieno_Tv Жыл бұрын
What could be wrong Sir! Where as my horizontal line isn't passing through correctly. Otherwise it is slunting moving downwards???
@bicuaezekiels.8865
@bicuaezekiels.8865 2 жыл бұрын
Thank You sir for sharing this with us :)
@pranathikundrapu1331
@pranathikundrapu1331 11 ай бұрын
The last part of the winning line is happening when theres xxo in same line. We didnt add tie to this right?
@user-rf7xt5gs5d
@user-rf7xt5gs5d Жыл бұрын
Hello, sir.Please help me with adding AI. I implemented the minimax algorithm, but the bot makes bad decisions for it. I changed the is Win method so that it returns "Won", "Tie", "Continue".
@user-mc1fk6pq4u
@user-mc1fk6pq4u Жыл бұрын
i made new button for new type of game which is vs computer but not sure how the code going
@sanjarisaboev6542
@sanjarisaboev6542 2 жыл бұрын
how can we add this game user vs AI or computer, bot
@BrestSouth
@BrestSouth 3 жыл бұрын
Спасибо большое за урок!
@knightcrawler7778
@knightcrawler7778 3 жыл бұрын
Thank you for this series! Couple things, I know you're not trying to teach Java here, but some of the java specific this are lost on me, such as Override, assert, invalidate, etc. It'd be nice if those were explained a little more thoroughly. Also, is there a way to make the winning line go to the 'back' of the canvas, so that it doesn't draw over the player marks? Currently, if you have a diagonal win with X, the winning line draws over one of the drawn lines in the X. Thank you again for this great series!!!
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah, you could draw the winning line behind the player markers or even the game board if you wanted. If you go to the onDraw method in the TicTacToeBoard.java file all you would have to do is change the order that you draw everything. In the method, you'll see that we call the drawWinningLine method after we draw the gameboard and markers. If you place the drawWinningLine method after the drawGameBoard method and before the drawMarkers method (so in the middle of the two) I think you'll get the result you're looking for
@Gamezz23
@Gamezz23 11 ай бұрын
Great Video Thank you for this. Can you create flappy bird game app bro i need for an assignment.
@user-tf7vw1tg4t
@user-tf7vw1tg4t 2 жыл бұрын
Hello sir how are you. Can you answer to me I need your help I have a small problem in my project please 😃
@PracticalCoding
@PracticalCoding 2 жыл бұрын
What issue are you running into?
@mariannenicoledelfino3149
@mariannenicoledelfino3149 2 жыл бұрын
Your tutorial is awesome. Can you add a score board? thank you : )
@mylifemymoto
@mylifemymoto 3 жыл бұрын
hi sir my play button is working very slow and some time work and some time not work so pls provide my solution
@paweswiderski5411
@paweswiderski5411 3 жыл бұрын
Great video, really appreciate your work! One thing, I think I followed your steps exactly and put the default values of player names but still when no player names are given by the user the game doesn't display player 1's turn but displays: 's turn.
@paweswiderski5411
@paweswiderski5411 3 жыл бұрын
I fixed with a simple if statement that says if the playerName equals empty string set it to "Player1" but I wonder if there's a cleaner solution using default values.
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah, that was my bad. I've had a few other people mention this to me. I forgot to add a few things to the code while I was recording the video. Glad you figured it out though!
@PracticalCoding
@PracticalCoding 3 жыл бұрын
​@@paweswiderski5411 There might be a better solution, but I haven't looked at this project in a while so I'm not 100%. When I make these videos, I'm not too worried about the code being the absolute best. As long as it works and doesn't look like complete garbage I'm happy with it. I think the main goal for these videos is getting people comfortable with the processes of creating something from scratch rather than having the best/most simplified code possible. If you find a better way to do it you can always leave a comment showing what you did or post something in the Discord server. It might help someone out seeing it done in a different way
@JamesTolias
@JamesTolias 2 жыл бұрын
Hey there, Really great videos you have there. I have a question though. I followed your steps but I can’t find the winningLineColor. Where is that exactly in our Java files?
@PracticalCoding
@PracticalCoding 2 жыл бұрын
It's going to be in a few places (not sure which one you're looking for so here's everything). We create the attribute field in the attrs.xml file (along with every other color used by our game board). Then in the XML file where our game board is placed (game_display.xml), we actually set a value to that attribute (red, green, purple, whatever color you want). Finally, in the TicTacToeBoard class (Where we write the code to create the custom view), we extract that value from the color given in the tictactoe XML tag in the form of a TypedArray and store it in a variable I called "diagonalColor" If that doesn't answer your question just let me know!
@Instantcrypt
@Instantcrypt 3 жыл бұрын
sir, you are great,,,,,,,,,,,,,,!!!!!!
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Thanks! Did you ever get the sudoku board working? I just read your other comment
@Instantcrypt
@Instantcrypt 3 жыл бұрын
@@PracticalCoding yeah I get sudoku board, but I have a problem Vertical line note work
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@Instantcrypt Can you put the code you're using to draw the vertical lines in a comment so I can take a look?
@Instantcrypt
@Instantcrypt 3 жыл бұрын
@@PracticalCoding sir, it works only the first vertical line second & third line not show....!!
@karthikn1126
@karthikn1126 3 жыл бұрын
How to get this as apk
@MrKasiboy
@MrKasiboy 3 жыл бұрын
Hi, Thank you so much for a great series. How can I make the game start with the "Player" who lost when I press "Play again button" Thanks.
@PracticalCoding
@PracticalCoding 3 жыл бұрын
I made this a while ago so I'm not sure how everything was laid out exactly but I would think you'd need to pass the value of the "player" variable in the GameLogic class to GameDisplay when you click the play again button. You could do that with intents (basically what we did when we were collecting the names of each player) then when the GameDisplay Activity loads, you can pull the player value out of the internet and set it in the GameLogic Class. You might need to create getters and setters for that variable though. I can't remember if we made them or not. If you run into any issues, you can always join the Discord server I set up for this channel and talk about it there. We have a pretty big community and everyone always helps out. Here's the link if you wanna join: discord.gg/H2P89STbaS
@MrKasiboy
@MrKasiboy 3 жыл бұрын
@@PracticalCoding Thanks for responding, I will try the solution and see if I can make it work. I'm new to Java and really learnt a lot, I'll surely join the group and learn more from other tutorial series you created, thanks.
@tallerfrodo1262
@tallerfrodo1262 3 жыл бұрын
Can you create a web browser in android studio?
@technicalsamyak
@technicalsamyak 2 жыл бұрын
There's a bug in that when the game tie the winning line appears
@PracticalCoding
@PracticalCoding 2 жыл бұрын
Yeah, a few other people pointed this out to me when I first uploaded the video. If you take a look at the comment I pinned, it'll explain how to fix the issue
@shahansaeed7580
@shahansaeed7580 3 жыл бұрын
@Practical Coding... sir will u provide me a complete code?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah, I have it posted on my GitHub page. Here's the link if you wanna check it out github.com/Practical-Coding3/TicTacToeApp
@dboyhasnoname3627
@dboyhasnoname3627 3 жыл бұрын
Sir, Why don't you create an Ad-Blocking Application in app studio .
@PracticalCoding
@PracticalCoding 3 жыл бұрын
That would be cool! I'll have to look into that
@samedguresen
@samedguresen 3 жыл бұрын
Can I add image instead of X and O ?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah, you should be able to. Instead of using the draw line method try using the drawBitMap method
@Keijoo_
@Keijoo_ 3 жыл бұрын
Do you think you could add an option to go up against an AI Instead of a player, would that be easy to implement?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah, that wouldn't be too difficult to add in. I've walked a few people through the process of adding AI into the app. Once I'm done with finals and I take the MCAT, I can probably make a video on it.
@Keijoo_
@Keijoo_ 3 жыл бұрын
@@PracticalCoding that'd be amazing to look at, your walkthroughs have actually helped me out a lot so I really appreciate it!!
@realfaw
@realfaw 3 жыл бұрын
Hey! how to upload the android studio apps on the Google play store? like you can upload the Tic-Tac-Toe app for example. It would be really grateful if you would make a tutorial on it.
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Yeah that's a great idea! Right now I'm on vacation so when I get back I'll work on making that video next
@realfaw
@realfaw 3 жыл бұрын
@@PracticalCoding Oh! sorry for disturbing you...my bad. :) Thanks by the way and Merry Christmas!!!
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@realfaw Merry Christmas!! I'll let you know when I post the video. I get back on Monday so it'll be a few days
@jbones2513
@jbones2513 3 жыл бұрын
A Hang man app in android studio?
@realfaw
@realfaw 3 жыл бұрын
Sounds Great! I need tut too!!
@PracticalCoding
@PracticalCoding 3 жыл бұрын
I like that idea. I'll have to add that one to the list
@squadran7270
@squadran7270 3 жыл бұрын
Make a note app with drawing pen
@PracticalCoding
@PracticalCoding 3 жыл бұрын
That would be pretty cool. Not sure about using the pen but I could definitely make a note app. I'll add it to the running list of video ideas
@franky3728
@franky3728 3 жыл бұрын
Hey Jason! do you want a talk assistant like the google assistant?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Hey! Do you mean you would like to see a video on how to use the Google assistant in android studio?
@franky3728
@franky3728 3 жыл бұрын
@@PracticalCoding Hey, happy new year! No i think to make a own own talk assistent! Do you understand? Thanks for your reaction
@PracticalCoding
@PracticalCoding 3 жыл бұрын
​@@franky3728 That would be cool but I know that's something I couldn't do right now. If you wanted to make something like that I would recommend starting machine learning. That's just how you're gonna have to do it. I started reading a book about machine learning a few weeks ago that I would recommend you take a look at it if you're really interested in getting this project started. It's called "Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow" Here's the link to the book on Amazon if you wanted to pick it up www.amazon.com/Hands-Machine-Learning-Scikit-Learn-TensorFlow/dp/1492032646/ref=sr_1_3?crid=3A4QH4EQDGN7J&dchild=1&keywords=machine+learning+book&qid=1609494064&sprefix=macine+lear%2Caps%2C187&sr=8-3 I've only read a little bit so far but from what I've read it's a great book and it has 5 stars on Amazon. It's all in Python but I'm assuming you know Java or some other language so you shouldn't have too much trouble with it. Hope this helps!
@franky3728
@franky3728 3 жыл бұрын
@@PracticalCoding tanks for worth it and I'll have a look! you also want to do something where you can retrieve data from your game / app?
@realfaw
@realfaw 3 жыл бұрын
ok so after each part for a day i ended up getting a good result but the problem is... even when the game is getting tied the winning line is getting showed... any sol?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
I just checked the program and I'm not getting the same thing happening for me. What could be happening is the winningLine variable is being set to "true" somewhere it shouldn't be. I would have to look through your code to be sure though.
@realfaw
@realfaw 3 жыл бұрын
@@PracticalCoding ok! so this is the code from the tictactoeboard.java file pls check if there is a mistake [edit: I also found out that the winning line is set "false" I think there is no problem with the winning line variable pls fix this cuz I have copied the code you can fix it by replying] package com.faw012.tictactoe; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Build; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; class TicTacToeBoard extends View { private final int boardColor; private final int XColor; private final int OColor; private final int winningLineColor; private boolean winningLine = false; private final Paint paint = new Paint(); private final GameLogic game; private int cellSize = getWidth() / 3; public TicTacToeBoard(Context context, @Nullable AttributeSet attrs) { super(context, attrs); game = new GameLogic(); TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.TicTacToeBoard, 0, 0); try { boardColor = a.getInteger(R.styleable.TicTacToeBoard_boardColor, 0); XColor = a.getInteger(R.styleable.TicTacToeBoard_XColor, 0); OColor = a.getInteger(R.styleable.TicTacToeBoard_OColor, 0); winningLineColor = a.getInteger(R.styleable.TicTacToeBoard_winningLineColor, 0); } finally { a.recycle(); } } @Override protected void onMeasure(int width, int height) { super.onMeasure(width, height); int dimension = Math.min(getMeasuredWidth(), getMeasuredHeight()); cellSize = dimension / 3; setMeasuredDimension(dimension, dimension); } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onDraw(Canvas canvas) { paint.setStyle(Paint.Style.STROKE); paint.setAntiAlias(true); drawGameBoard(canvas); drawMarkers(canvas); if (winningLine){ paint.setColor(winningLineColor); drawWinningLine(canvas); } } @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); int action = event.getAction(); if (action == MotionEvent.ACTION_DOWN) { int row = (int) Math.ceil(y / cellSize); int col = (int) Math.ceil(x / cellSize); if (!winningLine) { if (game.updateGameBoard(row, col)) { invalidate(); if (game.winnerCheck()){ winningLine = true; invalidate(); } //updating the players turn if (game.getPlayer() % 2 == 0) { game.setPlayer(game.getPlayer() - 1); } else { game.setPlayer(game.getPlayer() + 1); } } } invalidate(); return true; } return false; } private void drawGameBoard(Canvas canvas) { paint.setColor(boardColor); paint.setStrokeWidth(16); for (int c = 1; c < 3; c++) { canvas.drawLine(cellSize * c, 0, cellSize * c, canvas.getWidth(), paint); } for (int r = 1; r < 3; r++) { canvas.drawLine(0, cellSize * r, canvas.getWidth(), cellSize * r, paint); } } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private void drawMarkers(Canvas canvas) { for (int r = 0; r < 3; r++) { for (int c = 0; c < 3; c++) { if (game.getGameBoard()[r][c] != 0) { if ((game.getGameBoard()[r][c] == 1)) { drawX(canvas, r, c); } else { drawO(canvas, r, c); } } } } } private void drawX(Canvas canvas, int row, int col) { paint.setColor(XColor); canvas.drawLine((float) ((col + 1) * cellSize - cellSize * 0.2), (float) (row * cellSize + cellSize * 0.2), (float) (col * cellSize + cellSize * 0.2), (float) ((row + 1) * cellSize - cellSize * 0.2), paint); canvas.drawLine((float) (col * cellSize + cellSize * 0.2), (float) (row * cellSize + cellSize * 0.2), (float) ((col + 1) * cellSize - cellSize * 0.2), (float) ((row + 1) * cellSize - cellSize * 0.2), paint); } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private void drawO(Canvas canvas, int row, int col) { paint.setColor(OColor); canvas.drawOval((float) (col * cellSize + cellSize * 0.2), (float) (row * cellSize + cellSize * 0.2), (float) ((col * cellSize + cellSize) - cellSize * 0.2), (float) ((row * cellSize + cellSize) - cellSize * 0.2), paint); } private void drawHorizontalLine(Canvas canvas, int row, int col) { canvas.drawLine(col, row*cellSize + (float)cellSize/2, cellSize*3, row*cellSize + (float)cellSize/2, paint); } private void drawVerticalLine(Canvas canvas, int row, int col) { canvas.drawLine(col*cellSize + (float)cellSize/2, row, col*cellSize + (float)cellSize/2, cellSize*3, paint); } private void drawDiagonalLinePos(Canvas canvas) { canvas.drawLine(0, cellSize*3, cellSize*3, 0, paint); } public void drawDiagonalLineNeg(Canvas canvas) { canvas.drawLine(0, 0, cellSize*3, cellSize*3, paint); } private void drawWinningLine(Canvas canvas) { int row = game.getWinType()[0]; int col = game.getWinType()[1]; switch (game.getWinType()[2]) { case 1: drawHorizontalLine(canvas, row, col); break; case 2: drawVerticalLine(canvas, row, col); break; case 3: drawDiagonalLineNeg(canvas); break; case 4: drawDiagonalLinePos(canvas); break; } } public void setUpGame(Button playAgain, Button home, TextView playerDisplay, String[] names) { game.setPlayAgainBTN(playAgain); game.setHomeBTN(home); game.setPlayerTurn(playerDisplay); game.setPlayerNames(names); } public void resetGame() { game.resetGame(); winningLine = false; } }
@realfaw
@realfaw 3 жыл бұрын
@@PracticalCoding and..this is the code from the GameLogic.java file pls check if there is a mistake here too package com.faw012.tictactoe; import android.view.View; import android.widget.Button; import android.widget.TextView; class GameLogic { private int[][] gameBoard; private String[] playerNames = {"Player 1", "Player 2"}; //1st element --> row, 2nd element --> col, 3rd element --> line type private int[] winType = {-1, -1, -1}; private Button playAgainBTN; private Button homeBTN; private TextView playerTurn; private int player = 1; GameLogic(){ gameBoard = new int[3][3]; for (int r=0; r
@realfaw
@realfaw 3 жыл бұрын
@@PracticalCoding if you need more code from other files pls tell me i will reply the code here
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@realfaw Hey I'm looking through the code right now but I just wanted to make sure that you called the reset game method in the "GameDisplay.java" file when the user clicks the play again button
@franky3728
@franky3728 3 жыл бұрын
when will the new video come?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
This was the last video in the series. Were you looking to see something else in the videos?
@franky3728
@franky3728 3 жыл бұрын
@@PracticalCoding yes an upgrade soduko solver where it gives a hint and that you can play on your phone? is this an idea?
@franky3728
@franky3728 3 жыл бұрын
@@PracticalCoding An upgrade?
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@franky3728 Oh I gotcha. So instead of just the sudoku solver, you'd be able to play an actual game. That's not a bad idea
@franky3728
@franky3728 3 жыл бұрын
@@PracticalCoding yes and by the soduko solver dread it gives hints and the solver Which all is already in there and Maybe With ads?
@BrestSouth
@BrestSouth 3 жыл бұрын
please upload code in github
@PracticalCoding
@PracticalCoding 3 жыл бұрын
here's the link github.com/Practical-Coding3/TicTacToeApp
@BrestSouth
@BrestSouth 3 жыл бұрын
@@PracticalCoding Thx
@shahacademy4687
@shahacademy4687 3 жыл бұрын
Hi tic tac toe with AI PLAY DO UPLOad
@PracticalCoding
@PracticalCoding 3 жыл бұрын
Hey! This might be something I do in the future, but right now I'm working on making introductory videos for app development
@shahacademy4687
@shahacademy4687 3 жыл бұрын
@@PracticalCoding pls upload code on github
@PracticalCoding
@PracticalCoding 3 жыл бұрын
@@shahacademy4687 I should have all of that linked on my channel page, but here's the link github.com/Practical-Coding3/TicTacToeApp
@user-yy2zs6du2w
@user-yy2zs6du2w Жыл бұрын
can you upload you giyhub link please
@ankithamirani4491
@ankithamirani4491 Жыл бұрын
I just create this app using your playlist and it's working very well but I have a Question if the player wants to play alone so how we can achieve this functionality.. I just send you a message on your Instagram account reply to me in there👍👍✌
How to make a scientific calculator in Android Studio 2021 | Part 4
24:10
How to win a argument
9:28
ajaxkmr
Рет қаралды 464 М.
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 3,1 МЛН
ROLLING DOWN
00:20
Natan por Aí
Рет қаралды 10 МЛН
The Joker saves Harley Quinn from drowning!#joker  #shorts
00:34
Untitled Joker
Рет қаралды 63 МЛН
How to make a Tic-Tac-Toe app in Android Studio | Part 5
24:27
Practical Coding
Рет қаралды 12 М.
How to make a Tic-Tac-Toe app in Android Studio | Part 4
19:31
Practical Coding
Рет қаралды 14 М.
The Clever Way to Count Tanks - Numberphile
16:45
Numberphile
Рет қаралды 983 М.
How to make a scientific calculator in Android Studio 2021 | Part 2
17:58
Want to make a video chat app? Watch this video for WebRTC!
1:22:35
Good Morning Developers
Рет қаралды 30 М.
RecyclerView | Everything You Need to Know
25:07
Practical Coding
Рет қаралды 133 М.
How to make a scientific calculator in Android Studio 2021 | Part 3
25:38
How to make a scientific calculator in Android Studio 2021 | Part 1
18:34
~/.dotfiles in 100 Seconds
13:54
Fireship
Рет қаралды 415 М.
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 3,1 МЛН