#100DaysOfCode in Python Transcripts
Chapter: Days 97-99: Building JSON APIs
Lecture: Implementing the game (client-side)
0:00 You saw us write the game,
0:01 interaction of the game loop previously.
0:04 We've consumed a bunch of API's with Uplink already.
0:07 So let me just drop in some code here that is going to
0:11 be basically, the same thing but using the service,
0:15 just for the sake of time.
0:18 So what do we got?
0:19 We're going to print out the top scores,
0:20 and we're going to call top_scores and then we'll loop
0:22 over them, and remember everything that comes back is a
0:24 dictionary so we've got to get the values and then
0:28 this is a nested dictionary,
0:29 so we've got to get the name from the player that we got,
0:31 and so on.
0:32 So we're going to print out the top scores,
0:35 we're going to create a new game that's going to return
0:37 that dictionary which we're going to get the game id.
0:39 We could do some work to make this much easier to consume,
0:41 but just keep it focused on more the server side.
0:44 Kind of just roll with what we got.
0:46 Give us all the rolls, get us the player list.
0:48 Suppose we want to be the player Charles.
0:52 And then we're just going to say while the game is not over,
0:54 we're just going to go through and play a round,
0:55 pass the game id,
0:57 the user being Charles, and the roll which we're randomly
1:00 choosing from the various options we got from the server.
1:05 Right up there.
1:06 Okay, so we're just going to go run and do that, and when
1:08 it's over we're going to get the game status,
1:10 and print the outcome which the game status has the winner.
1:13 Oh, okay, so let's run this.
1:16 By the way, it doesn't ask us what we want to do.
1:19 It just randomly chooses rolls for Charles,
1:21 and makes him play those.
1:22 But it could just as well, this could be an input or
1:25 some other type of UI.
1:29 Oh, Charles is not found.
1:33 Yeah, I guess we got to create Charles.
1:34 Let's go ahead and just create him this way,
1:35 it's probably the easiest way.
1:43 All right, try again.
1:45 Boom, look at that.
1:48 Top scores, Michael scored 1, Charles scored 0,
1:51 so Charles threw rock, computer threw scissors,
1:54 that resulted in a win for the player which is Charles.
1:57 We got a tree and a sponge, win.
2:00 Lightning does not beat the devil,
2:02 water does not beat humans,
2:03 but finally the end, humans beat scissors and that takes it.
2:07 The game is over and Charles is the winner.
2:10 Let's run it again.
2:11 At the top you see now Charles and Michael have 1.
2:13 One score each in the top score, in the leaderboard there.
2:17 Come down here, game is over, the computer won.
2:20 Let's try again.
2:21 Leaderboard should now be 1, 1, 1.
2:24 How come Charles winner, is the winner.
2:26 So if we run it this time,
2:27 Charles now has the global high score.
2:32 Pretty amazing.
2:33 It might feel like we're kind of playing the same game,
2:35 but this is totally different, right?
2:36 We could put this on a phone app,
2:38 we could distribute this around the world.
2:40 And if we were hosting that website somewhere
2:42 like Heroku, or Digital Ocean, or Linode,
2:45 or something like that.
2:46 Put it out there, and this would be shared for the world.
2:49 Pretty cool.
2:50 Hopefully this has inspired you to see what you could build.
2:55 I know it's not the super simplest demo,
2:57 but it's pretty realistic, and it does cover a lot of
3:00 interesting use cases, and it really opens another world
3:04 for you guys to build cool applications that are
3:07 data driven remotely.