Commit 0c1e73cc authored by 9731301's avatar 9731301

Add users and implement some methods

parent b0439da9
......@@ -2,8 +2,16 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="608d52d9-3dd7-4e55-84b9-421c09e25ee0" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/ColoredCard.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/ColoredCard.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/Draw2Card.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/Draw2Card.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/NumericalCard.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/NumericalCard.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/ReverseCard.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/ReverseCard.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/SkipCard.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/SkipCard.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/Uno.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/Uno.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/Wild4.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/Wild4.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/WildCard.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/WildCard.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/Uno/WildColor.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/Uno/WildColor.class" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -59,6 +67,8 @@
<workItem from="1586639798096" duration="7822000" />
<workItem from="1586696062533" duration="20074000" />
<workItem from="1586769548038" duration="8743000" />
<workItem from="1586800273922" duration="8352000" />
<workItem from="1586853542539" duration="9514000" />
</task>
<servers />
</component>
......@@ -66,26 +76,26 @@
<option name="version" value="1" />
</component>
<component name="WindowStateProjectService">
<state x="574" y="97" key="#com.intellij.ide.util.MemberChooser" timestamp="1586782366631">
<state x="574" y="97" key="#com.intellij.ide.util.MemberChooser" timestamp="1586863668622">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="574" y="97" key="#com.intellij.ide.util.MemberChooser/0.0.1536.824@0.0.1536.824" timestamp="1586782366631" />
<state width="1493" height="261" key="GridCell.Tab.0.bottom" timestamp="1586783306694">
<state x="574" y="97" key="#com.intellij.ide.util.MemberChooser/0.0.1536.824@0.0.1536.824" timestamp="1586863668622" />
<state width="1493" height="166" key="GridCell.Tab.0.bottom" timestamp="1586809445260">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state width="1493" height="261" key="GridCell.Tab.0.bottom/0.0.1536.824@0.0.1536.824" timestamp="1586783306694" />
<state width="1493" height="261" key="GridCell.Tab.0.center" timestamp="1586783306694">
<state width="1493" height="166" key="GridCell.Tab.0.bottom/0.0.1536.824@0.0.1536.824" timestamp="1586809445260" />
<state width="1493" height="166" key="GridCell.Tab.0.center" timestamp="1586809445260">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state width="1493" height="261" key="GridCell.Tab.0.center/0.0.1536.824@0.0.1536.824" timestamp="1586783306694" />
<state width="1493" height="261" key="GridCell.Tab.0.left" timestamp="1586783306693">
<state width="1493" height="166" key="GridCell.Tab.0.center/0.0.1536.824@0.0.1536.824" timestamp="1586809445260" />
<state width="1493" height="166" key="GridCell.Tab.0.left" timestamp="1586809445260">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state width="1493" height="261" key="GridCell.Tab.0.left/0.0.1536.824@0.0.1536.824" timestamp="1586783306693" />
<state width="1493" height="261" key="GridCell.Tab.0.right" timestamp="1586783306694">
<state width="1493" height="166" key="GridCell.Tab.0.left/0.0.1536.824@0.0.1536.824" timestamp="1586809445260" />
<state width="1493" height="166" key="GridCell.Tab.0.right" timestamp="1586809445260">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state width="1493" height="261" key="GridCell.Tab.0.right/0.0.1536.824@0.0.1536.824" timestamp="1586783306694" />
<state width="1493" height="166" key="GridCell.Tab.0.right/0.0.1536.824@0.0.1536.824" timestamp="1586809445260" />
<state width="1493" height="261" key="GridCell.Tab.1.bottom" timestamp="1586783306694">
<screen x="0" y="0" width="1536" height="824" />
</state>
......@@ -102,14 +112,14 @@
<screen x="0" y="0" width="1536" height="824" />
</state>
<state width="1493" height="261" key="GridCell.Tab.1.right/0.0.1536.824@0.0.1536.824" timestamp="1586783306694" />
<state x="107" y="217" key="com.intellij.ide.util.TipDialog" timestamp="1586769552313">
<state x="107" y="217" key="com.intellij.ide.util.TipDialog" timestamp="1586853731045">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="107" y="217" key="com.intellij.ide.util.TipDialog/0.0.1536.824@0.0.1536.824" timestamp="1586769552313" />
<state x="425" y="187" key="run.anything.popup" timestamp="1586782658252">
<state x="107" y="217" key="com.intellij.ide.util.TipDialog/0.0.1536.824@0.0.1536.824" timestamp="1586853731045" />
<state x="425" y="187" key="run.anything.popup" timestamp="1586862725471">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="425" y="187" key="run.anything.popup/0.0.1536.824@0.0.1536.824" timestamp="1586782658252" />
<state x="425" y="187" key="run.anything.popup/0.0.1536.824@0.0.1536.824" timestamp="1586862725471" />
<state x="431" y="145" width="672" height="678" key="search.everywhere.popup" timestamp="1586717206978">
<screen x="0" y="0" width="1536" height="824" />
</state>
......
public abstract class Card {
protected String name;
private int score;
public static final String set = "\u001B[0m";
public static final String green = "\u001B[32m";
public static final String red = "\u001B[31m";
public static final String yellow = "\u001B[33m";
public static final String blue = "\u001B[34m";
public Card() {
}
public Card(int score) {
this.score = score;
......
......@@ -3,11 +3,6 @@
*/
public class ColoredCard extends Card {
private String color;
public static final String set = "\u001B[0m";
public static final String green = "\u001B[32m";
public static final String red = "\u001B[31m";
public static final String yellow = "\u001B[33m";
public static final String blue = "\u001B[34m";
/**
* create a Colored card that according to subClasses create a special kind of colored cards
......@@ -39,7 +34,7 @@ public class ColoredCard extends Card {
public String toString() {
String s ="|$$$$$$$$$$$$$$$|\n";
s +="| |\n";
s +="| "+name+" |\n";
s += name+"\n";
s +="| |\n";
s +="|$$$$$$$$$$$$$$$|\n";
return s;
......
import java.util.ArrayList;
public class Draw2Card extends MotiveCard {
/**
......@@ -8,11 +10,11 @@ public class Draw2Card extends MotiveCard {
*/
public Draw2Card(String color, int score) {
super(color, score);
name = "+2";
name = "| +2 |";
}
@Override
public void move() {
public void move(User chosenUser, ArrayList<User> users) {
}
......
......@@ -15,4 +15,9 @@ public class GivingCard {
cardNam++;
}
}
public Card chooseUpperCardRandomly (ArrayList<Card> remainingCards){
int randomNum = r.nextInt(remainingCards.size());
return remainingCards.get(randomNum);
}
}
import java.util.ArrayList;
public abstract class MotiveCard extends ColoredCard{
/**
* create a Colored card that according to subClasses create a special kind of colored cards
......@@ -9,6 +11,5 @@ public abstract class MotiveCard extends ColoredCard{
super(color, score);
}
public abstract void move();
public abstract void move(User chosenUser, ArrayList<User> users);
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ public class NumericalCard extends ColoredCard {
public NumericalCard(String color, int score, int number) {
super(color, score);
this.number = number;
name= Integer.toString(number);
name="| "+ Integer.toString(number) +" |";
}
}
import java.util.ArrayList;
public class ReverseCard extends MotiveCard {
/**
......@@ -8,12 +10,17 @@ public class ReverseCard extends MotiveCard {
*/
public ReverseCard(String color, int score) {
super(color, score);
name = "reverse";
name = "| reverse |";
}
@Override
public void move() {
public void move(User chosenUser, ArrayList<User> users) {
chosenUser = users.get(users.indexOf(chosenUser) - 1);
ArrayList<User> reverseUsers = new ArrayList<>();
for (int i = users.size() ; i > -1 ; i++){
reverseUsers.add(users.get(i));
}
users = reverseUsers;
}
......
import java.util.ArrayList;
public class SkipCard extends MotiveCard {
......@@ -9,11 +11,12 @@ public class SkipCard extends MotiveCard {
*/
public SkipCard(String color, int score) {
super(color, score);
name = "skip" ;
name = "| skip |";
}
@Override
public void move() {
@Override
public void move(User chosenUser , ArrayList<User> users) {
chosenUser = users.get(users.indexOf(chosenUser) + 2);
}
}
......@@ -8,12 +8,14 @@ public class Uno {
ArrayList<Card> remainingCards = new ArrayList<>();
GivingCard givingCard = new GivingCard();
Scanner scanner = new Scanner(System.in);
Card upperCard = givingCard.chooseUpperCardRandomly(remainingCards);
User chosenUser = new User();
for (int i = 0 ; i < 2 ; i++) {
for (int numNumericalCard = 1; numNumericalCard < 10; numNumericalCard++) {
Card newRedCard = new NumericalCard("red", numNumericalCard, numNumericalCard);
Card newYellowCard = new NumericalCard("Yellow", numNumericalCard, numNumericalCard);
Card newBlueCard = new NumericalCard("Blue", numNumericalCard, numNumericalCard);
Card newGreenCard = new NumericalCard("Green", numNumericalCard, numNumericalCard);
Card newYellowCard = new NumericalCard("yellow", numNumericalCard, numNumericalCard);
Card newBlueCard = new NumericalCard("blue", numNumericalCard, numNumericalCard);
Card newGreenCard = new NumericalCard("green", numNumericalCard, numNumericalCard);
remainingCards.add(newRedCard);
remainingCards.add(newYellowCard);
remainingCards.add(newBlueCard);
......@@ -49,9 +51,9 @@ public class Uno {
remainingCards.add(newReverseG);
}
Card newRedCard = new NumericalCard("red", 0, 0);
Card newYellowCard = new NumericalCard("Yellow", 0, 0);
Card newBlueCard = new NumericalCard("Blue", 0, 0);
Card newGreenCard = new NumericalCard("Green", 0, 0);
Card newYellowCard = new NumericalCard("yellow", 0, 0);
Card newBlueCard = new NumericalCard("blue", 0, 0);
Card newGreenCard = new NumericalCard("green", 0, 0);
remainingCards.add(newRedCard);
remainingCards.add(newYellowCard);
remainingCards.add(newBlueCard);
......@@ -65,18 +67,25 @@ public class Uno {
}
for (Card c : remainingCards){
c.print();
}
while (true) {//set num of players at first
while (true) {//set num of players and their names at first
System.out.println("plz enter number of users");
numOfPlayers = scanner.nextInt();
if (numOfPlayers >=3 && numOfPlayers <= 5)
break;
else {
for (int i =0 ; i < numOfPlayers ; i++){
System.out.println("plz enter your name");
String name = scanner.nextLine();
User user = new User(name);
givingCard.give_n_Cards(user , remainingCards , 7);
users.add(user);
}
}
}
while (true){
System.out.println();
}
}
}
import java.util.ArrayList;
import java.util.Objects;
public class User {
private String name;
......@@ -14,6 +15,10 @@ public class User {
this.name = name;
}
public User() {
}
/**
* remove a card from user cards
* @param card
......@@ -48,4 +53,21 @@ public class User {
return score;
}
public void pass(ArrayList<User> users , User chosenUser){
chosenUser = users.get(users.indexOf(chosenUser));
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User)) return false;
User user = (User) o;
return getScore() == user.getScore() &&
getName().equals(user.getName()) &&
userCards.equals(user.userCards);
}
@Override
public int hashCode() {
return Objects.hash(getName(), getScore(), userCards);
}
}
public class Wild4 extends WildCard {
import java.util.ArrayList;
public class Wild4 extends WildCard {
GivingCard givingCard = new GivingCard();
public Wild4(int score) {
super(score);
name = "+4";
name = "| +4 |\n";
}
@Override
public void giveCard() {
public void giveCard(User chosenUser, ArrayList<Card> cards , Card chosenCard , ArrayList<User> users) {
System.out.println("is it a bluff؟");
//if (.equals("yes"))
//User nextUser = new User()
givingCard.give_n_Cards(chosenUser , cards , 4);
givingCard.give_n_Cards(chosenUser , cards , 6);
givingCard.give_n_Cards(chosenUser , cards , 4);
}
}
import java.util.Scanner;
public abstract class WildCard extends Card {
Scanner scanner = new Scanner(System.in);
public WildCard(int score){
super(score);
}
public abstract void giveCard();
public void chooseColor() {
System.out.println("plz choose a color (just choose the number)\n1:blue 2:red 3:yellow 4:green");
switch (scanner.nextInt()) {
case 1: {
System.out.println("next:" + blue + "blue" + set);
break;
}
case 2: {
System.out.println("next:" + red + "red" + set);
break;
}
case 3: {
System.out.println("next:" + yellow + "yellow" + set);
break;
}
case 4: {
System.out.println("next:" + green + "green" + set);
break;
}
}
}
@Override
public String toString(){
String s = "|$$$$$$$$$$$$$$$|\n";
s += "| |\n";
s += "| "+name+" |\n";
s += name;
s += "| |\n";
s += "|$$$$$$$$$$$$$$$|\n";
return s;
......
public class WildColor extends WildCard {
public WildColor(int score) {
super(score);
name = "setColor";
name = "| setColor |\n";
}
@Override
public void giveCard() {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment