際際滷

際際滷Share a Scribd company logo
JEE KURZUS 14. HT
SETENY.JANOS@TIGRA.HU
1
L叩tszat 辿s val坦s叩g
L叩tsz坦lag helytelen a jobb
als坦 sarokban
2
Val坦j叩ban helyes
A hatt辿rben l辿v hiba
Ismeretlen API helytelen kezel辿se
3
@Named
@javax.enterprise.context.ApplicationScoped
public class MineFieldModel implements Serializable {

private void init() {
mineField = new MineField(8, 5);

mineField.addBomb(4, 3);
mineField.addBomb(5, 3);



collumns = IntStream.range(0, mineField.getWidth() - 1)
.boxed().collect(Collectors.toList());
Helyesen
4
collumns = IntStream.range(0, mineField.getWidth())
.boxed().collect(Collectors.toList());
http://letmegooglethat.com/?q=java+repl
Minefield megjelen鱈t辿se
5
<p:dataTable id="mineField" var="row" value="#{mineFieldModel.rows}">
<p:columns var=column" value="#{mineFieldModel.columns}">

<h:commandButton value=#{row.cell(column)}"
action="#{mineFieldModel.click(column,row.index)}"/>

</p:columns>
</p:dataTable>
public List<MineFieldRow> getRows() {
return rows;
}
public List<Integer> getColumns() {
return columns;
}
Minefield megjelen鱈t辿se
6
public class MineFieldRow {
private int r;
public MineFieldRow(int r) { this.r = r; }

public String cell(int c) {
return (mask[r][c] == 0) ? String.valueOf(mineField.at(c, r)) : "";
}

public int getIndex() { return r; }
}
<p:dataTable id="mineField" var="row" value="#{mineFieldModel.rows}">
<p:columns var=column" value="#{mineFieldModel.columns}">

<h:commandButton value=#{row.cell(column)}"
action="#{mineFieldModel.click(column,row.index)}"/>

</p:columns>
</p:dataTable>
Minefield megjelen鱈t辿se
7
@Inject
private ExplodeCount explodeCount;
public void click(int x, int y) {
EventBus eventBus = EventBusFactory.getDefault().eventBus();
try {
mask = Mask.unmask(mineField, mask, x, y);
eventBus.publish("/reload", 1234);
} catch (Explosion explosion) {
explodeCount.increment();
mask[y][x] = 0;
eventBus.publish("/reload", 1234);
}
}
<p:dataTable id="mineField" var="row" value="#{mineFieldModel.rows}">
<p:columns var=column" value="#{mineFieldModel.columns}">

<h:commandButton value=#{row.cell(column)}"
action="#{mineFieldModel.click(column,row.index)}"/>

</p:columns>
</p:dataTable>
Robban叩sok sz叩ml叩l叩sa
8
@Named
@javax.enterprise.context.SessionScoped
public class ExplodeCount implements Serializable {

private int count;

void increment() {
++count;
}
public String getCount() {
return "Robban叩sok: " + count;
}
}
<p:toolbar>
<f:facet name="left">
<h:commandButton value="jra" action="#{mineFieldModel.restart}"/>
</f:facet>

<f:facet name="right">
<h:outputLabel value="#{explodeCount.count}"/>
</f:facet>
</p:toolbar>

More Related Content

Jee kurzus 14. het

  • 1. JEE KURZUS 14. HT SETENY.JANOS@TIGRA.HU 1
  • 2. L叩tszat 辿s val坦s叩g L叩tsz坦lag helytelen a jobb als坦 sarokban 2 Val坦j叩ban helyes
  • 3. A hatt辿rben l辿v hiba Ismeretlen API helytelen kezel辿se 3 @Named @javax.enterprise.context.ApplicationScoped public class MineFieldModel implements Serializable { private void init() { mineField = new MineField(8, 5); mineField.addBomb(4, 3); mineField.addBomb(5, 3); collumns = IntStream.range(0, mineField.getWidth() - 1) .boxed().collect(Collectors.toList());
  • 4. Helyesen 4 collumns = IntStream.range(0, mineField.getWidth()) .boxed().collect(Collectors.toList()); http://letmegooglethat.com/?q=java+repl
  • 5. Minefield megjelen鱈t辿se 5 <p:dataTable id="mineField" var="row" value="#{mineFieldModel.rows}"> <p:columns var=column" value="#{mineFieldModel.columns}"> <h:commandButton value=#{row.cell(column)}" action="#{mineFieldModel.click(column,row.index)}"/> </p:columns> </p:dataTable> public List<MineFieldRow> getRows() { return rows; } public List<Integer> getColumns() { return columns; }
  • 6. Minefield megjelen鱈t辿se 6 public class MineFieldRow { private int r; public MineFieldRow(int r) { this.r = r; } public String cell(int c) { return (mask[r][c] == 0) ? String.valueOf(mineField.at(c, r)) : ""; } public int getIndex() { return r; } } <p:dataTable id="mineField" var="row" value="#{mineFieldModel.rows}"> <p:columns var=column" value="#{mineFieldModel.columns}"> <h:commandButton value=#{row.cell(column)}" action="#{mineFieldModel.click(column,row.index)}"/> </p:columns> </p:dataTable>
  • 7. Minefield megjelen鱈t辿se 7 @Inject private ExplodeCount explodeCount; public void click(int x, int y) { EventBus eventBus = EventBusFactory.getDefault().eventBus(); try { mask = Mask.unmask(mineField, mask, x, y); eventBus.publish("/reload", 1234); } catch (Explosion explosion) { explodeCount.increment(); mask[y][x] = 0; eventBus.publish("/reload", 1234); } } <p:dataTable id="mineField" var="row" value="#{mineFieldModel.rows}"> <p:columns var=column" value="#{mineFieldModel.columns}"> <h:commandButton value=#{row.cell(column)}" action="#{mineFieldModel.click(column,row.index)}"/> </p:columns> </p:dataTable>
  • 8. Robban叩sok sz叩ml叩l叩sa 8 @Named @javax.enterprise.context.SessionScoped public class ExplodeCount implements Serializable { private int count; void increment() { ++count; } public String getCount() { return "Robban叩sok: " + count; } } <p:toolbar> <f:facet name="left"> <h:commandButton value="jra" action="#{mineFieldModel.restart}"/> </f:facet> <f:facet name="right"> <h:outputLabel value="#{explodeCount.count}"/> </f:facet> </p:toolbar>