JavaRush /Java блог /Архив info.javarush /Поиграем в Блек-Джек с Бендером
FriDayXIII
15 уровень

Поиграем в Блек-Джек с Бендером

Статья из группы Архив info.javarush
В общем захотелось поиграть с Бендером в Блек-Джек, вот что вышло: А теперь вопрос? Как это все объединить в отдельную программу?
Карта:
package Igra21; /** * Created with IntelliJ IDEA. * User: Admin * Date: 28.09.13 * Time: 7:15 * To change this template use File | Settings | File Templates. */ public class Karta { int sila; String mast="Любая Масть"; //масть пока не реализована для блекджека она не нужна String nominal; Karta(String nominal, int sila){ this.nominal=nominal; this.sila=sila; } }
Колода:
package Igra21; import java.util.ArrayList; import java.util.Random; /** * Created with IntelliJ IDEA. * User: Admin * Date: 28.09.13 * Time: 7:17 * To change this template use File | Settings | File Templates. */ public class Koloda { ArrayList koloda = new ArrayList(); public void zapolnenie(){ for (int i=1 ; i<=4 ; i++){ koloda.add(new Karta("Туз", 1)); koloda.add(new Karta("Валет", 2)); koloda.add(new Karta("Дама", 3)); koloda.add(new Karta("Король", 4)); koloda.add(new Karta("6", 6)); koloda.add(new Karta("7", 7)); koloda.add(new Karta("8", 8)); koloda.add(new Karta("9", 9)); koloda.add(new Karta("10", 10)); } } public Karta getKarta(){ Random random = new Random(); int mestoKarti = random.nextInt(koloda.size()); Karta prom = koloda.get(mestoKarti); koloda.remove(mestoKarti); return prom; } }
Игрок:
package Igra21; import java.util.ArrayList; /** * Created with IntelliJ IDEA. * User: Admin * Date: 28.09.13 * Time: 8:04 * To change this template use File | Settings | File Templates. */ public class Igrok { ArrayList moiKarti = new ArrayList(); public void addKatra(Karta karta){ moiKarti.add(karta); } public int points(){ int point=0; for (Karta i : moiKarti){ point+=i.sila; } return point; } public String moiKarti(){ String katri=""; for (Karta i : moiKarti){ katri+=i.nominal+" = "+i.sila+" очков / "; } return katri; } }
Бендер:
package Igra21; import java.util.Random; /** * Created with IntelliJ IDEA. * User: Admin * Date: 28.09.13 * Time: 8:09 * To change this template use File | Settings | File Templates. */ public class Bender extends Igrok { public Boolean toDuThis(int shans){ Random random = new Random(); if (random.nextInt(100)
Игра:
package Igra21; import java.io.*; /** * Created with IntelliJ IDEA. * User: Admin * Date: 28.09.13 * Time: 7:44 * To change this template use File | Settings | File Templates. */ public class Igra { int benderWin=0; int igrokWin=0; boolean trueGame = true; Koloda koloda = new Koloda(); Igrok igrok = new Igrok(); Bender bender = new Bender(); public void beginGame(){ koloda.zapolnenie(); polosa(); System.out.println("Игра началась, новая колода создана."); polosa(); igrok.addKatra(koloda.getKarta()); igrok.addKatra(koloda.getKarta()); bender.addKatra(koloda.getKarta()); bender.addKatra(koloda.getKarta()); System.out.println("Вы и Бендер получили по 2 карты."); polosa(); } public void hodIgroka() throws IOException { trueGame = true; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while (igrok.points()<21){ System.out.println("Ваш ход: у Вас "+igrok.points()+" очков.\n еще-взять карту, все-закончить ход.\n мои-проверить карты на руках"); polosa(); String otvet = reader.readLine(); if (otvet.equals("еще")){ Karta prom = koloda.getKarta(); igrok.addKatra(prom); System.out.println("Вы получили: "+prom.nominal+" эта карта стоит "+prom.sila+" очков"); polosa(); } if (otvet.equals("мои")){ System.out.println("У Вас на руках: \n "+igrok.moiKarti()); polosa(); } if (otvet.equals("все")){ System.out.println("Вы набрали "+igrok.points()+" теперь ход Бендера."); polosa(); break; } } if (igrok.points()==21){ System.out.println("Вы набрали "+igrok.points()+" это БлекДжек детка, Вы Выиграли.\n Бендер - Что?! Ты даже не дал мне походить!"); trueGame=false; igrokWin=1; polosa(); } if (igrok.points()>21){ System.out.println("Вы набрали "+igrok.points()+" это больше 21, Вы Проиграли.\n Бендер - Так не интересно, я требую продолжения банкета!"); trueGame=false; benderWin=1; polosa(); } } public void hodBendera() throws IOException { if (trueGame){ System.out.println("Теперь смотри и учись как играет Бендер! \n играю в открытую.\n У Бендера :"+bender.moiKarti()); polosa(); } while (bender.points()<21 && bender.points()<=igrok.points() && trueGame){ System.out.println("У Бендера "+bender.points()+" очков."); if (bender.points()<11){ Karta prom = koloda.getKarta(); bender.addKatra(prom); System.out.println("Бендер взял карту "+prom.nominal+" эта карта стоит "+prom.sila+" очков"); polosa(); continue; }else if (bender.points()<14 && bender.toDuThis(80)){ Karta prom = koloda.getKarta(); bender.addKatra(prom); System.out.println("Бендер взял карту "+prom.nominal+" эта карта стоит "+prom.sila+" очков"); polosa(); continue; }else if (bender.points()<16 && bender.toDuThis(60)){ Karta prom = koloda.getKarta(); bender.addKatra(prom); System.out.println("Бендер взял карту "+prom.nominal+" эта карта стоит "+prom.sila+" очков"); polosa(); continue; }else if (bender.points()<18 && bender.toDuThis(40)){ Karta prom = koloda.getKarta(); bender.addKatra(prom); System.out.println("Бендер взял карту "+prom.nominal+" эта карта стоит "+prom.sila+" очков"); polosa(); continue; }else { System.out.println("Я думаю мне хватит "+bender.points()+" очков, чтоб выиграть."); polosa(); break; } } if (bender.points()<21 && bender.points()>igrok.points()){ System.out.println("Я думаю мне хватит "+bender.points()+" очков, чтоб выиграть."); polosa(); } if (bender.points()==21){ System.out.println("У Бендера "+bender.points()+" это БлекДжек детка."); polosa(); } if (bender.points()>21){ System.out.println("У Бендера "+bender.points()+" это больше 21, Бендер Проиграл."); igrokWin=1; trueGame=false; polosa(); } } public void ktoVin(){ if (trueGame){ if (bender.points()>igrok.points()){ System.out.println("У Бендера "+bender.points()+" очков. У Вас "+igrok.points()+", Вы Проиграли.\n Бендер - БлекДжек детка, Вот так нужно играть!"); polosa(); benderWin=1; }else { System.out.println("У Вас "+igrok.points()+" очков. У Бендера "+bender.points()+", Вы Выиграли.\n Бендер - Да здался мне ваш БлекДжек! \n Я сделаю свой, с мастями и картами!"); polosa(); igrokWin=1; } } } public void polosa(){ System.out.println("-------------------------------------------------"); } }
Тело самой игры(Main):
package Igra21; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * Created with IntelliJ IDEA. * User: Admin * Date: 28.09.13 * Time: 8:49 * To change this template use File | Settings | File Templates. */ public class Igra21 { static int benderWin=0; static int igrokWin=0; public static void main(String[] args)throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Добро пожаловать в казино Бендера, \n самое чесное казино на Земле."); System.out.println("Бендер - Ну что начнем? \n Сейчас я покажу тебе как играет настояший робожу..\n в смысле настояший крупье."); begin(); while (true){ System.out.println("Бендер: "+benderWin+" Вы: "+igrokWin+" Продолжим играть?\n еще - новая игра."); if (reader.readLine().equals("еще")) begin(); else { System.out.println("Бендер - Что у тебя не осталось денег?\n Давай до свиданья из моего казино.."); break; } } } public static void begin()throws IOException{ Igra igra = new Igra(); igra.beginGame(); igra.hodIgroka(); igra.hodBendera(); igra.ktoVin(); benderWin+=igra.benderWin; igrokWin+=igra.igrokWin; } }
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
kosmoflyko Уровень 9
8 апреля 2015
Делай .Jar его можно запустить двойным кликом при установленной JRE или его потом в Lauch4J получишь .Exe программу.
FriDayXIII Уровень 15
28 сентября 2013
В общем, вот игра. В самой IDEA все играбельно (ну только не учтены некоторые нюансы). Как эту игру можно запустить в виндовсе? Я понимаю что этот вопрос дальше по курсу будет раскрыт но моего 16 уровня не хватает для этого =(
Вся та информация что нашол в интернете просто забила голову кучей шлака и никакого результата…
hubert Уровень 41
28 сентября 2013
Опиши подробнее, что ты хочешь получить?